
华为云Centos7搭建hadoop集群三:jdk,hadoop安装
使用hadoop用户,在/opt下面创建module文件夹,并将权限赋值给hadoop用户
–如果使用root用户 直接创建即可
sudo chown hadoop:hadoop module/
第一个用户是属主信息,第二个用户是属组信息
将jdk,hadoop上传到云服务器后,解压到指定文件夹
sudo tar -zxvf /data/jdk-8u212-linux-x64.tar.gz -C /opt/module/
sudo tar -zxvf /data/hadoop-3.1.3.tar.gz -C /opt/module/
配置环境变量,新建环境变量文件配设置hadoop与jdk目录,配置后记得source生效,java与hadoop验证版本
sudo vi /etc/profile.d/my_env.sh 每个节点都配置
source /etc/profile
java -version
hadoop version
另外两个节点创建/opt/module 目录
将jdk与hadoop分发到另外两台节点
安装hadoop,进入hadoop文件夹
我配置的是高可用的namenode,节点选择hadoop01.hadoop02
高可用的resourcemanager,节点选择hadoop01,hadoop02
yarn历史服务器,节点选择hadoop03
因为配置高可用,所以需要先安装zookeeper,节点三台全部安装
先将zookeeper上传解压到/opt/module/并重命名
tar -zxvf /data/apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
mv apache-zookeeper-3.5.7-bin/ zookeeper-3.5.7
在zk目录下新建data文件夹
mkdir data
进入zk的conf目录
将zoo_sample.cfg 为 zoo.cfg
修改zoo.cfg配置文件,将dataDir修改为创建的data文件夹,增加zk的server信息
server分别为服务器编号,服务器节点,内部与leader通信端口,选举leader端口,zk对外的连接端口为2181
进入zk的data目录下,新建一个myid文件,配置与server对应的节点编号对应,如hadoop01,就配置1来对应Server.1
将zk从01分到到02,03节点,过程省略,并且要记得修改另外两台节点的myid信息,因为同步的数据myid为1可以使用vi,或者
使用echo 2 > myid ,这里的 > 表示覆盖写入的意思,03节点对应echo 3 > myid
配置完毕后,可以启动三台的zk节点,并检查,可以将zk环境变量配置到/etc/profile.d/my_env.sh中,,方便使用
可以看到启动后检查状态02是leader,01是follower,没问题
zk配置完毕后,配置hadoop
首先进入hadoop目录
增加java环境变量的配置
cd /opt/module/hadoop-3.1.3/etc/hadoop
vi hadoop-env.sh
配置集群的节点
vi workers
hadoop01
hadoop02
hadoop03
配置文件信息
配置core-site.xml文件fs.defaultFS hdfs://mycluster hadoop.tmp.dir /opt/module/hadoop-3.1.3/data ha.zookeeper.quorum hadoop01:2181,hadoop02:2181,hadoop03:2181 hadoop.proxyuser.hadoop.hosts * 配置hdfs-site.xml文件,下面关于yarn部分配置不要照搬,已经声明 hadoop.proxyuser.hadoop.groups * dfs.namenode.name.dir file://${hadoop.tmp.dir}/name dfs.datanode.data.dir file://${hadoop.tmp.dir}/data dfs.journalnode.edits.dir ${hadoop.tmp.dir}/jn dfs.nameservices mycluster dfs.ha.namenodes.mycluster nn1,nn2 dfs.namenode.rpc-address.mycluster.nn1 hadoop01:8020 dfs.namenode.rpc-address.mycluster.nn2 hadoop02:8020 dfs.namenode.http-address.mycluster.nn1 hadoop01:9870 dfs.namenode.http-address.mycluster.nn2 hadoop02:9870 dfs.namenode.shared.edits.dir qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/mycluster dfs.ha.fencing.methods sshfence dfs.ha.fencing.ssh.private-key-files /home/hadoop/.ssh/id_rsa dfs.client.failover.proxy.provider.mycluster org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider 配置yarn-site.xml dfs.ha.automatic-failover.enabled true yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.ha.enabled true yarn.resourcemanager.cluster-id cluster-yarn1 yarn.resourcemanager.ha.rm-ids rm1,rm2 yarn.resourcemanager.hostname.rm1 hadoop01 yarn.resourcemanager.webapp.address.rm1 hadoop01:8088 yarn.resourcemanager.address.rm1 hadoop01:8032 yarn.resourcemanager.resource-tracker.address.rm1 hadoop01:8031 yarn.resourcemanager.scheduler.address.rm1 hadoop01:8030 yarn.resourcemanager.hostname.rm2 hadoop02 yarn.resourcemanager.webapp.address.rm2 hadoop02:8088 yarn.resourcemanager.address.rm2 hadoop02:8032 yarn.resourcemanager.resource-tracker.address.rm2 hadoop02:8031 yarn.resourcemanager.scheduler.address.rm2 hadoop02:8030 yarn.resourcemanager.zk-address hadoop01:2181,hadoop02:2181,hadoop03:2181 yarn.resourcemanager.recovery.enabled true yarn.resourcemanager.store.class org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME yarn.nodemanager.pmem-check-enabled false yarn.nodemanager.vmem-check-enabled false yarn.nodemanager.resource.memory-mb 6144 yarn.nodemanager.resource.cpu-vcores 4 yarn.scheduler.minimum-allocation-mb 1024 yarn.scheduler.minimum-allocation-vcores 1 yarn.scheduler.maximum-allocation-mb 5120 yarn.scheduler.maximum-allocation-vcores 2 yarn.nodemanager.vmem-pmem-ratio 2 配置mapred-site.xml yarn.scheduler.increment-allocation-mb 1024 mapreduce.jobhistory.address hadoop03:10020 mapreduce.jobhistory.webapp.address hadoop03:19888
重新分发hadoop
文件配置完毕,需要检查:
hadoop jdk zk环境变量是否配置,三台都需要配置
一定要检查是否已经分发了hadoop jdk 看下另外两台的hdfs-site.xml中是否有内容
zk的myid是否已经修改 hadoop文件是否已经分发
启动hadoop集群
初始化hadoop,先确保三台zk服务都已经启动,检查zk状态
zkServer.sh status
1.启动三台节点的journalnode----三台需要全部启动,一定要先启动journalnode
hdfs --daemon start journalnode
2.在其中一台namenode上执行初始化,我选择01节点启动,初始化 *** 作只需要做一次,如果在01初始化,不要在02重新执行这条命令
hdfs namenode -format
3.在01格式化集群后,在01节点启动namenode,启动是在02同步数据前执行的
hdfs --daemon start namenode
4.在02节点,同步01的集群信息,如果设置多个namenode,要多个都同步并启动
hdfs namenode -bootstrapStandby
5.在02节点同步后,启动02节点的namenode
hdfs --daemon start namenode
6.在01,02节点都启动后,初始化zkfc并启动zkfc,我选择01初始化zkfc,初始化zkfc命令只需要执行一次,不要重复执行
hdfs zkfc -formatZK
7.在01,02上启动zkfc服务
hdfs --daemon start zkfc
8.启动三台的datanode
hdfs --daemon start datanode
9.在01节点启动yarn服务
start-yarn.sh
10.如果忘记同步或配置文件错误,可以将hadoop文件夹下data和logs目录删除,重新执行,如果有异常可以根据提示处理,如提示/tmp文件等,可以直接清理掉
11.上面测试完成后,先停止yarn,后停止hdfs,最后停止zk
12.启动顺序相反,先启动zk,再启动hdfs,最后启动yarn和yarn历史服务器
一些常用的命令
Hadoop 命令
hadoop fs
命令驼峰命名,首字母小写
文件上传
-copyFromLocal
复制上传
-moveFromLocal
剪切上传,本地文件清除
-put
复制上传
-put 上传文件 路径或新文件名称
-appendToFile
将文件追加到存在的文件末尾
文件下载
-copyToLocal
复制下载 下载文件/文件夹 路径或新文件/文件夹名称,
-moveToLocal
剪切下载
-get
等同copyToLocal
文件查看
-cat
查看文件内容
-ls
查看目录下文件列表
-tail
查看文件末尾1KB数据
-count
统计文件个数
HDFS内数据移动创建删除
-mv
将数据移动到指定路径
-cp
将数据复制到指定路径
-mkdir
创建文件夹
-rm
-rm -r
删除文件或文件夹或递归删除
-du
统计文件夹大小,-s -h
-s表示整个文件夹,没有-s表示统计文件夹下单独文件大小
-setrep
设置文件的副本数
如果设置副本数大于datanode节点数不生效,等到节点数等于副本数才会够
-chmod
设置权限
-chown
设置用户组
hdfs haadmin 高可用的一些设置
hdfs haadmin -getServiceState nn1
获取节点的状态
–transitionToActive
将节点转为active状态
–transitionToStandby
将节点转为standby状态
验证服务进程
将02的namenode停止,看下hadoop01状态,并启动02节点的namenode
重启02namenode后
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)