Hadoop大数据集群搭建

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高可用)

后续有空再添加

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值