hadoop 完全分布式环境搭建
1、虚拟机角色分配:
192.168.44.184 hadoop02 NameNode/DataNode ResourceManager/NodeManager
192.168.44.185 hadoop03 DataNode NodeManager
192.168.44.186 hadoop04 DataNode NodeManager
每台机器配置好hostname,hosts:/etc/hostname 中配置好hostname
/etc/hosts 中配置好hosts:
192.168.44.184 hadoop02
192.168.44.185 hadoop03
192.168.44.186 hadoop04
2、sskey免登录设置
1)ssh-keygen -t rsa (会在.ssh目录生成公钥和私钥,每台机器都要生成)
2)以hadoop02为主,将公钥copy到各个机器
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop02
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop03
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop04
3、jdk的安装(在hadoop02上配置,另外两台机器稍后复制过去)
1) 直接下载jdk包放到安装目录即可(jdk-8u131-linux-x64.tar.gz解压到安装目录 tar zxvf ./jdk-8u131-linux-x64.tar.gz -C /home/hadoop/app/)
2) 配置环境变量 直接在 .bash_profile配置
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
4.下载安装hadoop-2.6.0-cdh5.7.0(在hadoop02上配置,另外两台机器稍后复制过去)
cdh下载地址:(http://archive.cloudera.com/cdh5/cdh/5/)
1)直接下载hadoop-2.6.0-cdh5.7.0.tar.gz包放到安装目录即可
2)配置环境变量
export HADOOP_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0
export PATH=$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
5、配置修改hadoop相关配置文件(在hadoop02上配置,另外两台机器稍后复制过去)
1)hadoop_home/etc/hadoop/hadoop-env.sh 配置jdk
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_131
2)etc/hadoop/core-site.xml
<property> <name>fs.defaultFS</name> <value>hdfs://hadoop02:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/app/tmp</value> </property>
3)etc/hadoop/hdfs-site.xml 设置副本系数和name、data的存放路径
<property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/app/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/app/tmp/dfs/data</value> </property>
4)etc/hadoop/yarn-site.xml
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop02</value> </property>
5)etc/hadoop/mapred-site.xml
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
6)/etc/hadoop/slaves(标明从节点)
hadoop02
hadoop03
hadoop04
6、分发安装包到 hadoop03、hadoop03节点上
scp -r ~/app hadoop@hadoop03:~/
scp -r ~/app hadoop@hadoop04:~/
scp ~/.bash_profile hadoop@hadoop03:~/
scp ~/.bash_profile hadoop@hadoop04:~/
在hadoop03,hadoop04上分别source下.bash_profile文件
7、NameNode格式化:只要在hadoop02上格式化
bin/hdfs namenode -format
8、启动hadoop集群。在NameNode启动
sbin/start-all.sh
启动日志:
[hadoop@hadoop02 hadoop-2.6.0-cdh5.7.0]$ ./sbin/start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
18/08/19 23:20:23 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [hadoop02]
hadoop02: starting namenode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/hadoop-hadoop-namenode-hadoop02.out
hadoop02: starting datanode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/hadoop-hadoop-datanode-hadoop02.out
hadoop04: starting datanode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/hadoop-hadoop-datanode-hadoop04.out
hadoop03: starting datanode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/hadoop-hadoop-datanode-hadoop03.out
Starting secondary namenodes [0.0.0.0]
The authenticity of host '0.0.0.0 (0.0.0.0)' can't be established.
ECDSA key fingerprint is 78:05:94:d6:0b:e2:78:7d:93:3c:90:d0:ab:7c:ed:e2.
Are you sure you want to continue connecting (yes/no)? yes
0.0.0.0: Warning: Permanently added '0.0.0.0' (ECDSA) to the list of known hosts.
0.0.0.0: starting secondarynamenode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/hadoop-hadoop-secondarynamenode-hadoop02.out
18/08/19 23:21:13 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
starting yarn daemons
starting resourcemanager, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/yarn-hadoop-resourcemanager-hadoop02.out
hadoop03: starting nodemanager, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/yarn-hadoop-nodemanager-hadoop03.out
hadoop04: starting nodemanager, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/yarn-hadoop-nodemanager-hadoop04.out
hadoop02: starting nodemanager, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/yarn-hadoop-nodemanager-hadoop02.out
9、验证
1)jps验证:
[hadoop@hadoop02 hadoop-2.6.0-cdh5.7.0]$ jps
3862 SecondaryNameNode
4086 NodeManager
3591 NameNode
3991 ResourceManager
3678 DataNode
4399 Jps
[hadoop@hadoop03 ~]$ jps
3460 NodeManager
3576 Jps
3372 DataNode
[hadoop@hadoop04 ~]$ jps
3284 NodeManager
3400 Jps
3196 DataNode
2)web页面验证:http://hadoop02:50070 (hdfs)
http://hadoop02:8088 (yarn)
10、停止
sbin/stop-all.sh