Hadoop 2.8 HA集群安装部署
环境:
```
系统:CentOS7
Hadoop版本:2.8(支持snappy压缩)
ip:
192.170.18.205 namenode01
192.170.18.206 namenode02
192.170.18.207 datanode01
192.170.18.208 datanode02
192.170.18.209 datanode03
```
集群规划:
主机名 IP 安装的软件 运行的进程
namenode01 192.170.18.205 jdk、hadoop NameNode、DFSZKFailoverController(zkfc)
namenode02 192.170.18.206 jdk、hadoop NameNode、DFSZKFailoverController(zkfc)
datanode01 192.170.18.207 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain
datanode02 192.170.18.208 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain
datanode03 192.170.18.209 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain
1.JDK安装
卸载:yum remove java-1.8.0-openjdk*
yum remove java-1.7.0-openjdk* //如果不是mini版本,可能系统自带的有.强迫症..还是自己配置的以后升级调整方便..
解压:tar -zxvf jdkxxxx.tar.gz
删除:rm -rf jdkxxxx.tar.gz //强迫症.
修改:mv jdk1.xxx jdk
配置:vim /etc/profile
追加:export JAVA_HOME=/usr/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存退出
source /etc/profile
验证:java -version
2.SSH配置
为了方便集群直接通信连接方便,配置ssh是必要的
分别在各个集群上执行:ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
提示此图,则证明ssh生成成功
将各个节点(机器)上的/root/.ssh/id_dsa.pub文件集中到一台机器上(在此将所有集群上公钥发送到namenode01上):
scp -r /root/.ssh/id_dsa.pub namenode01:/root/.ssh/id_dsa.pub.x
将所有公钥配置到authorized_keys中: cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
此时authorized_keys有5把公钥了,这时再用ssh ip访问其他机器时会提示你输入一次密码(这一次输入后,会将访问信息记录到known_hosts中),以后就不再提示输入密码了..开心不?
用ssh把各台机器访问一次!
scp -r /root/.ssh/authorized_keys /root/.ssh/known_hosts 其他机器ip:/root/.ssh/
此时你在用其他机器访问各台机器,不提示输入密码了!!惊讶!!
3.Zookeeper安装
3.1解压配置
解压到 :/opt/下
修改文件名为zookeeper
cd /opt/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
创建文件夹: mkdir -p /data/zookeeper
进入:cd /data/zookeeper
创建文件:vim myid
添加内容:1 //只要是数字(>0)即可,各个zookeeper节点的数字要不一样
保存
分发zookeeper文件到各个节点上
配置环境变量:
vim /etc/profile
追加内容:
export ZK_HOME=/opt/zookeeper
export PATH=$PATH:$ZK_HOME/bin
保存
source /etc/profile
在各个节点上启动zookeeper
启动: zkServer.sh start
查看状态: zkServer.sh status
可看到只有一台机器状态是leader,其他的都是follower
在此 zookeeper部署安装成功
4.安装Hadoop
解压:tar -zxvf hadoop-2.8.0.tar.gz
进入:cd hadoop-2.8.0/
除杂:rm -rf NOTICE.txt README.txt LICENSE.txt
配置:
cd etc/hadoop/
vim core-site.xml
vim hdfs-site.xml
touch datanode-allow.list
vim datanode-allow.list
将上线的datanode的hostname配置进去
touch datanode-deny.list
vim datanode-deny.list
将下线的datanode的hostname配置进去
vim slaves
将datanode的hostname配置进去
vim hadoop-env.sh
配置JAVA_HOME的环境变量
分发hadoop2.8.0文件到各个节点
配置环境变量
vim /etc/profile
追加:
HADOOP_HOME=/opt/hadoop-2.8.0
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存
source /etc/profile
至此hdfs的简单配置结束了
下面就是格式化,启动了..你准备好了吗?
1).在datanode的三个节点(datanode01,datanode02,datanode02)上启动journalnode
hadoop-daemon.sh start journalnode
2).格式化HDFS
在namenode01执行
hdfs namenode -format
hadoop-daemon.sh start namenode
在namenode02执行
hdfs namenode -bootstrapStandby
在namenode01执行
hadoop-daemon.sh stop namenode
3).格式化ZKFS
在namenode01执行:
hdfs zkfc -formatZK
4).启动HDFS:
在namenode01执行:
start-dfs.sh