1.在伪分布式下进行高可用式安装
hadoop的安装方案如下:
2.安装步骤
(1)分发jdk到node04,05,06
-scp jdk-7u67-linux-x64.rpm node04:pwd
-scp jdk-7u67-linux-x64.rpm node05:pwd
-scp jdk-7u67-linux-x64.rpm node06:pwd
并在Xshell的全部会话栏里一起ll,看jdk是否发送成功。
(2)给node04、05、06分别安装jdk
分别在node04、05、06上执行rpm安装命令
-rpm -i jdk-7u67-linux-x64.rpm
在node03上cd /etc,在此目录下把profile文件分发到
node04、05、06上。
scp profile node04:pwd
利用Xshell全部会话栏,source /etc/profile
利用Xshell全部会话栏,jps,看04、05、06这三台机子
的jdk是否装好。
3.同步所有服务器的时间
-date 查看机子当前的时间。
时间不能差太大,否则集群启动后某些进程跑不起来。
若时间不同步,怎么办?
(1).yum进行时间同步器的安装
-yum -y install ntp
(2).执行同步命令
-ntpdate time1.aliyun.com
和阿里云服务器时间同步
4. 装机之前的配置文件检查
(1).-cat /etc/sysconfig/network
查看HOSTNAME是否正确
(2)-cat /etc/hosts
查看IP映射是否正确
若不正确,可以改文件,
也可以把node03上的用scp分发过去。
(3). -cat /etc/sysconfig/selinux里是否
SELINUX=disabled.
(4).service iptables status查看防火墙是否关闭
如果没有关闭就需要关闭
5.NameNode与其他三台机子的免秘钥设置
(1)在家目录下 ll -a 看下有无.ssh 文件,如果没有就ssh localhost一下
ssh-****** -t dsa -P ‘’-f ~/.ssh/id_dsa
cat ~/.ssh/id dsa.pub >> ~/.ssh/authorized_keys
(2).cd .ssh,并 ll查看
(3)把node02的公钥发给其他三台机子
scp id_dsa.pub node03:‘pwd’/node02.pub
scp id_dsa.pub node04:‘pwd’/node02.pub
scp id_dsa.pub node05:‘pwd’/node02.pub
(4)在node03,node04,node05
追加一下node02.pub,每次ssh都需要exit一下
6.两个NN间互相免**
(1).node03与node04间互相免**: node03可免**登录node04,那现
需node04上能免**登node03,所以
在node04上:
ssh-****** -t dsa -P ‘’ -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh localhost验证一下
分发到node03上:scp id_dsa.pub node03:pwd/node04.pub
在node03的.ssh目录下,cat node04.pub >> authorized_keys,
在node04上ssh node03验证一下可否免**登录
7.修改namenode的一些配置信息
(1).vi hdfs-site.xml*
a.去掉snn的配置
b.增加以下property
(2).vi core-site.xml*
(3)vi slaves
node04
node05
node06
(4).安装hadoop
- cd /opt ,将其下的ldy目录分发到node04、05、06
scp –r ldy/ node04:pwd
scp –r ldy/ node05:pwd
scp –r ldy/ node06:pwd
2.将hdfs-site.xml和core-site.xml分发到node04、05、06
-scp hdfs-site.xml core-site.xml node04:pwd
-scp hdfs-site.xml core-site.xml node05:pwd
-scp hdfs-site.xml core-site.xml node06:pwd
8.安装zookeeper
(1).解压安装zookeeper*
tar xf zookeeper-3.4.6.tar.gz -C /opt/ldy
(2).修改zookeeper的配置文件
cd /opt/ldy/zookeeper-3.4.6/conf
给zoo_sample.cfg改名
cp zoo_sample.cfg zoo.cfg
在vi zoo.cfg中
改dataDir=/var/ldy/zk
并在末尾追加
server.1=node04:2888:3888
server.2=node05:2888:3888
server.3=node06:2888:3888
其中2888主从通信端口,
3888是当主挂断后进行选举机制的端口
(3).把zookeeper分发到其他节点
scp -r zookeeper-3.4.6/ node05:pwd
scp -r zookeeper-3.4.6/ node06:pwd
并用ll /opt/ldy检查下看分发成功没
(4)给每台机子创建刚配置文件里的路径
mkdir -p /var/ldy/zk
对node04来说:
echo 1 > /var/ldy/zk/myid
cat /var/ldy/zk/myid
对node05来说:
echo 2 > /var/ldy/zk/myid
cat /var/ldy/zk/myid
对node06来说:
echo 3 > /var/ldy/zk/myid
cat /var/ldy/zk/myid
注:给每台机子配置其编号(必须是阿拉伯数字)
(5).在/etc/profile里面配置
export ZOOKEEPER_HOME=/opt/ldy/zookeeper-3.4.6
export PATH=HADOOP_HOME/bin:ZOOKEEPER_HOME/bin
(6).然后在把/etc/profile分发到其他node05、node06
scp /etc/profile node05:/etc
scp /etc/profile node06:/etc
在node04、05、06里source /etc/profie,这步千万别忘
验证source这句是否完成,输入zkCli.s,按Tab可以把名字补全zkCli.sh
(7).启动zookeeper
全部会话:zkServer.sh start
接着用zkServer.sh status查看每个zookeeper节点的状态
注:如果启动不起来,请把/etc/profile里的JAVA_HOME改
成绝对路径。
9.启动journalnode
(1)为了使两台namenode间完成数据同步
在03、04、05三台机子上分别把journalnode启动起来
hadoop-daemon.sh start journalnode
用jps检查下进程启起来了没
10.格式化任一namenode
(1) 随意挑一台namenode上执行hdfs namenode –format
另一台namenode不用执行,否则clusterID变了,找不到
集群了。
(2)然后,启动刚刚格式化的那太namenode
hadoop-daemon.sh start namenode
11. 给另一namenode同步数据
通过 hdfs namenode -bootstrapStandby命令给另一台namenode同步数据
12. 格式化zkfc(Zookeeper Failover Controller)
hdfs zkfc -formatZK
在node04上执行zkCli.sh打开zookeeper客户端看
hadoop-ha是否打开
13.启动hdfs集群
在node03上启动hdfs集群命令:
start-dfs.sh
然后全部会话jps看一下都起来些什么进程
用浏览器访问node03:50070和node04:50070
14.关闭集群
关闭集群命令:stop-dfs.sh
关闭zookeeper命令:zkServer.sh stop
注:下一次启动hdfs集群的时候只要start-dfs.sh就可以了。
我们之前启动journalnode是
为了同步两个namenode之间的信息。
15.个人总结
1.在装hadoop高可用时,往往更不上进度,但通过直播回放能够慢慢跟上来。
2.在遇到安装时候的问题时,能够通过查阅百度去解决问题。