Hadoop完全分布式环境搭建
软件:
VMware Workstation 12 Pro
SecureCRT 8.0
CentOS-7-x86_64-DVD-1511.iso
jdk1.8.0_131
hadoop-2.8.0.tar.gz
实验环境:
master 192.168.0.200
slave1 192.168.0.201
slave2 192.168.0.202
slave3 192.168.0.203
(一) 操作系统准备
1、 添加Hadoop用户,设置密码
2、 为hadoop用户添加权限: vim /etc/sudoers
3、 配置静态 IP,DNS
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
4、 连接方式:仅主机模式,VPN共享网络
5、 关闭防火墙:systemctl stop firewalld.service
6、 修改主机名 : vim /etc/ hostname
7、 修改hosts文件:vim /etc/hosts
8、 关闭防火墙:systemctl stop firewalld.service
9、 测试外网是否连通
10、 测试master是否连通
(二) 安装Java jdk
1、使用rz上传下载好的jdk安装包:jdk-8u131-linux-x64.tar.gz
2、创建文件夹,移动到此目录
mkdir /usr/myfile
mv jdk-8u131-linux-x64.tar.gz /usr/myfile
3、重命名: mv jdk1.8.0_131 jdk
4、配置环境变量:vim /etc/profile
5、重启/etc/profile 生效
[root@localhost myfile]# source /etc/profile
6、测试jdk是否安装成功
[root@localhost myfile]# java –version
[root@localhost myfile]# javac
7、克隆三份系统,修改相应IP,主机名等
(三) 安装SSH
1、 先检查系统是否安装了ssh
[root@#localhost ~]# rpm -qa | grep ssh
2、检查ssh服务是否开启
[root@#localhost ~]# systemctl status sshd.service
3、切换到Hadoop用户在各个节点执行执行ssh-keygen –t rsa
(以master节点为例,其他同理)
4、每个节点修改设置"/etc/ssh/sshd_config"的内容。使无密码登录有效
[root@master ~]# vim /etc/ssh/sshd_config
5、生成的密钥对id_rsa、id_rsa.pub保存在/home/hadoop/.ssh目录下
6、在slave1、slave2、slave3分别复制各自公钥,并使用scp命令远程传给master节点
7、Master节点上已经有传输过来的三个公钥文件
8、复制master节点的公钥文件为authorized_keys,并将传输的三个节点的公钥文件内容追加到authorized_keys中
9、将包含四个节点的公钥信息的authorized_keys传给其余三个slave节点,Salve1:(其他两个同理)
10、查看authorized_keys文件
11、Master节点验证免密码登录,ssh slave1、2、3登录slave1、2、3
(四) 安装hadoop
1、下载hadoop-2.8.0.tar.gz到/usr/myfile下,解压,并重命名为hadoop
2、配置hadoop-env.sh,yarn-env.sh
vim hadoop-env.sh,vim yarn-env.sh
3、配置core-site.xml
[root@master hadoop]# vim core-site.xml
4、配置hdfs-site.xml
[root@master hadoop]# vim hdfs-site.xml
5、修改mapred-site.xml.template名为mapred-site.xml,并配置
6、配置yarn-site.xml
[root@master hadoop]# vim yarn-site.xml
7、配置slaves文件
[root@master hadoop]# vim slaves
8、在/etc/profile中加入hadoop的环境变量,重启/etc/profile
[root@master hadoop]# vim /etc/profile
[root@master ~]# source /etc/profile
9、修改slave1、2、3/usr/myfile权限为777
将配置好的hadoop文件传到其他三个slave节点,并将传过去的hadoop文件属主属组设置为hadoop:hadoop
三个slave同时添加环境变量,并重启/etc/profile
(source /etc/profile)
[root@slave1 ~]# chmod 777 /usr/myfile
[root@slave2 ~]# chmod 777 /usr/myfile
[root@slave3 ~]# chmod 777 /usr/myfile
[root@master myfile]# scp -r hadoop slave1:/usr/myfile
[root@master myfile]# scp -r hadoop slave2:/usr/myfile
[root@master myfile]# scp -r hadoop slave3:/usr/myfile
(五) 启动hadoop
1、在master节点上创建文件夹
[hadoop@master ~]# mkdir /home/hadoop/dfs
[hadoop @master ~]# mkdir /home/hadoop/dfs/data
[hadoop @master ~]# mkdir /home/hadoop/dfs/name
[hadoop @master ~]# mkdir /usr/myfile/hadoop/logs
2、在master节点格式化HDFS
[root@master ~]# hadoop namenode -format
3、启动hadoop
[hadoop@master sbin]$ ./start-all.sh
4、查看master主节点的进程
[hadoop@master hadoop]$ jps
5、查看各个slave节点的进程
[hadoop@slave1 hadoop]$ jps
[hadoop@slave2 hadoop]$ jps
[hadoop@slave3 hadoop]$ jps
6、关闭hadoop
[hadoop@master sbin]$ ./stop-all.sh
7、通过命令:hadoop dfsadmin -report可以查看节点情况,3个datanode
(六) WordCount实例运行
1、在HDFS上创建文件夹:
[hadoop@master hadoop]$ bin/hadoop fs -mkdir -p /user/hadoop/input
2、 创建input/input_test.txt文件添加统计单词内容
把本地文件夹的内容传到HDFS中
[hadoop@master hadoop]$ bin/hadoop fs -put /usr/myfile/hadoop/input/input_test.txt input
3、 运行WordCount实例
[hadoop@master hadoop]$ bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.0-sources.jar org.apache.hadoop.examples.WordCount input output
4、 查看输入文件
[hadoop@master hadoop]$ sudo bin/hadoop fs -cat /user/hadoop/input/input_test.txt
5、 map-reduce后的输出
[hadoop@master hadoop]$ sudo bin/hadoop fs -cat /user/hadoop/output/part-r-00000
6、 在http:// 192.168.0.200:50070/dfshealth.html
查看hadoop监控状态
Namenode information:
Datanode Information:
Startup Progress:
8、在http:// 192.168.0.200:8088/8查看hadoop集群状态

浙公网安备 33010602011771号