搭建完全分布式的环境是研究大数据技术必不可少的要求。这里,小编将一步步的教大家搭建如何进行Hadoop完全分布式的环境搭建,以三台机器为例。废话不多说直接进入配置模式~
一、系统和软件
CentOS6.5,hadoop2.5.0,jdk1.8.0_161
二、基本环境准备
检查主机名:$ cat /etc/sysconfig/network
检查IP和DNS:$ cat/etc/sysconfig/network-scripts/ifcfg-eth0
检查主机映射:$ cat /etc/hosts(Linux)
C:\Windows\System32\drivers\etc\hosts(Windows)
关闭防火墙:在root用户下
# service iptables stop
# chkconfig iptables off检查:$ sudo service iptablesstatus
$ sudo chkconfig --list| grep iptables
关闭Linux安全子系统:# vi/etc/sysconfig/selinux
三、配置NTP服务
将第一台机器(PC1)作为整个集群的时间同步服务器
首先检查每台服务器所在的时区
如果不是东八区,通过以下命令进行调整
# rm -rf/etc/localtime
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
然后安装ntp服务
# rpm -qa | grep ntp --查看ntp软件包是否已安装
如果没有通过以下命令安装
# yum -y install ntp
接着修改ntp的配置文件
# vi /etc/ntp.conf
把下图中的红框改成自己的网段
注释掉下图红框中的内容
在配置文件最后添加以下内容
server 127.127.1.0 #local clock
fudge 127.127.1.0 stratum 10
接着,用PC1同步服务器的时间
# ntpdatecn.pool.ntp.org
启动ntp服务
# service ntpd start
# chkconfig ntpd on
$ sudo chkconfig --list | grep ntpd
$ sudo ntpdate 202.120.2.101
另外,如果另外的两台机器的ntp进程开着,需要关闭
# service ntpd stop
# chkconfig ntpd off
最后,另外两台机器向第一台机器同步时间
# ntpdate PC1的主机名
制定周期性时间同步计划任务,每十分钟同步一次时间
# crontab -e
*/10 * * * * /usr/sbin/ntpdate PC1的主机名
[注意]:如果确实无法向第一台同步时间,请在交互窗口(可以同时设置3台时间)执
行手动设置时间
# date -s "11:48:00 2017/3/23"
四、配置SSH免秘钥登录
三台机器上都要做的事情!!!
$ ssh-keygen
$ ssh-copy-id PC1的主机名
$ ssh-copy-id PC2的主机名
$ ssh-copy-id PC3的主机名分发完成之后会在用户主目录下.ssh目录生成以下文件
测试失败,需要先删除.ssh目录,重做一遍
五、安装Hadoop
上传解压hadoop-2.5.0.tar.gz,并删除${HADOOP_HOME}/share/doc文件,命令如下:$ rm -rf doc/
六、配置Hadoop的相关配置文件
配置java环境支持(这里的截图是1.7的版本,实际上小编的jdk是1.8的,在配置的时候只需要写上自己的jdk版本就行了)
${HADOOP_HOME}/etc/hadoop,在hadoop-env.sh mapred-env.sh yarn-env.sh中配置。
配置slaves
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
七、PC1分发hadoop到另外两台机器上
$ scp -r/opt/modules/hadoop-2.5.0/ PC2主机名:/opt/modules/
$ scp -r/opt/modules/hadoop-2.5.0/ PC3主机名:/opt/modules/
八、格式化NameNode
在PC1上的${HADOOP_HOME}/bin
$ bin/hdfs namenode -format九、启动进程
在PC1上启动HDFS
$ sbin/start-dfs.sh
在PC3上启动Yarn
$ sbin/start-yarn.sh
十、jps查看各个进程
至此,Hadoop完全分布式的搭建就算讲完了~
你们在此过程中还遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题。