hdfs基本使用

基本命令

/usr/local/hadoop/bin/hadoop fs -ls /

/usr/local/hadoop/bin/hadoop fs -mkdir /test           # 创建目录
/usr/local/hadoop/bin/hadoop fs -touchz  /test.txt           # 创建文本

/usr/local/hadoop/bin/hadoop fs -put localfile  /test           # 上传文件
/usr/local/hadoop/bin/hadoop fs -get /test           # 下载文件

 

统计词频

# 创建文件夹
/usr/local/hadoop/bin/hadoop fs -mkdir /input


# 上传要分析的文件
/usr/local/hadoop/bin/hadoop fs -put *.txt /input 

# 提交分析作业
/usr/local/hadoop/bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /input /output

# 查看结果
/usr/local/hadoop/bin/hadoop fs -cat /output/*

 

 

增加节点

--启动新系统,禁用selinux  firewall

--设置SSH免密登陆

--在所有节点修改/etc/hosts,增加新节点的主机信息

ansible all -m shell -a 'echo "192.168.1.15 new" >> /etc/hosts'

--安装java运行环境

 yum -y install java-1.8.0-openjdk-devel

--拷贝NameNode的/usr/local/hadoop

[root@nn01 hadoop]# rsync -aSH --delete /usr/local/hadoop new:/usr/local/

--修改NameNode的slaves文件增加该节点

 

--在该节点启动DataNode

/usr/local/hadoop/sbin/hadoop-daemon.sh start datanode

 

--设置同步带宽并同步数据

/usr/local/hadoop/bin/hdfs dfsadmin -setBalancerBandwidth 60000000
/usr/local/hadoop/sbin/start-balancer.sh

--查看集群状态

/usr/local/hadoop/bin/hdfs dfsadmin -report

 

修复节点,与增加节点基本一致,新节点的ip和主机名要与损坏节点的一致

  启动服务/usr/local/hadoop/sbin/hadoop-daemon.sh start datanode

  数据恢复是自动的

 

删除节点

配置NameNode的/usr/local/hadoop/etc/hadoop/hdfs-site.xml,增加以下配置

        <property>
                <name>dfs.hosts.exclude</name>
                <value>/usr/local/hadoop/etc/hadoop/exclude</value>
        </property>

 

增加exclude配置文件NameNode的/usr/local/hadoop/etc/hadoop/exclude,写入要删除的节点主机名

修改配置文件/usr/local/hadoop/etc/hadoop/slaves, 去掉要删除的节点主机名

导出数据

/usr/local/hadoop/bin/hdfs dfsadmin -refreshNodes

/usr/local/hadoop/bin/hdfs dfsadmin -report   # 删除的节点处于Decommissioned状态

 

停止datanode

/usr/local/hadoop/sbin/hadoop-daemon.sh stop datanode      

 

 

yarn节点管理  

# 增加节点
/usr/local/hadoop/sbin/yarn-daemon.sh start nodemanager
# 删除节点
/usr/local/hadoop/sbin/yarn-daemon.sh stop nodemanager
# 查看节点
/usr/local/hadoop/bin/yarn node -list

 

 

NFS网关

停止集群

/usr/local/hadoop/sbin/stop-all.sh

在nameNode和nfsgw上添加用户

[root@nn01 hadoop]# groupadd -g 800 nfsuser 
[root@nn01 hadoop]# useradd -g 800 -u 800 nfsuser

hdfs授权,配置/usr/local/hadoop/etc/hadoop/core-site.xml,并同步配置至所有node节点

        <property>
                <name>hadoop.proxyuser.nfsuser.groups</name>
                <value>*</value>                
        </property>
        <property>
                <name>hadoop.proxyuser.nfsuser.hosts</name>
                <value>*</value>                
        </property>



# 同步

 rsync -aSH --delete /usr/local/hadoop/etc node1:/usr/local/hadoop/

启动服务

/usr/local/hadoop/sbin/start-dfs.sh

 

配置NFSGW

--启动新系统,禁用selinux、firewall

--卸载rpcbind、nfs-utils

--配置/etc/hosts,添加所有的NameNode和DataNode的主机名与ip对应关系

--安装java运行环境

 yum -y install java-1.8.0-openjdk-devel

 

--同步NameNode的/usr/local/hadoop到本机

[root@nfsgw ~]# rsync -aSH --delete nn01:/usr/local/hadoop /usr/local/

 

--配置/usr/local/hadoop/etc/hadoop/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>

 

--启动与挂载

  ***先rpcbind,再启动nfs3

   ***启动rpcbind服务必须使用root用户

  ***启动nfs3服务必须使用nfsuser用户

  ***nfsuser对/var/nfstmp、/usr/local/hadoop/logs有读写权

[root@nfsgw hadoop]# chown nfsuser.nfsuser /var/nfstmp
[root@nfsgw hadoop]# setfacl -m nfsuser:rwx logs/
/usr/local/hadoop/sbin/hadoop-daemon.sh --script ./bin/hdfs start portmap


[root@nfsgw hadoop]# su - nfsuser
/usr/local/hadoop/sbin/hadoop-daemon.sh --script ./bin/hdfs start nfs3

 

--客户端挂载

# 安装nfs
 yum -y install nfs-utils

# 挂载
mount -t nfs -o proto=tcp,nolock,noatime,sync 192.168.1.25:/ /mnt/

 

posted @ 2019-03-01 17:22  Ray_chen  阅读(2085)  评论(0编辑  收藏  举报