Ubuntu16.04 上執行 Hadoop2.7.3 自帶example wordCount摸索記錄
阿新 • • 發佈:2019-01-09
首先最最重要的寫在最前面,也是我覺得個人踩得最深的坑,剛接觸hadoop的人,缺少的認識:
hdfs的理解:它是一個檔案系統,跟linux的檔案系統是類似的結構,擁有類似的語法,大概就是你在linux上ls檢視檔案列表,那麼hdfs的無非就是hadoop fs -ls。hadoop的輸入輸出,都是從hdfs讀取和寫入的,那麼比如執行hadoop的word count例子的時候,網上各種大坑教程中完全都沒有提到要先自己準備幾個input檔案,文字文件隨便打幾個字就好,並且把檔案上傳到hdfs系統中:這麼做的原因在理解了hdfs後很顯然了--hadoop的輸入輸出都在hdfs中,而且例子裡的命令指定的目錄,指定的也是hdfs中的資料夾路徑。所以網上各種治標不治本的exception
explanation再回過頭來看,完全就是在給新人挖坑!(不過可能別人寫的時候都以為你知道,但是隻有我知道我不知道而且你也不知道,話說還在執行hadoop自帶例子的人能對hadoop有多麼深刻的理解呢,佩服大神們的邏輯)
辣麼,讓我們從頭來一遍:(我個人有把${hadoop_install}/bin加入path,所以我直接可以輸入hadoop命令,建議大家都可以這麼做。)
-
首先你得安裝並執行起來hadoop,我不管你是叢集還是單機,執行命令:ps -ef|grep hadoop查詢是否有hadoop程序,如果你看到的是如下這一坨,那麼你的hadoop就是在運行了。注意,我是本機執行的例子,所以如果你確定你是連別人的服務,那麼請無視就好。
- 準備兩個檔案,比如text1.txt和text2.txt 裡面各寫上一句話,隨便什麼都好,反正就是拿來統計的。然後使用類似如下的命令來上傳到hdfs檔案系統中:hdfs dfs mkdir /input; hadoop fs -put *.txt /input ---你得先在hdfs中建立你的資料夾才能把檔案往裡放不是,還是那句話,它是個檔案系統
- 執行示例程式命令
- 檢視結果:hadoop fs -cat /output/part-r-00000