Win10中搭建Hadoop環境
環境搭建問題一直都比較令人頭疼,可能技術含量不高,但坑比較多,對於新手來說更是如此。這裡,我貼出我在win10中搭建Hadoop的一些心得和遇到的一些坑,希望能給其他新手提供一些幫助,繞開這些坑,避免浪費不必要的時間。
首先在搭建Hadoop環境之前需要先安裝JDK,並且配置好Java環境變數,具體如何配置,可以參照其他已有的教程,這裡需要注意的是,Java環境變數中不允許有空格,如 C:Program Filesjavaxxxxx , 後續步驟中在 hadoop-env.cmd 配置 JAVA_HOME 時,這種環境變數的是無法識別的,容易報 「Error JAVA_HOME is incorrectly set.」 之類的錯誤。
1 下載安裝
進入Hadoop官網下載壓縮文件,如 hadoop-2.7.4.tar.gz ,解壓到指定目錄, 解壓後文件結構如下:
注意: data目錄是後續配置生成的
2 配置Hadoop環境變數
這裡需要配置的環境變數是系統環境變數。主要需要配置的是HADOOP_HOME和Path。這裡需要配置的都是bin目錄所在的路徑。
類似的,將bin所在路徑添加到Path中
3 修改配置文件
這裡需要修改的配置文件有:
- core-site.xml
- hdfs-site.xml
- yarn-site.xml
- hadoop-env.cmd
3.1 core-site.xml
<!-- Put site-specific property overrides in this file. --><configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property></configuration>
這個文件沒有特別需要注意的地方,直接覆蓋就行
3.2 hdfs-site.xml
這是Hadoop分散式文件系統的配置,主要是配置 namenode 和 datanode 的路徑
<!-- Put site-specific property overrides in this file. --><configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/distributed/hadoop/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/distributed/hadoop/data/datanode</value> </property></configuration>
下面兩個value即配置了 namenode 和datanode的路徑,配置成功後(執行第四步後),相關路徑中會多一個data目錄:
3.3 yarn-site.xml
<configuration> <!-- nodemanager要求的內存最低為1024 --> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>1024</value> </property> <property> <name>yarn.nodemanager.resource.cpu-vcores</name> <value>1</value> </property></configuration>
這裡需要注意,nodemanager 要求的內存最低為1G,所以value至少是1024,否則無法啟動nodemanager。
ATAL org.apache.hadoop.yarn.server.nodemanager.NodeManager: Error starting NodeManager org.apache.hadoop.yarn.exceptions.YarnRuntimeException:org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Recieved SHUTDOWN signal from Resourcemanager ,Registration of NodeManager failed,Message from ResourceManager: NodeManager from hadoop doesnt satisfy minimum allocations, Sending SHUTDOWN signal to the NodeManager
3.4 hadoop-env.cmd
@rem The java implementation to use. Required.@rem set JAVA_HOME=%JAVA_HOME%set JAVA_HOME=%JAVA_HOME%@rem The jsvc implementation to use. Jsvc is required to run secure datanodes.@rem set JSVC_HOME=%JSVC_HOME%
4 格式化HDFS系統
CMD切換到Hadoop的bin目錄下,執行命令:
hdfs namenode -format
格式化後,如果沒有報什麼錯誤,基本上算是搭建成功了,這個時候Hadoop安裝盤會多出兩個目錄
兩個目錄下的文件分別為
5 啟動Hadoop
切換到Hadoop下sbin目錄,執行 start-all 命令,啟動Hadoop,這時會啟動namenode,、datanode、resourcemanager、nodemanager。執行jps命令,可以看到如下啟動進程
通過瀏覽器進入管理界面
http://localhost:8088
http://localhost:50070
到這一步,Hadoop就算是搭建成功了
6 簡單測試
6.1 首先創建一個輸入目錄如 user/data/input
這個時候一定要注意不要創建output目錄,否則後面將會報 output目錄已存在的錯誤,因為Hadoop會自動生成這個目錄。
6.2 上傳文件到input目錄中
執行命令
hdfs dfs -put /test /user/data/input
這裡是將test文件傳到了上一步創建的目錄下,下面我們可以看看這個文件:
hdfs dfs -cat /user/data/input/test
6.3 執行wordcount
hadoop jar /distributed/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.4.jar wordcount /user/data/input /user/data/output
6.4 進入web管理界面
可以通過localhost:50070進入管理界面
點擊最右邊的utilities —> Browse the file system進入, 輸入文件路徑
可以看到有兩個文件,最終的結果就存在part-r-00000中
搭建成功
推薦閱讀:
※第二章:安裝CentOS
※Hadoop分散式文件系統1-從RAID說起
※世界沉醉在數據里
※觀數科技李科:解決Hadoop應用防護問題,潛在市場規模百億級 | 愛分析訪談
※做好機器學習,數學要學到什麼程度?
TAG:Hadoop |