大數據第6周
1.啓動集羣並驗證
啓動集羣:start-all.sh
啓動後先用jps驗證線程數是否正確,按照我的配置,master節點線程:
連個slave節點:
爲了驗證集羣mapreduce工作是否正常,可以運行例子程序,例如:
進入相應目錄hadoop-2.7/share/hadoop/mapreduce,執行:
hadoop jar hadoop-mapreduce-examples-2.7.7.jar pi 10 10
其中:第一個10是指運行10次map任務,第二個10是指每個map任務投擲次數,所以總投擲次數是10×10=100。如果顯示:
表明沒有關閉安全模式,用下面的命令把安全模式關閉:
hdfs dfsadmin -safemode leave
然後再次執行後結果顯示:
HDFS命令
hadoop fs展示所有命令
新建一個aaa的目錄:
在瀏覽器中也可以查看,輸入地址:master:50070
新建一個有內容的文件,上傳至hdfs文件系統。
echo hello world >> abc.txt
hadoop fs -put abc.txt /aaa/
查找存儲的具體位置,理解hdfs的工作基本原理。
也可以通過命令查看上傳在即羣裏的文件。
在master節點裏存儲的是文件的存儲位置,在相應節點裏可以找到上傳的文件。
我們猜測它就是我們剛纔上傳的文件。將它拷貝到家目錄下查看:
cp blk_1073741893 ~/tmpabc
再回到家目錄查看剛纔的文件,如圖:
上傳一個超過塊大小的文件(當前塊大小是128MB),查找具體位置和分塊情況,並將分塊重新組合,理解hdfs分塊存儲的原理。
對hdfs文件系統,在哪個節點上操作沒有區別,在非集羣的主機上也可以操作hdfs文件系統。
2.在非集羣的主機上操作hdfs文件系統
在進行操作的主機上需要有hadoop軟件包,否則,hadoop命令沒有解釋器;hadoop包裏必須有與集羣配置相同的配置文件。
需要有與集羣配置相同的jdk。
需要配置相應路徑。
與集羣內主機操作完全相同。
下面拿Ubuntu做實驗。先配置jdk,解壓並再.bashrc裏配置環境變量。
hadoop集羣下程序開發
3.1拷貝解壓eclipse軟件
tar -zxvf eclipse-java-2020-03-R-linux-gtk-x86_64.tar.gz