Linux 大数据 HADOOP 02 --02


++++++++++++++++ | HDFS 基 本 使 用 | +++++++++++++++++++++
++++++++++++++++ | HDFS 基 本 使 用 | +++++++++++++++++++++

HDFS 使用   与shell 相似 只是没有shell参数多
• HDFS 基本命令
– ./bin/hadoop fs –ls /
– 对应 shell 命令 ls /
– ./bin/hadoop fs –mkdir /abc
– 对应 shell 命令 mkdir /abc
– ./bin/hadoop fs –rmdir /abc
– 对应 shell 命令 rmdir /abcHDFS 使用

• HDFS 基本命令
– ./bin/hadoop fs –touchz /urfile
– 对应 shell 命令 touch /urfile
– ./bin/hadoop fs –cat /urfile
– 对应 shell 命令 cat /urfile
– ./bin/hadoop fs –rm /urfile
– 对应 shell 命令 rm /urfileHDFS 使用

• HDFS 基本命令
– 上传文件
– ./bin/hadoop fs –put localfile /remotefile
– 下载文件
– ./bin/hadoop fs –get /remotefile

----------------------------------------------------------------------------
hadoop词频统计
• 1、在集群文件系统里创建文件夹
• 2、上传要分析的文件到目录中
• 3、分析上传文件
• 4、展示结果

Hadoop 验证
• 创建文件夹
– ./bin/hadoop fs -mkdir /input
• 上传要分析的文件
– ./bin/hadoop fs -put *.txt /input

Hadoop 验证
• 提交分析作业
– ./bin/hadoop
jar ./share/hadoop/mapreduce/hadoop-
mapreduce-examples-2.7.3.jar wordcount /input
/output
• 查看结果
– ./bin/hadoop fs –cat output/*

示例演示::——————>>
[root@nn01 hadoop]# ./bin/hadoop fs -mkdir /oo

[root@nn01 hadoop]# ./bin/hadoop fs -put *.txt /oo/
[root@nn01 hadoop]# 
[root@nn01 hadoop]# ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /oo /xx

查看结果!!
[root@nn01 hadoop]# ./bin/hadoop fs -cat /xx/*

----------------------------------------------------------------------------------------

++++++++++++| 节点管理|++++++++++++++++
++++++++++++| 节点管理|++++++++++++++++
HDFS节点管理              yarn节点管理
-------------------------------------------
HDFS节点管理    
Hadoop 节点管理
【 1 】• HDFS 增加节点
– 1、启劢一个新的系统,禁用 selinux、禁用 firewalld
– 2、设置 ssh 免密码登录
– 3、在所有节点增加新新节点的主机信息 /etc/hosts
– 4、安装 java openjdk 运行环境
– 5、拷贝namnode的 /usr/local/hadoop 到本机
– 6、修改namenode的slaves文件增加该节点
– 7、在该节点启劢Datanode
./sbin/hadoop-daemon.sh start datanode


实验环境::——————>>
新建一台虚拟机node4
确保nn01能免密钥连接node4
[root@nn01 ~]# cd /root/.ssh/
[root@nn01 .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts
[root@nn01 .ssh]# ssh-copy-id -i id_rsa.pub 192.168.1.14
[root@nn01 .ssh]# vim /etc/hosts
192.168.1.10 nn01
192.168.1.14 newnode
192.168.1.11 node1
192.168.1.12 node2
192.168.1.13 node3

[root@node4 ~]# yum -y install rsync  确保node4安装了rsync  方便同步数据

  //然后把nn01的hosts 同步给node1 2 3 newnode
[root@nn01 ~]# for i in node{1..3} newnode;do rsync -av /etc/hosts ${i}:/etc/; done

[root@nn01 ~]# ssh newnode            ##连接新系统node4
[root@node5 ~]# hostname  newnode        ##// 更改主机名
[root@node5 ~]# logout
Connection to newnode closed.
[root@nn01 ~]# ssh newnode

##安装java环境
[root@newnode ~]# yum install -y java-1.8.0-openjdk-devel

在nn01添加slaves 
[root@nn01 ~]# cd /usr/local/hadoop/
[root@nn01 hadoop]# ls
bin  etc  include  lib  libexec  LICENSE.txt  logs  NOTICE.txt  README.txt  sbin  share
[root@nn01 hadoop]# vim etc/hadoop/slaves 
[root@nn01 hadoop]# cat etc/hadoop/slaves
node1
node2
node3
newnode

hadoop同步到其他主机
[root@nn01 ~]# for i in node{1..3};do rsync -aSH --delete /usr/local/hadoop ${i}:/usr/local/ -e 'ssh' & done
[1] 3308
[2] 3309
[3] 3310
或者用脚本::
[root@nn01 hadoop]# rrr node{1..3}          ##昨天写好的脚本!


[root@nn01 hadoop]# ssh newnode
Last login: Fri Aug  3 10:33:40 2018 from 192.168.1.254
[root@newnode ~]# cd /usr/local/
[root@newnode local]# ls
bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@newnode local]# 

把nn01上/usr/local/hadoop 拷贝道自己的目录下
[root@newnode local]# rsync -a nn01:/usr/local/hadoop /usr/local/

[root@newnode local]# ls        ##查看一下
[root@newnode local]# cd hadoop/
[root@newnode hadoop]# ls
bin  etc  include  lib  libexec  LICENSE.txt  logs  NOTICE.txt  README.txt  sbin  share
[root@newnode hadoop]# rm -rf logs        //# 删除logs 因为这个logs是nn01上的 防止冲突  删除之后它会自动再创建
[root@newnode hadoop]# 
[root@newnode hadoop]# ls
[root@newnode hadoop]# mkdir /var/hadoop         (创建hadoop)  ##现在节点创建好了
[root@newnode hadoop]# 

[root@newnode hadoop]# jps       ##看一下自己的角色,没有角色
1224 Jps

[root@newnode hadoop]# ./sbin/hadoop-daemon.sh      // 启动角色(这个命令的作用是 单独启动一个角色的命令)
[root@newnode hadoop]# ./sbin/hadoop-daemon.sh start datanode   ##启用datanode角色!!
[root@newnode hadoop]# jps    ##角色起来了,
1264 DataNode
1338 Jps

##角色起来了,那么与集群是否连接成功呢
[root@newnode hadoop]# logout  回到nn01 上
[root@nn01 hadoop]# ./bin/hdfs dfsadmin -report     ## newnode加入进来了
[root@nn01 hadoop]# ./bin/hdfs dfsadmin -report
Configured Capacity: 85853126656 (79.96 GB)
Present Capacity: 79092408320 (73.66 GB)
DFS Remaining: 79092379648 (73.66 GB)
DFS Used: 28672 (28 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0

-------------------------------------------------
Live datanodes (4):

Name: 192.168.1.12:50010 (node2)
Hostname: node2
Decommission Status : Normal
Configured Capacity: 21463281664 (19.99 GB)
DFS Used: 8192 (8 KB)
Non DFS Used: 1690165248 (1.57 GB)
DFS Remaining: 19773108224 (18.42 GB)
DFS Used%: 0.00%
DFS Remaining%: 92.13%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Wed Aug 08 16:05:29 CST 2018


Name: 192.168.1.11:50010 (node1)
Hostname: node1
Decommission Status : Normal
Configured Capacity: 21463281664 (19.99 GB)
DFS Used: 8192 (8 KB)
Non DFS Used: 1690370048 (1.57 GB)
DFS Remaining: 19772903424 (18.41 GB)
DFS Used%: 0.00%
DFS Remaining%: 92.12%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Wed Aug 08 16:05:29 CST 2018


Name: 192.168.1.13:50010 (node3)
Hostname: node3
Decommission Status : Normal
Configured Capacity: 21463281664 (19.99 GB)
DFS Used: 8192 (8 KB)
Non DFS Used: 1690206208 (1.57 GB)
DFS Remaining: 19773067264 (18.42 GB)
DFS Used%: 0.00%
DFS Remaining%: 92.13%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Wed Aug 08 16:05:28 CST 2018


Name: 192.168.1.14:50010 (newnode)            ## 新加入的节点!!newnode
Hostname: newnode
Decommission Status : Normal
Configured Capacity: 21463281664 (19.99 GB)
DFS Used: 4096 (4 KB)
Non DFS Used: 1689976832 (1.57 GB)
DFS Remaining: 19773300736 (18.42 GB)
DFS Used%: 0.00%
DFS Remaining%: 92.13%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Wed Aug 08 16:05:31 CST 2018

[root@nn01 hadoop]# 

+++++++++++++++++---------------------------
【 2 】 设置同步带宽,并同步数据
Hadoop节点管理
• HDFS 节点管理
– 增加节点 续 ... ...
– 8、设置同步带宽,并同步数据
./bin/hdfs dfsadmin -setBalancerBandwidth 67108864
./sbin/start-balancer.sh
– 9、查看集群状态
./bin/hdfs dfsadmin -report


[root@nn01 hadoop]# pwd
/usr/local/hadoop
[root@nn01 hadoop]# ./bin/hdfs dfsadmin   ##如果同步带宽的命令记不住,就输入此命令 回车

[root@nn01 hadoop]# ./bin/hdfs dfsadmin -setBalancerBandwidth 60000000

[root@nn01 hadoop]# ./sbin/start-balancer.sh    ##同步

+++++++++++++++++++++++++-----------------------------------

Hadoop节点管理
【 3 】• HDFS 修复节点
– 修复节点比较简单,不增加节点基本一致
– 需要注意新节点的 ip 不 主机名 要不损坏节点一致  !!!!!
– 启劢服务
./sbin/hadoop-daemon.sh start datanode
– 数据恢复是自劢的
– 我们上线以后会自劢恢复数据,如果数据量非常巨大,
可能需要一定的时间
(一定要等到数据同步完了,才能修复节点 上线等时间,下线等时间,导入也要等时间,)
++++++++++++++++++++++++++++++++++++++++++++++++++

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

------------------
Hadoop 节点管理
• HDFS 删除节点状态
– 查看状态 ./bin/hdfs dfsadmin -report
– Normal 正常状态
– Decommissioned in Program 数据正在迁移
– Decommissioned 数据迁移完成
– 注意:只有当状态变成 Decommissioned 才能 down
机下线
-------------

删除节点遵循两个原则
1,无数据删除, 2,必须查看状态
-----
++==## 删除节点分两个过程:
1,配置要删除的节点有哪些;增加 dfs.hosts.exclude 配置
2,– 增加 exclude 配置文件,写入要删除的节点 主机名
– 更新数据
做完这两步之后等 等时间,等数据迁移完成! 然后才能 删除!(如果数据量很大,有的甚至要等一周 两周...)
--------------
导个数据,方便看状态!
[root@nn01 ~]# lftp 192.168.1.254
lftp 192.168.1.254:/> cd public/
lftp 192.168.1.254:/public> ls
lftp 192.168.1.254:/public> get CentOS-7-x86_64-DVD-1708.iso 
lftp 192.168.1.254:/public> exit
[root@nn01 ~]# ls
[root@nn01 ~]# mv CentOS-7-x86_64-DVD-1708.iso centos.iso

[root@nn01 ~]# cd /usr/local/hadoop/
[root@nn01 hadoop]# ./bin/hdfs dfsadmin -report
[root@nn01 hadoop]# ./bin/hdfs dfsadmin -report |grep -P -A 14 "newnode" #只看newnode 后面14行
Name: 192.168.1.15:50010 (newnode)
Hostname: newnode
Decommission Status : Normal  //状态

[root@nn01 hadoop]# vim etc/hadoop/hdfs-site.xml   //删除节点
<configuration>
............
    <property>                        ## 这组配置的 意思是删除这组主机,要删除的组机写在这个文件
        <name>dfs.hosts.exclude</name>
        <value>/usr/local/hadoop/etc/hadoop/exclude</value>
    </property>
</configuration>

[root@nn01 hadoop]# touch /usr/local/hadoop/etc/hadoop/exclude  ##创建这个文件 
[root@nn01 hadoop]# vim /usr/local/hadoop/etc/hadoop/exclude   ## 在这个文件里面添加要删除的节点名称
newnode
[root@nn01 hadoop]# ./bin/hdfs dfsadmin -report  #查看节点状态  此时还是 Normal   正常状态

[root@nn01 hadoop]# ./bin/hdfs dfsadmin -refreshNodes  ##开始导出数据,数据会被迁移到其它主机上
[root@nn01 hadoop]# ./bin/hdfs dfsadmin -refreshNodes
Refresh nodes successful
[root@nn01 hadoop]# ./bin/hdfs dfsadmin -report |grep -P -A 14 "newnode"
Name: 192.168.1.15:50010 (newnode)
Hostname: newnode
Decommission Status : Decommission in progress            ###数据正在迁移 看newnode状态,这个状态是它的数据在分配到其它机器上 这时候这台主机是不能 下线的  这时候就是等等! 

[root@nn01 hadoop]# ./bin/hdfs dfsadmin -report
.............
Decommission Status : Decommissioned            #数据迁移完成
删除节点(下线节点)
[root@nn01 hadoop]# ssh newnode
[root@newnode ~]# cd /usr/local/hadoop/
[root@newnode hadoop]# ls
[root@newnode hadoop]# ./sbin/hadoop-daemon.sh stop datanode    ##下线完成了!!!
stopping datanode
[root@newnode hadoop]#
==============================================
-
+++++++++++++++| yarn节点管理 |+++++++++++++++
+++++++++++++++| yarn节点管理 |+++++++++++++++

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

Hadoop节点管理
• yarn 的系统环境配置不 hdfs 的基础环境配置是相同
的,这里就丌重复列出了
• 由于 yarn 不包含数据,所以在增加删除修复节点的
时候比较简单,hdfs 要注意数据安全

实验演示::------>>>
增加节点
[root@nn01 hadoop]# pwd
/usr/local/hadoop
[root@nn01 hadoop]# ./bin/yarn node -list
18/08/03 15:04:01 INFO client.RMProxy: Connecting to ResourceManager at nn01/192.168.1.10:8032
Total Nodes:3
         Node-Id         Node-State    Node-Http-Address    Number-of-Running-Containers
     node3:34287            RUNNING           node3:8042                               0
     node1:39152            RUNNING           node1:8042                               0
     node2:42983            RUNNING           node2:8042                               0
[root@nn01 hadoop]# 

[root@nn01 hadoop]# ssh newnode
[root@newnode ~]# cd /usr/local//hadoop/
[root@newnode hadoop]# 
[root@newnode hadoop]# ./sbin/yarn-daemon.sh start nodemanager #启动节点
starting nodemanager, logging to /usr/local/hadoop/logs/yarn-root-nodemanager-newnode.out
[root@newnode hadoop]# 

[root@nn01 hadoop]# ./bin/yarn node -list        //## 看一下新节点出来了!
18/08/03 15:06:37 INFO client.RMProxy: Connecting to ResourceManager at nn01/192.168.1.10:8032
Total Nodes:4
         Node-Id         Node-State    Node-Http-Address    Number-of-Running-Containers
   newnode:42328            RUNNING         newnode:8042                               0
     node3:34287            RUNNING           node3:8042                               0
     node1:39152            RUNNING           node1:8042                               0
     node2:42983            RUNNING           node2:8042                               0
[root@nn01 hadoop]# 

##删除节点 
注意:确定在这个节点没有计算任务的时候(时间)
[root@newnode hadoop]# ./sbin/yarn-daemon.sh stop nodemanager
[root@nn01 hadoop]# ./bin/yarn node -list
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
————————————————————————————————————————————
++++++++++| N F S 网 关 |+++++++++++++++++++=
++++++++++| N F S 网 关 |+++++++++++++++++++=

NFS 网关
• NFS 网关用途
– 用户可以通过操作系统兼容的本地NFSv3客户端来阅
览HDFS文件系统
– 用户可以从HDFS文件系统下载文档到本地文件系统
– 用户可以通过挂载点直接流化数据。支持文件附加,
但是丌支持随机写
– NFS 网关支持NFSv3和允许HDFS 作为客户端文件系
统的一部分被挂载

NFS网关
• 配置代理用户
– 在 namenode 和 nfsgw 上添加代理用户

– 代理用户的 uid gid 用户名 必须完全相同
– 如果因特殊原因客户端的用户和NFS网关的用户 uid
不能保持一致需要我们配置 nfs.map 的静态映射关系
– nfs.map
uid 10 100 # Map the remote UID 10 the local UID 100
gid 11 101 # Map the remote GID 11 to the local GID 101

步骤++步骤++步骤++》》:::如下!!!
1# 给客户端nfsgw 配置hosts
[root@nfsgw ~]# vim /etc/hosts
192.168.1.10 nn01
192.168.1.14 newnode
192.168.1.11 node1
192.168.1.12 node2
192.168.1.13 node3
192.168.1.15 nfsgw

2# uid gid 用户名 必须完全相同
给客户端nfsgw  uid gid 用户名 必须完全相同
[root@nfsgw ~]# groupadd -g 200 nsd1803
[root@nfsgw ~]# useradd -u 200 -g 200 nsd1803
[root@nfsgw ~]# id nsd1803
uid=200(nsd1803) gid=200(nsd1803) 组=200(nsd1803)
[root@nfsgw ~]#  

 #在nn01上也配置
[root@nn01 hadoop]# groupadd -g 200 nsd1803
[root@nn01 hadoop]# useradd -u 200 -g 200 nsd1803
[root@nn01 hadoop]# id nsd1803
uid=200(nsd1803) gid=200(nsd1803) 组=200(nsd1803)

3 # • 核心配置 core-site.xml
– hadoop.proxyuser.{代理用户}.groups
– hadoop.proxyuser.{代理用户}.hosts
– 这里的 {代理用户} 是你机器上真实运行 nfs3 的用户
– 在非安全模式,运行nfs网关的用户为代理用户
– groups 为挂载点用户所使用的组
– hosts 为挂载点主机地址
 • 核心配置 core-site.xml
... ...
<property>
<name>hadoop.proxyuser.nsd1802.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.nsd1802.hosts</name>
<value>*</value>
</property>
... ...

3##  注意::在配置core-site.xml之前 先停止集群!

[root@nn01 ~]# cd /usr/local/hadoop/        ## 停止集群!
[root@nn01 hadoop]# ./sbin/stop-all.sh

4 #  配置 核心配置 core-site.xml
[root@nn01 hadoop]# ls
bin         etc      lib      LICENSE.txt  NOTICE.txt  README.txt  share
centos.iso  include  libexec  logs         oo          sbin        xx
[root@nn01 hadoop]# cd etc/hadoop/
[root@nn01 hadoop]# vim core-site.xml 
... ...
<property>
<name>hadoop.proxyuser.nsd1802.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.nsd1802.hosts</name>
<value>*</value>
</property>
... ...

[root@nn01 hadoop]# cat slaves   #查看节点是否正确,把之前配置的newnode 删除了 防止影响接下来的实验
node1
node2
node3
[root@nn01 hadoop]# >exclude   清除exclude

5## 同步到其它节点!
[root@nn01 hadoop]# rrr node{1..3}    ## 同步到其它节点上
[root@nn01 hadoop]# 

6## 启动集群!
[root@nn01 hadoop]# pwd
/usr/local/hadoop/etc/hadoop
[root@nn01 hadoop]# cd ../../
[root@nn01 hadoop]# pwd
/usr/local/hadoop
[root@nn01 hadoop]# ./sbin/start-dfs.sh
7 ## 查看一下状态!!
[root@nn01 hadoop]# ./bin/hdfs dfsadmin -report  #查看节点都正常!
此时集群部分准备工作做完了!

++++++++++++++| NFSGW配置 | ++++++++++++++
++++++++++++++| NFSGW配置 | ++++++++++++++
实验接上面:::————>>

NFS 网关
• 配置步骤
– 1、启劢一个新的系统,禁用 selinux、禁用 firewalld
– 2、卸载 rpcbind 、nfs-utils
– 3、配置 /etc/hosts,添加所有 namenode 和
datanode 的主机名不 ip 对应关系
– 4、安装 java openjdk 的运行环境
– 5、同步 namenode 的 /usr/local/hadoop 到本机
– 6、配置 hdfs-site.xml
– 7、启动服务
---------------------

1 #、启劢一个新的系统,禁用 selinux、禁用 firewalld
上面实验已经做过
2# 卸载 rpcbind 、nfs-utils  先查看是否安装
[root@nfsgw ~]# rpm -qa |grep rpcbind
[root@nfsgw ~]# rpm -qa |grep nfs-utils

3# 已经做过

4# [root@nfsgw ~]# yum -y install java-1.8.0-openjdk-devel

5# 同步 nn01 的 /usr/local/hadoop 到NFSGW的相同目录下
[root@nfsgw local]# rsync -aSH --delete nn01:/usr/local/hadoop /usr/local/

6 ## NFSGW: hdfs-site.xml 增加配置
[root@nfsgw ~]# cd /usr/local/hadoop/
[root@nfsgw hadoop]# cd etc/hadoop/
[root@nfsgw hadoop]# pwd
/usr/local/hadoop/etc/hadoop
[root@nfsgw hadoop]# vim hdfs-site.xml 
<configuration>
........

    <property>
        <name>nfs.exports.allowed.hosts</name>
        <value>* rw</value>
    </property>
    <property>
        <name>nfs.dump.dir</name>
        <value>/var/nfstmp</value>
    </property>
</configuration>
-------------
– 配置完该属性后要创建 /var/nfstmp 文件夹
mkdir /var/nfstmp
– 并且把该文件夹的属组改成 代理用户

[root@nfsgw hadoop]# mkdir /var/nfstmp
[root@nfsgw hadoop]# id nsd1803
uid=200(nsd1803) gid=200(nsd1803) 组=200(nsd1803)
[root@nfsgw hadoop]# chown 200.200 /var/nfstmp
[root@nfsgw hadoop]# ll -d /var/nfstmp/        ## 修改属主属组 保证写的权限!
drwxr-xr-x 2 nsd1803 nsd1803 6 8月   3 17:28 /var/nfstmp/
[root@nfsgw hadoop]# 

NFS 网关
• 启动与挂载
– 设置 /usr/local/hadoop/logs 权限,为代理用户赋予
读写执行的权限
setfacl -m user:proxyuser:rwx /usr/local/hadoop/logs


[root@nfsgw hadoop]# cd /usr/local/hadoop/
[root@nfsgw hadoop]# 
[root@nfsgw hadoop]# ll -d logs/
drwxr-xr-x 2 root root 6 8月   3 17:16 logs/
[root@nfsgw hadoop]# 
[root@nfsgw hadoop]# setfacl -m u:nsd1803:rwx logs
[root@nfsgw hadoop]# getfacl logs
创建数据根目录 /var/hadoop
[root@nfsgw hadoop]# mkdir /var/hadoop        

------验证一下nsd1803 用户的权限
[root@nfsgw hadoop]# 
[root@nfsgw hadoop]# sudo -u nsd1803 -s
[nsd1803@nfsgw hadoop]$ cd /var/nfstmp/
[nsd1803@nfsgw nfstmp]$ ls
[nsd1803@nfsgw nfstmp]$ touch aaa
[nsd1803@nfsgw nfstmp]$ ls
aaa
[nsd1803@nfsgw nfstmp]$ rm -f aaa

[nsd1803@nfsgw nfstmp]$ cd /usr/local/hadoop/logs/
[nsd1803@nfsgw logs]$ ls
[nsd1803@nfsgw logs]$ touch fff
[nsd1803@nfsgw logs]$ ls
fff
[nsd1803@nfsgw logs]$ rm -f fff
[nsd1803@nfsgw logs]$ ls

[nsd1803@nfsgw logs]$ ll
总用量 0
[nsd1803@nfsgw logs]$ exit
exit
[root@nfsgw hadoop]# 
-----------

#使用 root 用户启劢 portmap 服务  
#使用代理用户启劢 nfs3
NFS 网关
• 这里要特别注意:
– 启劢 portmap 需要使用 root 用户
– 启劢 nfs3 需要使用 core-site 里面设置的代理用户
– 必须先启劢 portmap 之后再启劢 nfs3
– 如果 portmap 重启了,在重启之后 nfs3 也需要重启

【nfs端口 2049  RPC端口111】
rpc 在rhel7 叫 rpcbind  在rhel6 叫portmap
启动服务  有两个服务nfs ,portmap  ;   nfs 依赖于portmap
nfs启动的时候需要往rpc进行注册  
启动顺序::
必须先启动portmp 再启动nfs 
重启的时候 : 先停nfs再停portmp  然后再启动portmap 然后再启动nfs
而且启动portmap必须用root启动(停)  nfs必须用代理用户启动(停)

[root@nfsgw ~]# cd /usr/local/hadoop/
[root@nfsgw hadoop]# ./sbin//hadoop-daemon.sh --script ./bin/hdfs start portmap
[root@nfsgw hadoop]# jps
1321 Jps
1274 Portmap                #//看到 Portmap
[root@nfsgw hadoop]# 
[root@nfsgw hadoop]# su -l nsd1803
[nsd1803@nfsgw ~]$ cd /usr/local/hadoop/
[nsd1803@nfsgw hadoop]$ ./sbin/hadoop-daemon.sh --script ./bin/hdfs start nfs3
starting nfs3, logging to /usr/local/hadoop/logs/hadoop-nsd1803-nfs3-nfsgw.out
[nsd1803@nfsgw hadoop]$ 
[nsd1803@nfsgw hadoop]$ jps
1368 Nfs3                    ## 能看到Nfs3
1421 Jps
[nsd1803@nfsgw hadoop]$ 
[nsd1803@nfsgw hadoop]$ exit        ## 退回到root下 再看
logout
[root@nfsgw hadoop]# 
[root@nfsgw hadoop]# jps            ## 同时看到 Nfs3   Portmap
1368 Nfs3
1433 Jps
1274 Portmap
[root@nfsgw hadoop]# 

[root@nfsgw hadoop]# netstat -ntlup
端口号 2049   111 都应该出现

[root@nfsgw hadoop]# cd /usr/local/hadoop/
[root@nfsgw hadoop]# ls
bin  etc  include  lib  libexec  LICENSE.txt  logs  NOTICE.txt  README.txt  sbin  share
[root@nfsgw hadoop]# 
[root@nfsgw hadoop]# cd logs/
[root@nfsgw logs]# ls

[root@nfsgw logs]# cat hadoop-nsd1803-nfs3-nfsgw.log   正确应该是都是INFO
2018-08-03 17:46:37,481 INFO org.apache.hadoop.hdfs.nfs.nfs3
2018-08-03 17:46:37,481 INFO org.apache.hadoop.hdfs.nf
2018-08-03 17:46:37,481 INFO org.apache.hadoop.hdf
2018-08-03 17:46:37,481 INFO org.apache.hadoop.hdfs.nfs.nfs3
2018-08-03 17:46:37,481 INFO org.apache.hadoop.hdfs.nf
2018-08-03 17:46:37,481 INFO org.apache.hadoop.hdf
----------

• 启动与挂载
– 目前NFS 只能使用v3版本
– vers=3
– 仅使用TCP作为传输协议。
– proto=tcp
– 不支持NLM
– nolock
– 禁用 access time 的时间更新
– noatime
---------------
NFS 网关
• 启动与挂载
– 强烈建议使用安装选项“sync”,因为它可以最小化
戒避免重新排序写入,这将导致更可预测的吞吏量。
未挃定同步选项可能会导致上传大文件时出现丌可靠
的行为
– 启劢一台机器安装 nfs-utils
yum install nfs-utils
– 挂载 nfs
mount -t nfs -o vers=3,proto=tcp,noatime,nolock,sync 192.168.1.15:/ /mnt/

###实验————>> 找一台机器 不需要hadoop 任意一台
[root@newnode ~]# 
[root@newnode ~]# cd /usr/local/
[root@newnode local]# ls
[root@newnode local]# rm -rf hadoop      #因为在上面做的实验中这台机器是newnode节点,所以删除hadoop!
[root@newnode local]# cd
 
[root@newnode ~]# yum install -y nfs-utils

[root@newnode ~]# mount -t nfs -o vers=3,proto=tcp,nolock,noatime,sync,noacl 192.168.1.15:/  /mnt/
[root@newnode ~]# cd /mnt/
[root@newnode mnt]# ls

[root@newnode mnt]# showmount -e 192.168.1.15
Export list for 192.168.1.16:
/ *
[root@newnode mnt]# rpcinfo -p 192.168.1.15
   program vers proto   port  service
    100005    3   udp   4242  mountd
    100005    1   tcp   4242  mountd
    100000    2   udp    111  portmapper
    100000    2   tcp    111  portmapper
    100005    3   tcp   4242  mountd
    100005    2   tcp   4242  mountd
    100003    3   tcp   2049  nfs
    100005    2   udp   4242  mountd
    100005    1   udp   4242  mountd
[root@newnode mnt]# 


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#关于同时启动hdfs  yarn的脚本#
[root@nn01 hadoop]# ls
bin  etc  include  lib  libexec  LICENSE.txt  logs  NOTICE.txt  oo  README.txt  sbin  share  xx
[root@nn01 hadoop]# cat ./sbin/start-all.sh 
#!/usr/bin/env bash

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


# Start all hadoop daemons.  Run this on master node.

echo "This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh"

bin=`dirname "${BASH_SOURCE-$0}"`
bin=`cd "$bin"; pwd`

DEFAULT_LIBEXEC_DIR="$bin"/../libexec
HADOOP_LIBEXEC_DIR=${HADOOP_LIBEXEC_DIR:-$DEFAULT_LIBEXEC_DIR}
. $HADOOP_LIBEXEC_DIR/hadoop-config.sh

# start hdfs daemons if hdfs is present
if [ -f "${HADOOP_HDFS_HOME}"/sbin/start-dfs.sh ]; then
  "${HADOOP_HDFS_HOME}"/sbin/start-dfs.sh --config $HADOOP_CONF_DIR
fi

# start yarn daemons if yarn is present
if [ -f "${HADOOP_YARN_HOME}"/sbin/start-yarn.sh ]; then
  "${HADOOP_YARN_HOME}"/sbin/start-yarn.sh --config $HADOOP_CONF_DIR
fi
[root@nn01 hadoop]# pwd
/usr/local/hadoop
[root@nn01 hadoop]# 


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值