hadoop -day4 安装zookeeper和HA高可用
安装zookeeper
1、上传安装包到master并解压(在/usr/local/soft/目录下)
tar -zxvf zookeeper-3.4.6.tar.gz
2、配置环境变量
vim /etc/profile
ZOOKEEPER_HOME=/usr/local/soft/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
3、修改配置文件
cd conf
cp zoo_sample.cfg zoo.cfg(把zoo_sample.cfg变成zoo.cfg文件)
修改
dataDir=/usr/local/soft/zookeeper-3.4.6/data
增加
server.0=master:2888:3888
server.1=node1:2888:3888
server.2=node2:2888:3888
4、新建data目录
cd /usr/local/soft/zookeeper-3.4.6
mkdir data
cd data
touch myid
5、同步到其它节点
scp -r zookeeper-3.4.6 node1:`pwd`
scp -r zookeeper-3.4.6 node2:`pwd`
配置node1和node2的环境变量
在所有节点执行
source /etc/profile
6、编辑/usr/local/soft/zookeeper-3.4.6/data/myid
master,node1,node2分别加上0,1,2
7、启动zk,(都在soft目录下)
zkServer.sh start 三台都需要执行
zkServer.sh status 查看状态
通过jps可以查看zk的进程:QuorumPeerMain
当有一个leader的时候启动成功
## 停止zk
zkServer.sh stop 三台都需要执行
8、连接zk
zkCli.sh
zk 是一个目录结构 ,每个节点可以存数据,同时可以有子节点
zk shell
创建目录
create /test testData
create /test/a aData
获取数据
get /test
ls /test
delete 只能删除没有子节点的节点
rmr /test 删除节点
重置zk
1、杀掉所有zk进程
kiil -9 pid
2、删除data目录下的version文件, 所有节点都要删除
rm -rf /usr/local/soft/zookeeper-3.4.6/data/version-2
2、启动zk
zkServer.sh start
搭建Hadoop-HA(搭建之前拍快照)
ZK NN DN RM NM JN ZKFC
master 1 1 1 1 1 1
node1 1 1 1 1 1 1 1 1
node2 1 1 1 1 1
1、防火墙
service firewalld stop
或者 systemctl status firewalld.service
2、时间同步
如果时间不差很多就不需要下面两行的操作,
yum install ntp
ntpdate -u s2c.time.edu.cn
或者
date -s 20180503
3、免密钥 (远程执行命令)
在两个主节点生成密钥文件
ssh-keygen -t rsa
ssh-copy-id ip
master-->master,node1,node2
node1-->master,node1,node2
4、修改hadoop配置文件
core-site.xml
hdfs-site.xml
停止HDFS集群:stop-dfs.sh
同步到其它节点
cd /usr/local/soft/hadoop-2.7.6/etc/hadoop
scp ./* node1:`pwd`
scp ./* node2:`pwd`
5、删除hadoop数据存储目录下的文件 每个节点都需要删除
rm -rf /usr/local/soft/hadoop-2.7.6/tmp
在/usr/local/soft/hadoop-2.7.6/etc/hadoop目录下上传配置文件(core-site.xml和hdfs-site.sml),每一个节点都需要。
去node1和node2配置环境变量(添加hadoop的环境变量)
6、启动zookeeper 三台都需要启动
zkServer.sh start
zkServer.sh status
7、启动JN 存储hdfs元数据
三台JN上执行 启动命令:
/usr/local/soft/hadoop-2.7.6/sbin/hadoop-daemon.sh start journalnode(已经配置了环境变量,所以不需要写前面)
8、格式化 在一台NN上执行,这里选择master
hdfs namenode -format
启动当前的NN
hadoop-daemon.sh start namenode
9、执行同步 没有格式化的NN上执行 在另外一个namenode上面执行 这里选择node1
/usr/local/soft/hadoop-2.7.6/bin/hdfs namenode -bootstrapStandby
10、格式化ZK 在master上面执行
!!一定要先 把zk集群正常 启动起来
/usr/local/soft/hadoop-2.7.6/bin/hdfs zkfc -formatZK
11、启动hdfs集群,在master上执行
start-dfs.sh