目录
Centos7搭建Hadoop HA完全分布式集群(6台机器)(内含hbase,hive,flume,kafka,spark,sqoop,phoenix,storm). 1
角色担任
Hadoop HA
HBase HA
Spark
Storm HA
Centos7搭建Hadoop HA完全分布式集群(6台机器)(内含hbase,hive,flume,kafka,spark,sqoop,phoenix,storm)
采用6台机器
主机名 ip 对应的角色
Master 188.2.11.148 namenode(主)
Slave1 188.2.11.149 namenode2,datanode1(主备,从1)
Slave2 188.2.11.150 datanode2(从2)
Slave3 188.2.11.151 datanode3(从3)
Slave4 188.2.11.152 datanode4(从4)
Slave5 188.2.11.153 datanode5(从5)
前期配置
1.修改主机名(6台机器都要操作,以Master为举例)
hostnamectl set-hostname Master(永久修改主机名)
reboot(重启系统)
2.修改hosts(6台机器都要操作,以Master举例)
188.2.11.148 Master
188.2.11.149 Slave1
188.2.11.150 Slave2
188.2.11.151 Slave3
188.2.11.152 Slave4
188.2.11.153 Slave5
3.准备hadoop专用用户
adduser kfs 创建kfs用户
passwd kfs 设置用户密码
4.尝试能否ping通(6台机器都要操作,以Master举例)
ping -c 3 Slave1
5.ssh生成密钥(6台机器都要操作)
ssh-keygen -t rsa (连续三次回车)
6.切换到.ssh目录下,查看公钥和私钥,并将id_rsa.pub复制到authorized_keys,然后将6台机器的authorized_key复制到本地将内容合并
cd .ssh
cp id_rsa.pub authorized_keys
7.来到root用户下为.ssh赋值权限
su root
cd ..
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
8.ssh 与别的节点无密钥连接(6台机器都需要进行无密钥连接,master举例)
ssh slave1 (连接到slave1)
exit (登出)
ssh slave2 (连接到slave2)
exit (登出)
ssh slave3 (连接到slave3)
exit (登出)
ssh slave4 (连接到slave4)
exit (登出)
ssh slave5 (连接到slave5)
exit (登出)
9.关闭防火墙(6台机器都要关闭,master举例)
systemctl stop firewalld.service
安装jdk
10.安装jdk之前,先检查是否已经安装了open的jdk,有的话需要先卸载(6台机器都要卸载)
java -version
11.查看有jdk的存在,需要先卸载然后再安装oracle的jdk
rpm -qa | grep java (查询java版本)
rpm -e --nodeps xxx (逐个删除完)
rpm -qa | grep java (没有显示有了,那就是删除完了,可以安装oracle的jdk)
12.在usr目录下创建java文件夹,将jdk拷贝到java目录
cd /usr/java
ls
tar zxvf jdk-8u144-linux-x64.tar.gz
ls
13.jdk的环境变量配置(使用的是在root目录下的全局配置文件/etc/profile,6台机器都要配置,master举例)
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:${JRE_HOME}/lib
保存退出之后使用命令让配置生效
source /etc/profile
验证版本
安装zookeeper
14.上传和解压zookeeper解压到/home/kfs目录(在Slave1,2,3,4,5节点上配置)
cd software/
ls
tar -zxvf zookeeper-3.4.5.tar.gz -C /home/kfs/
15.来到解压的zookeeper-3.4.5/conf目录下,将zoo_sample.cfg复制到zoo.cfg
cd ..
cd zookeeper-3.4.5/conf/
ls
cp zoo_sample.cfg zoo.cfg
16.修改zookeeper的配置
添加以下配置
dataDir=/home/kfs/zookeeper-3.4.5/data
dataLogDir=/home/kfs/zookeeper-3.4.5/log
clientPort=2181
server.1=Slave1:2888:3888
server.2=Slave2:2888:3888
server.3=Slave3:2888:3888
server.4=Slave4:2888:3888
server.5=Slave5:2888:3888
17.创建log和data目录,新建myid加入对应的server.x参数(比如slave1的myid内容是1)每台服务器都需要
mkdir log
mkdir data
echo "1"
安装hadoop
18.安装解压hadoop到/home/kfs目录下(Master举例)
tar -zxvf hadoop-2.7.4.tar.gz -C /home/kfs/
解压成功
19.进入配置文件目录下修改配置文件
cd hadoop-2.7.4
cd etc/hadoop
20.修改core-site.xml
vi core-site.xml
<configuration>
<!-- 指定hdfs的nameservice为ns1 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1/</value>
</property>
<!-- 指定hadoop临时目录,tmp这个目录需要提前建立好 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/data/hadoop-data/tmp</value>
</property>
<!-- 指定zookeeper地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>Slave1:2181,Slave2:2181,Slave3:2181,Slave4:2181,Slave5:2181</value>
</property>
</configuration>
21.修改hdfs-site.xml
vi hdfs-site.xml
<configuration>
<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>Master:9000</value>
</property>
<!-- nn1的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>Master:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>Slave1:9000</value>
</property>
<!-- nn2的http通信地址 -->
<property>