hadoop高可用安装
四台机子分别为node03\node05\node06\node07
虚拟机开机黑屏的问题,可在命令提示符窗口输入“netsh winsock reset”,然后重启计算机即可解决。(命令提示符窗口应用管理员身份运行)
分发jdk到node05、06、07
-scp jdk-7u67-linux-x64.rpm node05:pwd
-scp jdk-7u67-linux-x64.rpm node06:pwd
-scp jdk-7u67-linux-x64.rpm node07:pwd
ll查看jdk是否发送成功
给node05、06、07分别安装jdk
分别在node05、06、07上执行rpm安装命令
-rpm -i jdk-7u67-linux-x64.rpm
在node03上cd /etc,在此目录下把profile文件分发到node05、06、07上。
scp profile node05:pwd
利用Xshell全部会话栏,source /etc/profile
利用Xshell全部会话栏,jps,看05、06、07这三台机子的jdk是否装好。
同步所有服务器的时间
1.yum进行时间同步器的安装
-yum -y install ntp
2.执行同步命令
-ntpdate time1.aliyun.com
装机之前的配置文件检查
1、-cat /etc/sysconfig/network
查看HOSTNAME是否正确
2、-cat /etc/hosts
查看IP映射是否正确
3、-cat /etc/sysconfig/selinux里是否
SELINUX=disabled
4、service iptables status查看防火墙是否关闭
NN与其他三台机子的免秘钥设置
1、在家目录下ll –a看下有无.ssh文件,如果没有就ssh loalhost一下
2、-cd .ssh ,并ll查看一下
3、把node03的公钥发给其他三台机子
在node03上分别ssh node05,ssh node06,ssh node07,看是否能免密钥登录,每次ssh都别忘了exit
4、在node05的.ssh目录下看是否有node03.pub
如果有,那就追加到authorized_keys
cat node03.pub >> authorized_keys
并且在node03上ssh node05看是否免密钥了,记住要exit
给node06、07都追加一下node03.pub,也就是在node06、07的.ssh目录下执行cat node03.pub >> authorized_keys
两个NN间互相免密钥
在node05上:
ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh localhost验证一下
分发到node03上:scp id_dsa.pub node03:pwd
/node05.pub
在node03的.ssh目录下,cat node05.pub >> authorized_keys,
在node04上ssh node03验证一下可否免密钥登录
修改namenode的一些配置信息
先进入到hadoop文件下cd /opt/zq/hadoop-2.6.5/etc/hadoop
1、vi hdfs-site.xml
dfs.replication
3
dfs.nameservices
mycluster
dfs.ha.namenodes.mycluster
nn1,nn2
dfs.namenode.rpc-address.mycluster.nn1
node03:8020
dfs.namenode.rpc-address.mycluster.nn2
node05:8020
dfs.namenode.http-address.mycluster.nn1
node03:50070
dfs.namenode.http-address.mycluster.nn2
node05:50070
dfs.namenode.shared.edits.dir
qjournal://node03:8485;node05:8485;node06:8485/mycluster
dfs.journalnode.edits.dir
/var/zq/hadoop/ha/jn
dfs.client.failover.proxy.provider.mycluster
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.ha.fencing.methods
sshfence
dfs.ha.fencing.ssh.private-key-files
/root/.ssh/id_dsa
dfs.ha.automatic-failover.enabled
true
2、vi core-site.xml
fs.defaultFS
hdfs://mycluster
ha.zookeeper.quorum
node05:2181,node06:2181,node07:2181
3、vi slaves
node05
node06
node07
4、安装hadoop
cd /opt ,将其下的zq目录分发到node05、06、07
scp –r zq/ node05:pwd
scp –r zq/ node06:pwd
scp –r zq/ node07:pwd
5、将hdfs-site.xml和core-site.xml分发到node05、06、07
-scp hdfs-site.xml core-site.xml node05:pwd
-scp hdfs-site.xml core-site.xml node06:pwd
-scp hdfs-site.xml core-site.xml node07:pwd
安装zookeeper
1.解压安装zookeeper
tar xf zookeeper-3.4.6.tar.gz -C /opt/zq
2.修改zookeeper的配置文件
cd /opt/zq/zookeeper-3.4.6/conf
给zoo_sample.cfg改名
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
改dataDir=/var/zq/zk
并在末尾追加
server.1=node05:2888:3888
server.2=node06:2888:3888
server.3=node07:2888:3888
3.把zookeeper分发到其他节点
scp -r zookeeper-3.4.6/ node06:pwd
scp -r zookeeper-3.4.6/ node07:pwd
并用ll /opt/zq检查下看分发成功没
4.给每台机子创建刚配置文件里的路径
mkdir -p /var/zq/zk
对node05来说:
echo 1 > /var/zq/zk/myid
cat /var/zq/zk/myid
对node06来说:
echo 2 > /var/zq/zk/myid
cat /var/zq/zk/myid
对node07来说:
echo 3 > /var/zq/zk/myid
cat /var/zq/zk/myid
5.在vi /etc/profile里面配置
export ZOOKEEPER_HOME=/opt/zq/zookeeper-3.4.6
export PATH=
P
A
T
H
:
/
u
s
r
/
j
a
v
a
/
j
d
k
1.7.
0
6
7
/
b
i
n
:
PATH:/usr/java/jdk1.7.0_67/bin:
PATH:/usr/java/jdk1.7.067/bin:HADOOP_HOME/bin:
H
A
D
O
O
P
H
O
M
E
/
s
b
i
n
:
HADOOP_HOME/sbin:
HADOOPHOME/sbin:ZOOKEEPER_HOME/bin
6.然后在把/etc/profile分发到其他node06、node07
scp /etc/profile node06:/etc
scp /etc/profile node07:/etc
在node05、06、07里source /etc/profie,这步千万别忘
验证source这句是否完成,输入zkCli.s,按Tab可以把名字补全zkCli.sh
7.启动zookeeper
全部会话:zkServer.sh start
接着用zkServer.sh status查看每个zookeeper节点的状态
注意:如果启动不起来,请把/etc/profile里的JAVA_HOME改成绝对路径。
启动journalnode
在03、04、05三台机子上分别把journalnode启动起来
hadoop-daemon.sh start journalnode
用jps检查下进程启起来了没
格式化任一namenode
随意挑一台namenode上执行hdfs namenode –format
另一台namenode不用执行,否则clusterID变了,找不到集群了。
然后,启动刚刚格式化的那太namenode
hadoop-daemon.sh start namenode
给另一namenode同步数据
hdfs namenode -bootstrapStandby
格式化zkfc
hdfs zkfc -formatZK
在node05上执行zkCli.sh打开zookeeper客户端看hadoop-ha是否打开
在node03上启动hdfs集群:
start-dfs.sh
然后全部会话jps看一下都起来些什么进程
用浏览器访问node03:50070和node05:50070
关闭集群命令:stop-dfs.sh
关闭zookeeper命令:zkServer.sh stop