hadoop部署记录2--正式部署

345 阅读1分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情

11. 安装zookeeper

ansible-playbook -i ../hadoop_list 06_install_zookeeper.yml -f 1

vi /home/hadoop/apps/zookeeper/conf/zoo.cfg
tickTime=2000 
# 心跳时间,2000ms
dataDir=/home/hadoop/data/zookeeper
# 数据存放目录,需要在该目录创建一个myid文件,并标识序号:1/2/3….

clientPort=2181
# 监听端口,等待客户端连接
initLimit=5
# 启动过程follower连接leader的超时时间(initlimit * ticktime)

syncLimit=5
# follower和leader之前请求和应答的超时时间。

server.1=hadoopHD011:2888:3888
server.2=hadoopHD012:2888:3888
server.3=hadoopHD013:2888:3888
server.3=hadoopHD014:2888:3888
server.3=hadoopHD015:2888:3888



# server.1 中的1 为上面myid文件里面填写的标识序号
# 2888端口为集群内数据通讯使用
# 3888端口为内部选举通讯使用

# 设置每2小时全量快照保存,总共保留20个快照
autopurge.purgeInterval=2
autopurge.snapRetainCount=20

创建zk 控制文件,和zk的leader选举有关的,每个zk主机都要配置,且

echo "15" >/home/hadoop/data/zookeeper/myid

12. 安装hadoop

配置hdfs(联邦高可用配置) 解压hdfs

> $ cat  07_install_hadoop.yml 
---
- hosts: ZHHADOOP 
  tasks:
   - name: unarchive zk 
     unarchive: src=/home/bilxf/senmao/user/hadoop-2.10.1.tar.gz dest=/home/hadoop/apps/
   
   - name: Link zk
     file: src=/home/hadoop/apps/hadoop-2.10.1 dest=/home/hadoop/apps/hadoop state=link


配置hadoop-env.sh
配置hdfs-site.xml
配置core-site.xml 按照现生产配置 只修改了主机名 
配置hosts.cfg 、exclude.cfg   将06 07 主机排除 这两台主机将作为presto 的master
配置slaves (datanode 的主机名)

启动zk

忘记互信了

追加互信

一会写一个panlbook

ssh-keygen -t rsa  #三次回车,创建出公钥和密钥

互信这块忘记了,主要就是把主节点的互信分发到所有的主机,要保证互信目录下文件的权限一致,否则不能成功互信,只要把一个主机的互信分发,所有的主机就都可以互信了,不需要把所有的主机都单独做互信,那样太麻烦了

13 初始化hdfs sys1

初始化命令如下 初始化失败

bin/hdfs namenode -format 

清理jn缓存 后重新初始化

ansible -i ~/ansible/hadoop_list ZHZK   -m shell -a "rm -rf /home/hadoop/data/journalnode/sys1/* "
rm -rf /data/hadoop/name/current 

发现依旧不能初始化成功

21/04/06 21:47:25 ERROR net.ScriptBasedMapping: Script /home/hadoop/apps/hadoop/etc/hadoop/RackAware.py returned 2 values when 123 were expected.

查资料修改

        <!-- 指定机架感知脚本 -->
        <property>
            <name>topology.script.file.name</name>
            <value>/home/hadoop/apps/hadoop/etc/hadoop/RackAware.py</value>
        </property> 
        <property>
            <name>topology.script.number.args</name>
            <value>1</value>
        </property>

后发现生产上除了syshd005 syshdd006 没有配置联邦其他主机均配置了联邦,也由于原来配置是按照005修改的,发现配置不同后修改主机配置仿照生产只留下syshd005,006主机是====hdfs==== 其他主机都采用==联邦viewfs== 所以只能在005006 查看机架感知情况 以下是查看命令

hdfs  dfsadmin  -printTopology #查寻hadoop机架信息命令

删除历史数据

rm -rf /data/hadoop/name/current
ansible -i ~/ansible/hadoop_list ZHZK   -m shell -a "rm -rf /home/hadoop/data/journalnode/sys1/* "

初始化命令如下 指定了clusterID

001#  bin/hdfs namenode -format  -clusterId hadoop-cluster

启动初始化的主机的 namenode 在其他从节点同步

sbin/hadoop-daemon.sh start  namenode 


bin/hdfs namenode -bootstrapStandby  #其他节点执行:nn2同步nn1的元数据信息

选择sys1的nn1作为主节点,切换命令

./bin/hdfs haadmin -ns sys1  -transitionToActive nn1 --forcemanual

14 初始化hdfs sys2

在hadoophd003 hadoophd004重复

15 启动datanode

[hadoop@hadoopHD001 hadoop]$ sbin/hadoop-daemon.sh start  namenode

16 初始化zk 启动zkfc

在hadoophd001 003 执行以下命令

 bin/hdfs zkfc -formatZK

每个namenode执行以下命令

sbin/hadoop-daemon.sh start zkfc

查看namenode状态

[hadoop@hadoopHD001 hadoop]$  bin/hdfs haadmin -ns sys1 -getServiceState nn1
standby
[hadoop@hadoopHD001 hadoop]$  bin/hdfs haadmin -ns sys1 -getServiceState nn2
active

查看存活的datanode

./bin/hdfs dfsadmin -fs hdfs://hadoophd001:9000 -report

17 测试是否安装成功

put 一个文件上去

查看基本mapreduce 能否执行