Hadoop依賴於Java運行環境,因此需要先安裝Java運行環境,再安裝部署Hadoop。
安裝
以2.9.2爲例進行說明(因winutils最高支持到2.9.2)。
- 到Hadoop網站
http://hadoop.apache.org/releases.html
下載二進制版本;解壓到目標路徑(如D:\hadoop); - 到github網站
https://github.com/cdarlint/winutils
下載winutils(編譯好的hadoop的windows版本二進制文件);複製到hadoop安裝目錄下的bin目錄。
啓動
文件複製好後,按照第二節的方式修改配置文件,然後格式化文件系統。在bin目錄下執行:hdfs namenode -format
。
格式化完成後,到sbin目錄下,啓動hadoop:start-all.cmd
。
通過執行stop-all.cmd
停止Hadoop。
查看
在瀏覽器中訪問http://localhost:50070
查看Hadoop狀態。
訪問http://localhost:8088
查看集羣狀態。
配置文件修改
配置文件在安裝目錄的etc目錄下,修改以下文件後,格式化完文件系統即可啓動Hadoop了。
core-site.xml
添加
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml
replication設置爲1,避免standalone模式時提示文件複製出錯(默認情況下,文件需要存放三份)。
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///D:/hadoop/data/dfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///D:/hadoop/data/dfs/datanode</value>
</property>
</configuration>
mapred-site.xml
將mapred-site.xml.template重命名爲mapred-site.xml,然後添加(以使用yarn管理資源爲例)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
添加
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
常用端口說明
參數 | 說明 | 默認值 | 配置文件 | 示例 |
---|---|---|---|---|
fs.default.name namenode | namenode RPC交互端口 | 8020 | core-site.xml | hdfs://master:8020/ |
dfs.http.address | NameNode web管理端口 | 50070 | hdfs- site.xml | 0.0.0.0:50070 |
dfs.datanode.address | datanode 控制端口 | 50010 | hdfs- site.xml | 0.0.0.0:50010 |
dfs.datanode.ipc.address | datanode的RPC服務器地址和端口 | 50020 | hdfs- site.xml | 0.0.0.0:50020 |
dfs.datanode.http.address | datanode的HTTP服務器和端口 | 50075 | hdfs- site.xml | 0.0.0.0:50075 |
出錯處理
JAVA_HOME帶空格
Hadoop在處理帶有空格的Java路徑時,會存在問題。若Java安裝在帶空格的目錄下,需修改libexec\hadoop-config.cmd
文件:
%JAVA_HOME%\bin\java.exe
加上雙引號"%JAVA_HOME%\bin\java.exe"
set JAVA=%JAVA_HOME%\bin\java
加上雙引號set JAVA="%JAVA_HOME%\bin\java"
- for循環中增加usebackq選項:
for /f "usebackq delims=" %%A in ('%JAVA% -Xmx32m %HADOOP_JAVA_PLATFORM_OPTS% -classpath "%CLASSPATH%" org.apache.hadoop.util.PlatformName') do set JAVA_PLATFORM=%%A
啓動出錯
通過start-all啓動Hadoop時,若報找不到文件:
- 設置環境變量
HADOOP_BIN_PATH
爲Hadoop的bin目錄; - 修改start-dfs.cmd和start-yarn.cmd兩個批處理文件,在
start hadoop **
與start yarn **
前設定當前目錄爲HADOOP_BIN_PATH
(即添加cd /d %HADOOP_BIN_PATH%
)。
停止出錯
通過Stop-all停止Hadoop時,若提示找不到活動的任務,則說明TaskKill殺進程時未找到對應的運行程序(通過查找窗口標題):
- 修改stop-dfs.cmd和stop-yarn.cmd中的
TaskKill /FI "WINDOWTITLE eq **"
(把要查找的標題,修改爲真實的命令行窗口標題即可)。