基本命令
/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/