HadoopHA(2.6.5)搭建

说明

目标

ipzknamenodezkfcjournalnodedatanode
192.168.10.128(node1)yyyy-
192.168.10.129(node2)yyyy-
192.168.10.130(node3)y--yy
192.168.10.130(node3)y--yy
192.168.10.130(node3)y--yy

说明:
1.journalnode轻量级,故5台都装,也可以只装后3台,node1、node2不装
2.ha用户

安装包
zookeeper-3.4.14.tar.gz
hadoop-2.6.5.tar.gz

上传到五台服务器
/home/

其他

  • jdk要配置好

部署

用户及服务器名称

/etc/hosts加入下面

192.168.10.128 node1
192.168.10.129 node2
192.168.10.130 node3
192.168.10.131 node4
192.168.10.132 node5

// 用户
useradd ha
su ha

// 解压文件到ha
tar zxf zookeeper-3.4.14.tar.gz -C /home/ha/
tar zxf hadoop-2.6.5.tar.gz -C /home/ha/

zookeeper安装

// ha用户就可以了
mkdir /home/ha/zookeeper-3.4.14/{logs,data}
touch /home/ha/zookeeper-3.4.14/data/myid

cat <<EOF > /home/ha/zookeeper-3.4.14/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/ha/zookeeper-3.4.14/data
dataLogDir=/home/ha/zookeeper-3.4.14/logs
clientPort=2181
autopurge.snapRetainCount=500
autopurge.purgeInterval=24
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
server.4=node4:2888:3888
server.5=node5:2888:3888
EOF

// 依次往5台服务器的myid输入1、2、3、4、5,下面以128服务器为例
cat <<EOF > /home/ha/zookeeper-3.4.14/data/myid
1
EOF

启动

cd /home/ha/zookeeper-3.4.14/bin
/home/ha/zookeeper-3.4.14/bin/zkServer.sh start

验证
/home/ha/zookeeper-3.4.14/bin/zkServer.sh status
/home/ha/zookeeper-3.4.14/bin/zkServer.sh stop

hadoopHA部署

修改配置

1)新建相关目录
mkdir -p /home/ha/hadoop-2.6.5/{logs,tmp,name,data,journal}
2)core-site.xml

cat <<EOF > /home/ha/hadoop-2.6.5/etc/hadoop/core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	 <property>
		 <name>fs.defaultFS</name>
		 <value>hdfs://hadoopha</value>
	 </property>
	 <property>
		 <name>hadoop.tmp.dir</name>
		 <value>file:/home/ha/hadoop-2.6.5/tmp</value>
	 </property>
	 <property>
		 <name>ha.zookeeper.quorum</name>
		 <value>node1:2181,node2:2181,node3:2181,node4:2181,node5:2181</value>
	 </property>
	 <property>
		 <name>ha.zookeeper.session-timeout.ms</name>
		 <value>30000</value>
	 </property>
</configuration>
EOF

3)hdfs-site.xml

cat <<EOF > /home/ha/hadoop-2.6.5/etc/hadoop/hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>file:/home/ha/hadoop-2.6.5/name</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>file:/home/ha/hadoop-2.6.5/data</value>
	</property>
	<property>
		<name>dfs.replication</name>
		<value>2</value>
	<!--<value>3</value>-->
	</property>
	<!--HA -->
	<property>
		<name>dfs.nameservices</name>
		<value>hadoopha</value>
	</property>
	<property>
		<name>dfs.ha.namenodes.hadoopha</name>
		<value>nn1,nn2</value>
	</property>
	<!--namenode1 RPC -->
	<property>
		<name>dfs.namenode.rpc-address.hadoopha.nn1</name>
		<value>node1:9000</value>
	</property>
	<!--namenode1 HTTP -->
	<property>
		<name>dfs.namenode.http-address.hadoopha.nn1</name>
		<value>node1:50070</value>
	</property>
	<!--namenode2 RPC -->
	<property>
		<name>dfs.namenode.rpc-address.hadoopha.nn2</name>
		<value>node2:9000</value>
	</property>
	<!--namenode2 HTTP -->
	<property>
		<name>dfs.namenode.http-address.hadoopha.nn2</name>
		<value>node2:50070</value>
	</property>
	<!--HA -->
	<property>
		<name>dfs.ha.automatic-failover.enabled</name>
		<value>true</value>
	</property>
	<!-- journalnode -->
	<property>
		<name>dfs.namenode.shared.edits.dir</name>
		<value>qjournal://node1:8485;node2:8485;node3:8485;node4:8485;node5:8485/hadoopha</value>
	</property>
	<property>
		<name>dfs.client.failover.proxy.provider.hadoopha</name>
		<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
	</property>
	<!--failoverStandbyActiveNameNode fencesshfencesshfuserActiveNameNode-->
	<property>
		<name>dfs.ha.fencing.methods</name>
		<value>shell(/bin/true)</value>
	</property>
	<property>
		<name>dfs.ha.fencing.ssh.connect-timeout</name>
		<value>30000</value>
	</property>
	<!--Journal Node -->
	<property>
		<name>dfs.journalnode.edits.dir</name>
		<value>/home/ha/hadoop-2.6.5/journal</value>
	</property>
</configuration>
EOF

4)slaves

cat <<EOF > /home/ha/hadoop-2.6.5/etc/hadoop/slaves
node3
node4
node5
EOF

5)依次验证3个文件,很重要!!!
cat /home/ha/hadoop-2.6.5/etc/hadoop/core-site.xml
cat /home/ha/hadoop-2.6.5/etc/hadoop/hdfs-site.xml
cat /home/ha/hadoop-2.6.5/etc/hadoop/slaves

初始化

// 1.防火墙要关闭,不启用
systemctl status firewalld
// 2.----------5台: 切换用户、启动zookeeper、journalnode------------------主要是让zookeeper.out放到这里
su app
cd /home/ha/zookeeper-3.4.14/bin/
/home/ha/zookeeper-3.4.14/bin/zkServer.sh start
cd /home/ha/hadoop-2.6.5/
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh start journalnode

/home/ha/zookeeper-3.4.14/bin/zkServer.sh status

// 3.----------node1:
cd /home/ha/hadoop-2.6.5
./bin/hdfs namenode -format
./bin/hdfs zkfc -formatZK
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh start namenode

// 4.----------node2:
cd /home/ha/hadoop-2.6.5
./bin/hdfs namenode -bootstrapStandby
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh start namenode

// 5.检查http://192.168.10.129:50070/、http://192.168.10.128:50070/都是standby状态

// 6.node1和node2启动zkfc,哪个先启动,哪个就是active
cd /home/ha/hadoop-2.6.5/
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh start zkfc

// 7.node3-5 3台启动datanode就完成了
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh start datanode

// 8.50070上看到datanode正常注册了,再随便一台机器验证
hadoop fs -mkdir /test-data1
hadoop fs -put ./word.txt /test-data1
在master的50070界面可以搜索到上面文件了

将namenode active的那台机器reboot,验证active可以切换到另一台就ok了

su ha
cd /home/ha/zookeeper-3.4.14/bin/
/home/ha/zookeeper-3.4.14/bin/zkServer.sh start
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh start namenode
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh start journalnode
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh start zkfc
jps

到这里就安装完成了!!!

注意

关闭

/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh stop namenode
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh stop datanode
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh stop journalnode
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh stop zkfc
/home/ha/zookeeper-3.4.14/bin/zkServer.sh stop

启动

// 1.all
cd /home/ha/zookeeper-3.4.14/bin/
/home/ha/zookeeper-3.4.14/bin/zkServer.sh start
/home/ha/zookeeper-3.4.14/bin/zkServer.sh status

// 2.node1及node2:
cd /home/ha/hadoop-2.6.5
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh start namenode

// 3.node3、node4、node5
cd /home/ha/hadoop-2.6.5/
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh start datanode

// 4.all
cd /home/ha/hadoop-2.6.5
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh start journalnode

// 5.node1及node2
cd /home/ha/hadoop-2.6.5
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh start zkfc


删除

若hadoop的初始化不能一次性完成,删除相关文件后,再进行

/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh stop namenode
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh stop datanode
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh stop journalnode
/home/ha/hadoop-2.6.5/sbin/hadoop-daemon.sh stop zkfc
/home/ha/zookeeper-3.4.14/bin/zkServer.sh stop


rm -rf /home/ha/zookeeper-3.4.14/data/version-2
rm -rf /home/ha/zookeeper-3.4.14/logs/*
rm -rf /home/ha/hadoop-2.6.5/data/*
rm -rf /home/ha/hadoop-2.6.5/name/*
rm -rf /home/ha/hadoop-2.6.5/journal/*
rm -rf /home/ha/hadoop-2.6.5/logs/*
rm -rf /home/ha/hadoop-2.6.5/tmp/*
rm -rf /home/ha/zookeeper.out

其他

1.hadoop可以注册环境遍历;
2.hadoop开启免密后,start-dfs.sh直接启动,关闭类似;
3.可以制作自启动脚本;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值