windows下搭建hadoop
- 下載下傳
- 環境變量
- windows 腳本替換
- 配置
- windows權限
- 啟動
- 單詞統計執行個體
下載下傳
首先去Apache Hadoop下載下傳hadoop的安裝包
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SOyIDO1YjY5EjNyAjNmhDZyYzXyITN0QTMxIzLcdDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
選擇二進制檔案即可
選擇國内鏡像增加下載下傳速度
下載下傳後解壓到檔案夾
環境變量
設定環境變量
HADOOP_HOME
然後把
HADOOP_HOME
加入
Path
中
打開cmd,輸入
hadoop version
驗證
windows 腳本替換
到cdarlint/winutils: winutils.exe hadoop.dll and hdfs.dll binaries for hadoop windows (github.com)下載下傳全部版本的腳本,并解壓
需要注意的是,盡可能選擇這裡面有的hadoop版本。比如2.9.2版本。
将裡面的檔案全部拷貝到hadoop下的bin目錄中,并選擇替換
配置
首先在hadoop目錄下建立一個臨時檔案夾,用于hadoop存儲臨時檔案。
否則hadoop預設會在c盤建立臨時檔案夾,這時會因為權限的問題,導緻無法建立,是以最好是在hadoop目錄下建立臨時檔案夾,而且盡可能不要把hadoop放在C槽。
配置
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9820</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/E:/hadoop/hadoop-2.9.2/tmp</value>
</property>
</configuration>
接着在hadoop目錄下建立data檔案夾,用于hadoop存儲持久化資料,在data目錄下建立namenode和datanode檔案夾
配置
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///E:/hadoop/hadoop-2.9.2/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///E:/hadoop/hadoop-2.9.2/data/datanode</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>http://localhost:9870</value>
</property>
</configuration>
配置
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置
yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>Yarn Node Manager Aux Service</description>
</property>
</configuration>
注意上述檔案如果在hadoop/etc/hadoop下無法找到的,請找到相同檔案名的
.template
檔案拷貝,并删除
.tamplate
字尾
windows權限
此時直接啟動,會出現建立符号的異常,這是因為在window系統中,隻有管理者才能建立符号連結。
此時有兩種解決方式,第一種使用管理者的cmd啟動
hadoop/sbar/start-all.cmd
;第二種是給自己登入的使用者賦予建立符号連結的權限。
第一種,使用管理者的cmd
第二種,使用win+r打開運作,輸入
gpedit.msc
,在【計算機配置】-【Windows設定】-【安全設定】-【本地政策】-【使用者權限配置設定】-【建立符号連結】中加入自己登入的使用者或使用者組,然後重新開機系統生效。
啟動
第一次啟動需要初始化名位元組點,初始化名位元組點之前請確定
hadoop/data/namenode
檔案夾為空,然後在cmd(管理者)中輸入
hadoop namenode -format
請注意空格。
這樣就初始化成功了。
然後切換到hadoop所在的驅動器,并切換到hadoop目錄下
接着進入sbin目錄,并啟動
start-all.cmd
接着會啟動4個cmd視窗
這樣就啟動成功了
接着在浏覽器中通路
http://localhost:9870
驗證
單詞統計執行個體
我們首先建立三個txt檔案
然後給檔案裡面随便寫點東西,接着在hadoop的hdfs中建立
/input
目錄(這裡可以使用普通的cmd)
hadoop fs -mkdir /input
接着把三個txt檔案上傳到hdfs中
hadoop fs -put yourpath\1.txt /input
hadoop fs -put yourpath\2.txt /input
hadoop fs -put yourpath\2.txt /input
然後檢視
hadoop fs -ls /input
你也可以在浏覽器中檢視
接着調用單詞統計的例子
執行指令
hadoop jar yourPath\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.9.2.jar wordcount /input /output
就會開始執行
等待一會執行完畢即可
執行的結果會儲存在hdfs的
/output
目錄下
hadoop fs -ls /output
檢視結果