(一)hadoop2.x版本下载及安装

Hadoop 版本选择目前主要基于三个厂商(国外)如下所示:

1.基于Apache厂商的最原始的hadoop版本, 所有发行版均基于这个版本进行改进。

2.基于HortonWorks厂商的开源免费的hdp版本。

3.基于Cloudera厂商的cdh版本,Cloudera有免费版和企业版, 企业版只有试用期。不过cdh大部分功能都是免费的。

(二)hadoop2.x分布式集群配置

1.集群资源规划设计

新闻网大数据实时分析可视化系统项目——3、Hadoop2.X分布式集群部署-LMLPHP

2.hadoop2.x分布式集群配置

1)hadoop2.x分布式集群配置-HDFS

安装hdfs需要修改4个配置文件:hadoop-env.sh、core-site.xml、hdfs-site.xml和slaves

2)hadoop2.x分布式集群配置-YARN

安装yarn需要修改4个配置文件:yarn-env.sh、mapred-env.sh、yarn-site.xml和mapred-site.xml

(三)分发到其他各个机器节点

hadoop相关配置在第一个节点配置好之后,可以通过脚本命令分发给另外两个节点即可,具体操作如下所示。

#将安装包分发给第二个节点

scp -r hadoop-2.5.0 [email protected]:/opt/modules/

#将安装包分发给第三个节点

scp -r hadoop-2.5.0 [email protected]:/opt/modules/

(四)HDFS启动集群运行测试

hdfs相关配置好之后,可以启动hdfs集群。

1.格式化NameNode

通过命令:bin/hdfs namenode -format 格式化NameNode。

2.启动各个节点机器服务

1)启动NameNode命令:sbin/hadoop-daemon.sh start namenode

2) 启动DataNode命令:sbin/hadoop-daemon.sh start datanode

3)启动ResourceManager命令:sbin/yarn-daemon.sh start resourcemanager

4)启动NodeManager命令:sbin/yarn-daemon.sh start resourcemanager

5)启动log日志命令:sbin/mr-jobhistory-daemon.sh start historyserver

(五)YARN集群运行MapReduce程序测试

前面hdfs和yarn都启动起来之后,可以通过运行WordCount程序检测一下集群是否能run起来。

集群自带的WordCount程序执行命令:bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount input output

(六)ssh无秘钥登录

在集群搭建的过程中,需要不同节点分发文件,那么节点间分发文件每次都需要输入密码,比较麻烦。另外在hadoop 集群启动过程中,也需要使用批量脚本统一启动各个节点服务,此时也需要节点之间实现无秘钥登录。具体操作步骤如下所示:

1.主节点上创建 .ssh 目录,然后生成公钥文件id_rsa.pub和私钥文件id_rsa

mkdir .ssh

ssh-keygen -t rsa

2.拷贝公钥到各个机器

ssh-copy-id bigdata-pro1.kfk.com

ssh-copy-id bigdata-pro2.kfk.com

ssh-copy-id bigdata-pro3.kfk.com

3.测试ssh连接

ssh bigdata-pro1.kfk.com

ssh bigdata-pro2.kfk.com

ssh bigdata-pro3.kfk.com

4.测试hdfs

ssh无秘钥登录做好之后,可以在主节点通过一键启动命令,启动hdfs各个节点的服务,具体操作如下所示:

sbin/start-dfs.sh

如果yarn和hdfs主节点共用,配置一个节点即可。否则,yarn也需要单独配置ssh无秘钥登录。

(七)配置集群内机器时间同步(使用Linux ntp进行)

选择一台机器作为时间服务器,比如bigdata-pro1.kfk.com节点。

1.查看ntp服务是否已经存在

sudo rpm -qa|grep ntp

2.ntp服务相关操作

1)查看ntp状态

sudo service ntpd status

2)启动ntp

sudo service ntpd start

3)关闭ntp

sudo service ntpd stop

3.设置ntp随机器启动

sudo chkconfig ntpd on

4.修改ntp配置文件

vi /etc/ntp.conf

#释放注释并将ip地址修改为

restrict 192.168.31.151 mask 255.255.255.0 nomodify notrap

#注释掉以下命令行

server 0.centos.pool.ntp.org iburst

server 1.centos.pool.ntp.org iburst

server 2.centos.pool.ntp.org iburst

server 3.centos.pool.ntp.org iburst

#释放以下命令行

server 127.127.1.0 #local clock

fudge 127.127.1.0 stratum 10

重启ntp服务

sudo service ntpd restart

5.修改服务器时间

#设置当前日期

sudo date -s 2017-06-16

#设置当前时间

sudo date -s 22:06:00

6.其他节点手动同步主服务器时间

#查看ntp位置

which ntpdate

/usr/sbin/ntpdate

1)手动同步bigdata-pro2.kfk.com节点时间

sudo /usr/sbin/ntpdate bigdata-pro2.kfk.com

2)手动同步bigdata-pro3.kfk.com节点时间

sudo /usr/sbin/ntpdate bigdata-pro3.kfk.com

7.其他节点定时同步主服务器时间

bigdata-pro2.kfk.com和bigdata-pro3.kfk.com节点分别切换到root用户, 通过crontab -e 命令,每10分钟同步一次主服务器节点的时间。

crontab -e

#定时,每隔10分钟同步bigdata-pro1.kfk.com服务器时间

0-59/10 * * * *  /usr/sbin/ntpdate bigdata-pro1.kfk.com

05-11 00:06