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/