HDFS 集群搭建 -->1

分享 123456789987654321 ⋅ 于 2021-06-14 22:05:45 ⋅ 1709 阅读

hdfs (对应腾讯课堂视频15) hadoop安装

#rz
-rw-r--r-- 1 hadoop hadoop 197966159 6月  14 2019 hadoop-2.7.3.tar.gz
-rw-r--r-- 1 hadoop hadoop     27279 7月   9 2020 hadoop.zip
#分发
[hadoop@nn1 hadoop_base_op]$ sh scp_all.sh /tmp/upload/hadoop-2.7.3.tar.gz /tmp 
#解压
[hadoop@nn1 hadoop_base_op]$ sh ssh_root.sh tar -zxf /tmp/hadoop-2.7.3.tar.gz -C /usr/local/
#权限
[hadoop@nn1 hadoop_base_op]$ sh ssh_root.sh chown -R hadoop:hadoop /usr/local/hadoop-2.7.3/
#软连接
[hadoop@nn1 hadoop_base_op]$ sh ssh_root.sh ln -s /usr/local/hadoop-2.7.3/ /usr/local/hadoop
#770
[hadoop@nn1 hadoop_base_op]$ sh ssh_root.sh chmod -R 770 /usr/local/hadoop-2.7.3/
#归属用户hadoop
[hadoop@nn1 hadoop_base_op]$ sh ssh_root.sh chown -h hadoop:hadoop /usr/local/hadoop
#检查本地库支持情况
[hadoop@s3 ~]$ hadoop checknative

hdfs启动完整流程

#要上传hhdoop文件和hadoop配置文件,解压好hadoop以后,把配置文件替换

#分发配置文件
[hadoop@nn1 hadoop_base_op]$ sh scp_all.sh /tmp/upload/hadoop.zip /tmp
#删除原有的配置文件 删除这个文件夹
[hadoop@nn1 hadoop_base_op]$ sh ssh_all.sh rm -rf /usr/local/hadoop/etc/hadoop
#解压
[hadoop@nn1 hadoop_base_op]$ sh ssh_all.sh unzip -d /usr/local/hadoop/etc/ /tmp/hadoop.zip 
#修改文件夹权限
[hadoop@nn1 hadoop_base_op]$ sh ssh_all.sh chmod -R 770 /usr/local/hadoop/etc/hadoop/

hadoop配置文件说明

//slaves 搭建集群这里需要修改
s1 s2 s3 三台机器名称
//core-site.xml
基本配置
//hadoop-env.sh 
环境变量
//httpfs-site.xml
配置是否支持数据块追加

初始化分布式文件系统HDFS

**1)启动 zookeeper** 
**2)启动 journalnode**
**3)启动zookeeper客户端,初始化HA的zookeeper信息**
**4)对nn1上的namenode进行格式化**
**5)启动nn1上的namenode**
**6)在nn2上 同步namenode**
**7)启动nn2上的namenode**
**8)启动ZKFC**
**9)启动datanode**

1.启动zookeeper

#查看zookeeper运行的状态
./ssh_all.sh /usr/local/zookeeper/bin/zkServer.sh status
#启动zookeeper
./ssh_all.sh /usr/local/zookeeper/bin/zkServer.sh start

2.启动jounalnode(同步两台namenode数据)

namenode: 
    fsimage :已经记录完成的元数据
    edit_log:新写入
journalnode:    同步两台namenode数据

#启动
[hadoop@nn1 ~]$ sh hadoop-daemon.sh start journalnode
[hadoop@nn2 ~]$ sh hadoop-daemon.sh start journalnode
#初始化HA的zookeeper信息(第一次启动操作,以后不需要操作)
[hadoop@nn1 ~]$ hdfs zkfc -formatZK
#链接zookeeper
[hadoop@nn1 ~]$ zkCli.sh -server nn1.hadoop
#查看状态
[zk: nn1.hadoop(CONNECTED) 0] ls /
[zookeeper, hadoop-ha]
[zk: nn1.hadoop(CONNECTED) 2] ls /hadoop-ha 
[zk: nn1.hadoop(CONNECTED) 7] quit
#格式化 #完成对fsimage的记录
#对nn1上的namenode进行格式化 (第一次启动前执行,以后不用每次启动都执行)
#初始化一些目录和文件。 #在nn1上执行   这个只在nn1上执行
[hadoop@nn1 ~]$ hadoop namenode -format #不要执行多了
[hadoop@nn1 current]$ cd /data/dfsname/current/ #格式化的这个目录
#启动nn1的namenode
[hadoop@nn1 ~]$ hadoop-daemon.sh start namenode
#观察nn1日志
vim /usr/local/hadoop/logs/hadoop-hadoop-namenode-nn1.hadoop.log

#第二个namenode同步第一个namenode状态(第一次启动前执行,以后不用每次都执行)
#在 nn2.hadoop 上运行
[hadoop@nn2 ~]$ hadoop namenode -bootstrapStandby 

#nn2 跟随nn1的namenode
[hadoop@nn2 ~]$ hadoop-daemon.sh start namenode

#切换本地host 运行nn1.hadoop:50070  nn2.hadoop:50070即可访问

3.启动zkfc

两台namenode与zookeeper 保持链接用的一个进程
在那台机器起来的,那天机器就是active
#启动nn1的zkfc
[hadoop@nn1 ~]$ hadoop-daemon.sh start zkfc  
#查看状态
[hadoop@nn1 ~]$ zkCli.sh -server nn1.hadoop
[zk: nn1.hadoop(CONNECTED) 0] ls /hadoop-ha/ns1 
[ActiveBreadCrumb, ActiveStandbyElectorLock]
#启动nn2的zkfc
[hadoop@nn2 ~]$ hadoop-daemon.sh start zkfc  

#关闭zkfc命令(让nn1作为active节点)
hadoop-daemon.sh stop zkfc  

采坑

1.#######格式化[hadoop@nn1 ~]$ hadoop namenode -format 不能再两台机器执行

..#####主机的host要和linux的host匹配,否则映射不到
/etc/hosts

#本地大数据集群
192.168.92.30 nn1.hadoop
192.168.92.31 nn2.hadoop
192.168.92.32 s1.hadoop
192.168.92.33 s2.hadoop
192.168.92.34 s3.hadoop

# --------------------------------------------------
# 海牛集群
# 192.168.1.100 hadoop100
# 192.168.1.101 hadoop101
# 192.168.1.102 hadoop102
# 192.168.1.103 hadoop103
# 192.168.1.104 hadoop104
# 192.168.1.105 hadoop105
# 192.168.1.106 hadoop106
# 192.168.1.107 hadoop107
# 192.168.1.108 hadoop108

3.##########多次格式化namenode会导致datanode不出现
[hadoop@nn1 current]$ cd /data/dfsname/current
 #把nn1上的集群id考别到s1-s3上面的clusid就可以了

启动DataNode

#查看哪台为active节点 查看日志
### 在标记为active的namenode节点上执行

#在web页面查看active节点   Overview 'nn1.hadoop:9000' (active)

#在标记为active的namenode节点上执行
[hadoop@nn1 ~]$ hadoop-daemons.sh start datanode

启动hdfs

#启动分布式文件系统HDFS
start-dfs.sh
#关闭hdfs
stop-dfs.sh

安装fuser

######在nn1和nn2上执行

#为了namenode高可用安装的, 自动切换 
yum -y install psmisc
#为了nn1和nn2互相转换
版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海汼部落-123456789987654321,http://hainiubl.com/topics/75699
点赞
成为第一个点赞的人吧 :bowtie:
回复数量: 0
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
    Ctrl+Enter