Hadoop大数据集群搭建
官网地址:http : // hadoop. apache. org
其他下载地址:https://archive.apache.org/dist/hadoop/common/
一、单机部署
1、环境要求:
2cpu、2G、java
2、安装java环境:
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel.x86_64
3、安装hadoop软件:
【安装包下载:
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 】
tar -zxf hadoop-2.7.6.tar.gz
mv hadoop-2.7.6 /usr/local/hadoop
chown 0.0 -R /usr/local/hadoop
a、配置hadoop
b、查看java的安装路径
[root@li11 hadoop]# rpm -ql java-1.8.0-openjdk
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64/jre/bin/policytool
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64/jre/lib/amd64/libawt_xawt.so
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64/jre/lib/amd64/libjawt.so
.........
c、修改hadoop配置文件hadoop-env.sh:
[root@li11 hadoop]# vim +25 /usr/local/hadoop/etc/hadoop/hadoop-env.sh
25: export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64/jre" #java-1.8.0-openjdk安装路径,看前面相同的一节
33: export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop" #hadoop-env.sh 文件的目录
d、验证:
/usr/local/hadoop/bin/hadoop version
4、统计分析热点词汇:
cd /usr/local/hadoop/
mkdir input
cp *.txt input/
./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount ./input/ ./output
a、查看分析结果
cat output/*
二、完全分布式部署
1、实验环境准备
a、禁用selinux(重启生效)
vi /etc/selinux/config
SELINUX=disables
b、禁用firewalld
systemctl stop firewalld.service
systemctl mask firewalld.service #屏蔽firewalld
c、安装java-1.8.0-openjdk-devel(所有主机)
yum -y install java-1.8.0-openjdk-devel
d、配置主机名(所有主机)
hadoop非常依赖主机名解析,如果配置DNS解析主机名,
不光需要正向解析,还需要反向解析
这里暂用/etc/hosts文件来解析主机名
vi /etc/hosts
192.168.1.11 hadoop1 #角色:namenode && secondarynamenode && ResourceManager
192.168.1.12 node2 #角色:datanode && NodeManager
192.168.1.13 node3 #角色:datanode && NodeManager
192.168.1.14 node4 #角色:datanode && NodeManager
for i in node{2…4}; do scp /etc/hosts root@${i}:/etc/hosts ; done
e、ssh免密登录(hadoop上配置,包括自己)
ssh-keygen -t rsa -b 2048 -N ‘’ -f /root/.ssh/id_rsa
for i in hadoop1 node{2…4};do ssh-copy-id -i /root/.ssh/id_rsa.pub ${i} ; done
f、关闭远程需输yes(所有主机)
vi +59 /etc/ssh/ssh_config
StrictHostKeyChecking no #注意缩进8空格
2、配置hadoop–HDFS(核心组件一)
● 环境配置文件:hadoop-env.sh
● 核心配置文件:core-site.xml
● HDFS配置文件:hdfs-site.xml
● 节点配置文件:slaves
a、 修改hadoop-env.sh
参考 【一、单机部署下的----3、安装hadoop软件下的----c、修改hadoop配置文件hadoop-env.sh】
b、 修改 slaves文件
vim /usr/local/hadoop/etc/hadoop/slaves
##删除原有的localhost
node2
node3
dode4
c、 hadoop的核心配置文件core-site
##可查官方手册(https://hadoop.apache.org/docs/r2.7.7/) 拉到页面最下面的左下角core-default.xml
[root@li11 hadoop]# vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value>
<description>描述信息填这,无描述可删除本行,下同</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop</value>
</property>
</configuration>
d、 hadoop的hdfs-site文件
##可查官方手册(https://hadoop.apache.org/docs/r2.7.7/) 拉到页面最下面的左下角core-default.xml
[root@li11 hadoop]# vim hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop1:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop1:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
e、 同步配置文件
● hadf集群所有节点配置文件是相同的!!!
● 在namenode上(也就是hadoop1主机)上配置完成后,把 hadoop文件夹拷贝到其他主机即可
● 拷贝hadoop文件夹到node{2…4}
for i in node{2…4}; do rsync -aXSH --delete /usr/local/hadoop ${i}:/usr/local/ ; done
3、初始化集群
a、创建数据目录(core-site文件所写的目录)
● 只在namenode上创建即可,其他datanode可自动创建
mkdir /var/hadoop
b、格式化hdfs(只在namenode做)
/usr/local/hadoop/bin/hdfs namenode -format
c、启动集群(只在namenode做)
/usr/local/hadoop/sbin/start-dfs.sh
d、验证集群–jps
1)、验证角色(所有主机)
[root@li11 hadoop]# jps #hadoop1主机
40115 NameNode
40300 SecondaryNameNode
40444 Jps
[root@li12 ]# jps #node2主机
6933 Jps
6844 DataNode
[root@li13 ~]# jps #node3主机
11223 DataNode
11308 Jps
[root@li14 ~]# jps #node4主机
23581 Jps
23503 DataNode
2)、验证集群(只在hadoop上)
[root@li11 hadoop]# /usr/local/hadoop/bin/hdfs dfsadmin -report
Configured Capacity: 54716792832 (50.96 GB)
..........
Live datanodes (3):
.........
3)、web页面验证
http://hadoop1:50070 #(namenode)
http://hadoop1:50090 #(secondarynamenode)
http://node2:50075 #(datanode)【node3、node4也是同样】
4、排错步骤:
a、 查看日志找到错误
1) 、日志文件夹在系统启动时会被自动创建
● /usr/local/hadoop/logs
2) 、日志名称
● 服务名-用户名-角色名-主机名.out #标准输出
(hadoop-root-namenode-hadoop1.out)
● 服务名-用户名-角色名-主机名.log #日志信息
(hadoop-root-namenode-hadoop1.log)
b、 停止集群:
/usr/local/hadoop/sbin/stop-dfs.sh
c、 修改配置文件,并同步给所有节点
d、 删除所有节点的 /var/hadoop/*
e、 在hadoop1上重新格式化
f、 启动集群:
/usr/local/hadoop/sbin/start-dfs.sh
5、配置hadoop–mapreduce(核心组件二)
a、配置mapred-site(hadoop1上面操作)
[root@nn01 ~]# cd /usr/local/hadoop/etc/hadoop/
[root@nn01 hadoop]# mv mapred-site.xml.template mapred-site.xml
[root@nn01 hadoop]# vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
b、配置yarn-site(hadoop1上面操作)
[root@nn01 hadoop]# vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
c、同步配置(hadoop1上面操作)
[root@nn01 hadoop]# for i in node{2…4}; do rsync -aXSH --delete /usr/local/hadoop/ $i:/usr/local/hadoop/ ; done
[1] 712X
[2] 713
[3] 714
d、启动验证配置(hadoop01上面操作)
[root@li1 hadoop]# cd /usr/local/hadoop
[root@li1 hadoop]# ./sbin/start-dfs.sh
Starting namenodes on [nn01]
nn01: namenode running as process 23408. Stop it first.
node1: datanode running as process 22409. Stop it first.
node2: datanode running as process 22367. Stop it first.
node3: datanode running as process 22356. Stop it first.
Starting secondary namenodes [nn01]
nn01: secondarynamenode running as process 23591. Stop it first.
[root@li1 hadoop]# ./sbin/start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop/logs/yarn-root-resourcemanager-nn01.out
node2: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-root-nodemanager-node2.out
node3: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-root-nodemanager-node3.out
node1: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-root-nodemanager-node1.out
[root@li1 hadoop]# jps //hadoop1查看有ResourceManager
23408 NameNode
1043 ResourceManager
1302 Jps
23591 SecondaryNameNode
[root@li1 hadoop]# ssh node2 jps //node2查看有NodeManager
25777 Jps
22409 DataNode
25673 NodeManager
[root@li1 hadoop]# ssh node3 jps //node3查看有NodeManager
25729 Jps
25625 NodeManager
22367 DataNode
[root@li1 hadoop]# ssh node4 jps //node4查看有NodeManager
22356 DataNode
25620 NodeManager
25724 Jps
[root@li1 hadoop]# /usr/local/hadoop/bin/hdfs dfsadmin -report
#查看hdfs节点
34. [root@li1 hadoop]# /usr/local/hadoop/bin/yarn node -list
#查看yarn节点
04—2:42
e、web访问hadoop
http://192.168.1.11:50070/ # //–namenode web页面(hadoop1)
http://192.168.1.11:50090/ #//–secondory namenode web页面(hadoop1)
http://192.168.1.12:50075/ # //–datanode web页面(node2,node3,node4)
http://192.168.1.11:8088/ #//–resourcemanager web页面(hadoop1)
http://192.168.1.12:8042/ #//–nodemanager web页面(node2,node3,node4)
6、访问文件系统
● web页面
○ 能查看,能读取,不能写入
● 命令行
○ 能查看,能读取,能写入
■ /usr/local/hadoop/bin/hadoop fs 【回车】 ##可看到有哪些命令
a、 hdfs命令
1) 、查看文件和目录
● 如果访问路径不指定前缀默认读取core-site.xml文件中fs.defaultFS参数
● 访问本地文件系统请使用 file://
○ /usr/local/hadoop/bin/hadoop fs -ls file:/// #访问本地 / 目录
● 访问集群文件系统
○ /usr/local/hadoop/bin/hadoop fs -ls hdfs://hadoop1:9000/
○ /usr/local/hadoop/bin/hadoop fs -ls / #与上面命令表达的含义一样
2)、创建文件夹
● /usr/local/hadoop/bin/hadoop fs -mkdir /input
3)、创建文件
● /usr/local/hadoop/bin/hadoop fs -touchz /input/testfile
4)、上传文件
● /usr/local/hadoop/bin/hadoop fs -put *.txt /input
5)、下载文件
● /usr/local/hadoop/bin/hadoop fs -get /input/README.txt /tmp/
6)、删除文件
● /usr/local/hadoop/bin/hadoop fs -rm /tmp/README.txt
7)、删除文件夹
● /usr/local/hadoop/bin/hadoop fs -rmdir /dir1
7、在集群上进行数据分析
[root@nn01 hadoop]# ./bin/hadoop fs -ls / ##//查看集群文件系统的根,没有内容
[root@nn01 hadoop]# ./bin/hadoop fs -mkdir /aaa ##//在集群文件系统下创建aaa目录
[root@nn01 hadoop]# ./bin/hadoop fs -ls / ##//再次查看,有刚创建的aaa目录
Found 1 items
drwxr-xr-x - root supergroup 0 2018-09-10 09:56 /aaa
[root@nn01 hadoop]# ./bin/hadoop fs -touchz /fa ##//在集群文件系统下创建fa文件
[root@nn01 hadoop]# ./bin/hadoop fs -put .txt /aaa
##//上传.txt到集群文件系统下的aaa目录
[root@nn01 hadoop]# ./bin/hadoop fs -ls /aaa ##//查看
Found 3 items
11. -rw-r--r-- 2 root supergroup 86424 2018-09-10 09:58 /aaa/LICENSE.txt
12. -rw-r--r-- 2 root supergroup 14978 2018-09-10 09:58 /aaa/NOTICE.txt
13. -rw-r--r-- 2 root supergroup 1366 2018-09-10 09:58 /aaa/README.txt
[root@nn01 hadoop]# ./bin/hadoop fs -get /aaa ##/下载集群文件系统的aaa目录
[root@nn01 hadoop]# /usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /aaa /bbb
##//hadoop集群分析大数据,hadoop集群/aaa里的数据存到hadoop集群/bbb下
[root@nn01 hadoop]# ./bin/hadoop fs -cat /bbb/* /##/查看集群里的数据
三、节点扩容(修复)
1、 增加节点
192.168.1.15 newnode #角色:datanode && NodeManager
a、 安装java环境
1) 、配置newnode的yum源
rsync -aXSH --delete /etc/yum.repos.d/* 192.168.1.15:/etc/yum.repos.d/
ssh newnode mkdir /mnt/rhel_repo/
ssh newnode mount /dev/cdrom /mnt/rhel_repo/
2) 、安装java包
yum -y install java-1.8.0-openjdk-devel
b、配置免密登录(hadoop1上执行)
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.1.15
ssh newnode " sed -i ‘59a\ StrictHostKeyChecking\ no’ /etc/ssh/ssh_config" #配置远程不用输yes,在第59行后追加一行 StrictHostKeyChecking no
c、所有主机修改 /etc/hosts (hadoop上执行)
echo “192.168.1.15 newnode” >> /etc/hosts
for i in {12…15} ; do rsync -av /etc/hosts 192.168.1.$i:/etc/ ; done
d、拷贝 hadoop1 上 /usr/local/hadoop 到 newnode
1) 、可不用配置slaves文件(slaves是服务自启动配置文件)
● 在slaves追加newnode可以在namenode启动时,namenode自动启动下面节点
rsync -aXSH /usr/local/hadoop newnode:/usr/local/
e、启动新节点 datanode服务 (newnode上执行)
/usr/local/hadoop/sbin/hadoop-daemon.sh start datanode
jps
f、设置同步带宽(防止新节点受到巨量攻击 (newnode上执行)
/usr/local/hadoop/bin/hdfs dfsadmin -setBalancerBandwidth 60000000
/usr/local/hadoop/sbin/start-balancer.sh
g、启动新节点nodemanager服务 (newnode上执行)
/usr/local/hadoop/sbin/yarn-daemon.sh start nodemanager
jps
h、验证结果(hadoop1上)
/usr/local/hadoop/bin/hdfs dfsadmin -report
/usr/local/hadoop/bin/yarn node -list
四、删除节点
1、 配置数据迁移 hdfs-site.xml(hadoop1上做,不需要同步)
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/local/hadoop/etc/hadoop/exclude</value>
</property>
2、 在删除配置文件中添加 newnode
echo newnode >> /usr/local/hadoop/etc/hadoop/exclude
3、 迁移数据
/usr/local/hadoop/bin/hdfs dfsadmin -refreshNodes
4、 查看状态,仅当节点状态为 Decommissioned 时候才可以下线
[root@li11 ~]# /usr/local/hadoop/bin/hdfs dfsadmin -report
…此处省略部分内容…
Live datanodes (4): #删除之后节点信息并不会立即消失,需要等待一段时间
…此处省略部分内容…
Name: 192.168.1.15:50010 (newnode)
Hostname: newnode
Decommission Status : Decommissioned #仅当节点状态为 Decommissioned 时候才可以下线
Configured Capacity: 18238930944 (16.99 GB)
…此处省略部分内容…
5、 下线节点(newnode上做)
[root@li15 ~]# /usr/local/hadoop/sbin/hadoop-daemon.sh stop datanode
[root@li15 ~]# /usr/local/hadoop/sbin/yarn-daemon.sh stop nodemanager
五、NFSGW
● 用户可以通过操作系统兼容的本地NFSv3客户端来浏览HDFS文件系统
● 用户可以通过挂载点直接流化数据
● 允许HDFS作为客户端文件系统的一部分被挂载
● 支持文件附加,但不支持随机写(nolock)
● NFS网关目前只支持NFSv3和TCP协议(vers=3,proto=tcp)
● 缓解了 命令行下或者网页客户端 的不愉快或者不流畅
● 类似HDFS-client的代理;集合了HDFS-client和NFS-server
1、 配置集群环境
192.168.1.16 nfsgw #角色:Portmap #1CPU、1G内存
a、配置 /etc/hosts
[root@nn01 hadoop]# echo “192.168.1.16 nfsgw” >> /etc/hosts
[root@li11 hadoop]# for i in {12…14} ; do rsync -aSH --delete /etc/hosts 192.168.1.$i:/etc/hosts ; done
b、创建代理用户(hadoop1和nfsgw上操作)
1)、代理用户是NFS网关访问集群的授权用户
192.168.1.11和16两台设备上添加,代理用户的UID、GID、用户名必须完全相同
2)、如果因特殊原因用户UID、GID、用户名不能一致,需配置 nfs、map 的静态映射关系
例如:
uid 10 100 # Map the remote UID 10 to the local UID 100
uid 11 101 # Map the remote GID 11 to the local GID 101
3)、以Hadoop1为例子(nfsgw同样操作):
注意事项:
● 在安全模式下,Kerberos keytab中的用户是代理用户
● 在非安全模式下,运行网关进程的用户必须是代理用户
● 在NameNode和NFSGW 上代理用户的UID、GID、用户名必须完全相同
[root@li01 hadoop]# groupadd -g 800 nfsuser ##nfsgw同样操作
[root@li01 hadoop]# useradd -u 800 -g 800 -r -d /var/hadoop nfsuser ##nfsgw同样操作
c、配置core-site.xml
[root@li01 hadoop]# /usr/local/hadoop/sbin/stop-all.sh //停止所有服务
[root@nn01 hadoop]# >/usr/local/hadoop/etc/hadoop/exclude
[root@li11 hadoop]# vi /usr/local/hadoop/etc/hadoop/core-site.xml
● 挂载点组授权 hadoop. proxyuser.{代理用户}.groups
<property>
<name>hadoop.proxyuser.nfsuser.groups</name>
<value>*</value>
</property>
● # 挂载点主机授权 hadoop. proxyuser.{代理用户}.hosts
<property>
<name>hadoop.proxyuser.nfsuser.hosts</name>
<value>*</value>
</property>
d、同步配置到node2、node3、node4
[root@li11 hadoop]# for i in {12…14} ; do rsync -aSH --delete /usr/local/hadoop/ 192.168.1.$i:/usr/local/hadoop/ -e ‘ssh’ & done
e、启动集群
[root@li11 hadoop]# /usr/local/hadoop/sbin/start-dfs.sh
f、查看状态
[root@nn01 hadoop]# /usr/local/hadoop/bin/hdfs dfsadmin -report
2、配置NFSGW
a、配置java环境
1)、Hadoop上做
[root@li11 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub nfsgw
[root@li11 ~]# rsync -avSH --delete /etc/yum.repos.d/ 192.168.1.16:/etc/yum.repos.d/
[root@li11 hadoop]# rsync -avSH --delete /etc/hosts 192.168.1.16:/etc/hosts
[root@li11 ]# rsync -avSH --delete /usr/local/hadoop/ 192.168.1.16:/usr/local/hadoop/ #将本地hadoop安装目录到NFSGW
2)、nfsgw上做
[root@nfsgw ~]# yum remove -y rpcbind nfs-utils ##防止软件冲突
[root@nfsgw ~]# rsync -aXSH --delete hadoop1:/usr/local/hadoop /usr/local/ ##t同步namenode的hadoop安装目录到NFSGW
[root@localhost ~]# echo nfsgw > /etc/hostname
[root@localhost ~]# hostname nfsgw
[root@li16 ~]# vi /etc/resolv.conf
nameserver 119.29.29.29 ##配置域名解析,解析yum源
[root@li16 ~]# mkdir /mnt/rhel_repo/
[root@li11 hadoop]# mount /dev/sr0 /mnt/rhel_repo/ ##临时挂载本地磁盘
[root@li16 ~]# yum -y update java-1.8.0* #更新原有其他包
[root@li16 ~]# yum -y install java-1.8.0-openjdk-devel ##//在nfsgw上做,保持java环境与Hadoop1一致
b、配置hdfs-site.xml
[root@li16 ~]# vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
● nfs.exports授权(类似NFS的/etc/export文件)
○ nfs.exports.allowed.hosts
○ 默认情况下,export 可以被任何客户端挂载。为了更好的控制访问,可以设置属性。值和字符串对应机器名和访问策略,通过空格来分隔。机器名的格式可以是单一主机、Java的正则表达式或者IPv4地址
○ 使用 rw 或 ro 可以指定导出目录的读写 或只读权限。
○ 默认设置为只读权限
<property> <name>nfs.exports.allowed.hosts</name> <value>* rw</value> </property>
● nfs.dump配置
○ nfs.dump.dir
○ 用户需要更新文件转储目录参数。NFS客户端经常重新安排写操作,顺序的写操作会随机到达NFS网关。这个目录常用于临时存储无序的写操作。对于每个文件,无序的写操作会在他们积累在内存中超过一定阈值(如:1M)时被转储。需要确保有足够的空间的目录(建议100G以上)
○ NFS网关在设置该属性后需要重启
<property> <name>nfs.dump.dir</name> <value>/var/nfstmp</value> </property>
c、创建数据根目录 /var/hadoop(在NFSGW主机上面操作)
[root@li16 ~]# mkdir /var/hadoop
d、创建转储目录,并给用户nfs 赋权(在NFSGW主机上面操作)
[root@li16 ~]# mkdir /var/nfstmp
[root@li16 ~]# chown nfsuser.nfsuser /var/nfstmp
e、给/usr/local/hadoop/logs赋权(在NFSGW主机上面操作)
[root@li16 ~]# rm -rf /usr/local/hadoop/logs/* ##清除以往集群日志,以便记录最新日志文件
[root@li16 ~]# setfacl -m user:nfsuser:rwx /usr/local/hadoop/logs
f、nfsuser用户测试创建、删除
[root@nfsgw ~]# su - nfsuser
[nfs@nfsgw ~]$ cd /var/nfstmp/
[nfs@nfsgw nfstmp]$ touch /var/nfstmp/1
[nfs@nfsgw nfstmp]$ ls /var/nfstmp/
1
[nfs@nfsgw nfstmp]$ rm -rf /var/nfstmp/1
[nfs@nfsgw nfstmp]$ ls /var/nfstmp/
[nfs@nfsgw nfstmp]$ cd /usr/local/hadoop/logs/
[nfs@nfsgw logs]$ touch /usr/local/hadoop/logs/1
[nfs@nfsgw logs]$ ls /usr/local/hadoop/logs/
1 hadoop-root-secondarynamenode-nn01.log yarn-root-resourcemanager-nn01.log
..................
[nfs@nfsgw logs]$ rm -rf /usr/local/hadoop/logs/1
[nfs@nfsgw logs]$ ls /usr/local/hadoop/logs/
g、启动服务(NFSGW上root用户操作)
● 启动 portmap 需要使用root用户
● 启动 nfs3 需要使用 core-site 里面设置的代理用户
● 必须为代理用户授权
○ /var/nfstmp 不授权 上传文件会报错
○ /usr/local/hadoop/logs 不授权看不到报错日志
● 必须先启动 portmap 之后再启动 nfs3
● 如果 portmap 重启了,在重启之后 nfs3 也必须重启
[root@nfsgw ~]# /usr/local/hadoop/sbin/hadoop-daemon.sh --script /usr/local/hadoop/bin/hdfs start portmap ## portmap服务只能用root用户启动
starting portmap, logging to /usr/local/hadoop/logs/hadoop-root-portmap-nfsgw.out
[root@nfsgw ~]# jps
23714 Jps
23670 Portmap
[root@nfsgw ~]# sudo -u nfsuser /usr/local/hadoop/sbin/hadoop-daemon.sh --script /usr/local/hadoop/bin/hdfs start nfs3 ## nfs3只能用代理用户启动
starting nfs3, logging to /usr/local/hadoop/logs/hadoop-nfs-nfs3-nfsgw.out
[root@nfsgw ~]# su - nfsuser
Last login: Mon Sep 10 12:31:58 CST 2018 on pts/0
-bash-4.2$ jps ##nfsuser用户只看到Nfs3
1362 Jps
1309 Nfs3
-bash-4.2$ 登出
[root@nfsgw hadoop]# jps ## root用户执行可以看到portmap和nfs3
1216 Portmap
1309 Nfs3
1374 Jps
h、实现客户端挂载(客户端可以用newnode这台主机)
[root@li15 ~]# rm -rf /usr/local/hadoop
[root@li15 ~]# yum -y install nfs-utils
[root@li15 ~]# showmount -e 192.168.1.16 ##验证 shoumount 的地址
[root@li15 ~]# mount -t nfs -o nolock,vers=3,proto=tcp,noatime,noacl,sync 192.168.1.16:/ /mnt/ ##//挂载
● 不支持随机写
○ nolock
● 禁用 access time 的时间更新
○ noatime
● 同步写入,避免重排序写入
○ sync
● 禁用 acl 扩展权限
○ noacl
[root@li15 ~]# cd /mnt/
[root@li15 mnt]# ls
aaa bbb fa system tmp
[root@li15 mnt]# touch a
[root@li15 mnt]# ls
a aaa bbb fa system tmp
[root@li15 mnt]# rm -rf a
[root@li15 mnt]# ls
aaa bbb fa system tmp
i、在newnode 实现开机自启(配置/etc/fstab)
[root@li15 aaa]# vi /etc/fstab
…
192.168.1.16:/ /mnt/ nfs nolock,vers=3,proto=tcp,noatime,noacl,sync 0 0
j、思考如何实现 NFS 的高可用
六、高可用Hadoop(–namenode高可用)
后续有空再添加