Hadoop 在Windows環境下的搭建教程
搞了一個下午,在Linux和Windows下都成功了,步驟相差不大。一些小問題,google一下就能解決。但還是推薦在linux下搭建,很容易切穩定。
1.必要條件
Cygwin :我的版本是目前最新的2.774
java JDK
hadoop 0.20.2 迅雷連接(有可能已經失效):thunder://QUFodHRwOi8vZGwuY3IxNzMuY29tLy9zb2Z0My9oYWRvb3AuemlwWlo=
eclipse
2. java安裝
具體參考百度。。。。。
3.Cygwin的安裝
可以按照默認的提示安裝到自己需要存放的位置,但是在安裝時需要注意下面幾點:
- Net 下的:openssh,openssl
- Base 下的:sed (若需要Eclipse,必須sed)
- Devel 下的:subversion(建議安裝)
不同的版本可能有所不同,但是基本操作沒有變化。。。。
CygWin的bin目錄以及usr/sbin 追加到系統環境變量PATH中。
4.啟動SSH服務
以管理員權限運行Cygwin,並輸入
SSH-HOST-CONFIG
接下來,系統會提示以下信息
should privilege separation be used ? 回答:no if sshd should be installed as service? 回答:yes the value of CYGWIN environment variable 輸入: ntsec
成功的話,會有下面的提示
Host configuration finished. Have fun!
不要高興太早,我們還需要在Windows服務中,開啟Cygwin服務。
還有活要干。。。
在Cygwin下操作:
- 輸入ssh-keygen,回車直到完成輸出
- 進入~/.ssh,cd ~/.ssh
- 復制,cp id_rsd.pub anthorized_keys
- 退出,exit
如果沒有任何問題的話,應該是完成了。
輸入ssh localhost開啟SSH服務。(PS:這里我一直都是錯誤的,不知道為啥我重啟下了電腦,好了)
5.hadoop安裝
下載hadoop,解壓縮到Cygwin下,修改名稱為hadoop,方便使用。這里只部署在一個機器上。
需要我們首先修改一些Hadoop的配置信息(這里的端口9000和9001確保沒有被占用,也可改變為其他):
- hadoop-env.sh
- core-site.xml
- hdfs-site.xml
- mapred-site.xml
//打開hadoop/conf/hadoop-env.sh文件 export JAVA_HOME=/usr/lib/jvm/java
//打開conf/core-site.xml文件 <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>
//打開conf/mapred-site.xml文件 <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>
//打開conf/hdfs-site.xml文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration> <property> <name>dfs.name.dir</name> <value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value> </property> <property> <name>dfs.data.dir</name> <value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
可以啟動hadoop了,激動~~
1.創建Logs日志目錄
mkdir logs
2.格式化namenode,創建HDFS(這要進入hadoop文件夾內操作)
bin/hadoop namenode -format
3.啟動hadoop
bin/start-all.sh
4.執行JPS
完成啟動~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6.配置eclipse
Hadoop自帶eclipse插件,在hadoop\contrib\eclipse-plugin中。
具體配置步驟如下:
hadoop-0.20.2-eclipse-plugin.jar放入eclipse的插件文件夾中,開啟eclipse。
window->Preference->Hadoop Map/Reduce,輸入hadoop文件夾位置。
window->Show View,選擇Map/Reduce Locations。
點擊屏幕右下方新建一個Location.
編輯Location.(注意MAP/REDUCE和DFS的Port分別對應mapred-site.xml和core-site.xml),高級的我設置了Hadoop.tmp.dir
這時,打開Project Explore,刷新。
接下來,你可以new一個MapReduce程序了,找到hadoop的例子試試去吧。
對了,編譯這里要配置一下。
選擇Run Configurations->Java Application->Arguments,這里要填入為兩個文件,分別為輸入文件和輸出文件。