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/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM