hadoop分布式集群 、 分布式集群节点管理 、 hdfs扩展应用

一、完全分布式

1.1 系统规划

1.1.1 Hadoop 三大核心组件

– 分布式文件系统
– HDFS 已经部署完毕

– 分布式计算框架
– mapreduce

– 集群资源管理
– yarn

1.1.2 系统架构

1.2 安装部署

1.2.1 mapred配置

1. 分布式计算框架 mapred-site.xml
– 改名
~] # mv mapred-site.xml.template   mapred-site.xml

2. 分布式计算框架 mapred-site.xml
– 只支持 local 和 yarn 两种
– 单机使用 local
– 集群使用 yarn

3. mapred-site.xml 配置
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

1.2.2 yarn配置

1. 资源管理 yarn-site.xml
– resourcemanager 地址
– yarn.resourcemanager.hostname

– nodemanager 使用哪个计算框架
– yarn.nodemanager.aux-services
– mapreduce_shuffle 是我们使用计算框架的名称

2. yarn-site.xml 配置

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>nn01</value>                                          //指定resourcemanager的主机名
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>                     //指定使用的计算机框架名称
    </property>
</configuration>

1.2.3 同步配置并启动服务

ALL: 同步配置到主机
NN1: 启动服务 ./sbin/start-yarn.sh     //启动服务
ALL: 验证角色 jps
NN1: 验证节点状态 ./bin/yarn node -list     //验证服务

1.2.4 web访问hadoop

1. namenode web 地址                      【nn01】

http://192.168.1.10:50070
2.sedondary namenode web 地址     【nn01】

地址 http://192.168.1.10:50090
3.yarn resourcemanager 管理地址   【node1,node2,node3】

http://192.168.1.10:8088
4.datanode web 地址          【nn01】

http://192.168.1.11:50075
5.nodemanager web 地址   【node1,node2,node3】

http://192.168.1.11:8042

二、HDFS 基本使用

2.1 HDFS 基本命令

– ./bin/hadoop fs –ls /              //列出集群/下的所有文件
– 对应 shell 命令 ls /

– ./bin/hadoop fs –mkdir /abc   //创建/abc文件夹
– 对应 shell 命令 mkdir /abc

– ./bin/hadoop fs –rmdir /abc    //删除/abc文件夹
– 对应 shell 命令 rmdir /abc

– ./bin/hadoop fs –touchz /urfile   //新建/urfile文件
– 对应 shell 命令 touch /urfile

– ./bin/hadoop fs –cat /urfile         //查看/urfile文件 
– 对应 shell 命令 cat /urfile

– ./bin/hadoop fs –rm /urfile           //删除/urfile文件
– 对应 shell 命令 rm /urfile

– 上传文件
– ./bin/hadoop fs –put localfile /remotefile
– 下载文件
– ./bin/hadoop fs –get /remotefile

2.2 hadoop词频统计

2.2.1 需求

统计多个文件出现次数最多的单词

2.2.2 实现思路

1. 在集群文件系统里创建文件夹
2. 上传要分析的文件到目录中
3.  分析上传文件
4.  展示结果

1.  创建文件夹
hadoop ] #  ./bin/hadoop fs -mkdir /input
2. 上传要分析的文件
adoop ] #  ./bin/hadoop fs -put *.txt /input

3. 提交分析作业
adoop ] #  ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input  /output

4. 查看结果
adoop ] #   ./bin/hadoop fs –cat output/*

三、节点管理

3.1 hdfs节点管理

3.1.1 增加节点

1、启动一个新的系统,禁用 selinux、禁用 firewalld

~]# sestatus

 ~]# rpm -qa | grep firewalld
2、设置 ssh 免密码登录  【nn01能实现免密登录】

[root@nn01 bin]# ssh-copy-id 192.168.5.14

3、在所有节点增加新新节点的主机信息 /etc/hosts

]# vim /etc/hosts

......

192.168.5.14 node4

4、安装 java openjdk 运行环境

~ ] # yum -y install java-1.8.0-openjdk-devel

5、修改namenode的slaves文件增加该节点

nn01 ~]# vim slaves

node1

....

node4

6、拷贝namnode的 /usr/local/hadoop 到本机

nn01 ~]# scp -r /usr/local/hadoop/ node4:/usr/local/

7、同步配置到所有主机

nn01 ~]# vim rsyncConfig.sh

#!/bin/bash
function syncfile(){
    for host in $@;do
        rsync -az --delete /usr/local/hadoop/etc ${host}:/usr/local/hadoop/  &
        rsync /etc/hosts ${host}:/etc/hosts
    done
    wait
}

if (( $# > 0 ));then
   syncfile $@
else
   echo "${0} host1 host2 host3 ... ... host(N)"
fi

nn01 ~]# ./rsyncConfig.sh node{1..3} nn02    

8、在该节点启动Datanode
node4 ~]#./sbin/hadoop-daemon.sh start datanode

9、设置同步带宽,并同步数据
node4 ~]# ./bin/hdfs dfsadmin -setBalancerBandwidth 67108864  //设置67*8=530M带宽
node4 ~]# ./sbin/start-balancer.sh

10、查看集群状态
node4 ~]# ./bin/hdfs dfsadmin -report

3.1.2 修复节点

HDFS 修复节点
1. 修复节点比较简单,与增加节点基本一致
2. 需要注意新节点的 ip 与 主机名 要与损坏节点一致
3. 启动服务
./sbin/hadoop-daemon.sh start datanode
– 数据恢复是自动的
– 我们上线以后会自动恢复数据,如果数据量非常巨大,可能需要一定的时间

3.1.3 删除节点

HDFS 删除节点
1. 配置NameNode的 hdfs-site.xml
2. 增加 dfs.hosts.exclude 配置
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/local/hadoop/etc/hadoop/exclude</value>
</property
3. 增加 exclude 配置文件,写入要删除的节点 主机名
4. 更新数据
./bin/hdfs dfsadmin -refreshNodes

5. 查看状态 ./bin/hdfs dfsadmin -report
 Normal 正常状态
 Decommissioned in Program 数据正在迁移
 Decommissioned 数据迁移完成
 注意:只有当状态变成 Decommissioned 才能 down机下线

3.2 yarn节点管理

Yarn 的相关操作
– 由于在 2.x hadoop 引入了 yarn 框架,对于计算节点的操作已经变得非常简单
1.增加节点
hadoop ] # sbin/yarn-daemon.sh start nodemanager
2. 删除节点
hadoop ] # sbin/yarn-daemon.sh stop nodemanager
3. 查看节点 (Resourcemanager)
hadoop ] # ./bin/yarn node -list

注意:由于 yarn 不包含数据,所以在增加删除修复节点的时候比较简单,hdfs 要注意数据安全。

四、NFS网关

作用:不需要通过hdfs提供的命令  (./bin/hadoop fs –ls / )访问集群,NFS网关可以把HDFS文件系统挂载到本地,对挂载点的操作就是对HDFS文件系统的操作

4.1 配置 NFS 网关

4.1.1 HDFS配置

1 配置 /etc/hosts (NFSGW)
192.168.1.10    nn01
192.168.1.11    node1
192.168.1.12    node2
192.168.1.13    node3
192.168.1.15    nfsgw

2 添加用户(nfsgw, nn01)
groupadd -g 500 lijun
useradd -u 500 -g 500 lijun

3. NN01 停止集群
./sbin/stop-all.sh4. NN01 增加配置 core-site.xml

<property>
        <name>hadoop.proxyuser.nsd1804.groups</name>   //groups 为挂载点用户所使用的组
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.nsd1804.hosts</name>    //hosts 为挂载点主机地址
        <value>*</value>
</property>

5. NN01 同步配置到 node1 node2 node3

~ ] # ./rsyncConfig.sh node{1..3}

6. NN01 启动集群  

~ ] #./sbin/start-dfs.sh
7. NN01查看状态
./bin/hdfs dfsadmin -report

4.1.2 NFSGW配置

1. NFSGW: 安装 java-1.8.0-openjdk-devel

~ ] # yum -y install java-1.8.0-openjdk-devel

2. NFSGW: 同步 nn01 的 /usr/local/hadoop 到NFSGW的相同目录下

nn01 ~ ] # scp nn01:/usr/local/hadoop nfsgw:/usr/local
3. NFSGW: hdfs-site.xml 增加配置

<property>
     <name>nfs.exports.allowed.hosts</name>   //设置客户端挂载为读写权限
     <value>* rw</value>
</property>
<property>
    <name>nfs.dump.dir</name>                     //设置文件转存目录
    <value>/var/nfstmp</value>
</property>

4. NFSGW: 创建转储目录,并给用户 lijun 赋权
mkdir /var/nfstmp
chown lijun:lijun /var/nfstmp

5. NFSGW: 给 /usr/local/hadoop/logs 赋权
setfacl -m u:lijun:rwx

6. NFSGW: 创建数据根目录 /var/hadoop

mkdir /var/hadoop

7. NFSGW: 必须用 root 启动,必须先启动 !!!
./sbin/hadoop-daemon.sh --script ./bin/hdfs start portmap

8. NFSGW: 必须用代理用户lijun启动,必须后启动 !!!

~ ] # su - lijun

~ ] # ./sbin/hadoop-daemon.sh --script ./bin/hdfs start nfs3

4.1.3 客户端验证

1.Client: 安装 nfs-utils

~] # yum -y install nfs-utils
2. mount 挂载NFS共享目录
~] # mount -t nfs -o vers=3,proto=tcp,nolock,noatime,sync,noacl 192.168.1.15:/  /mnt/

3.查看注册服务
rpcinfo -p 192.168.1.15
4.查看共享目录
showmount -e 192.168.1.15

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值