# Windows Eclipse 遠程連接 Hadoop 集群并提交任務運行指南
## 目錄
1. [環境準備](#環境準備)
2. [Hadoop 集群配置](#hadoop-集群配置)
3. [Eclipse 插件安裝](#eclipse-插件安裝)
4. [遠程連接配置](#遠程連接配置)
5. [MapReduce 項目創建](#mapreduce-項目創建)
6. [任務提交與監控](#任務提交與監控)
7. [常見問題解決](#常見問題解決)
8. [最佳實踐](#最佳實踐)
---
## 環境準備
### 硬件/軟件要求
- **Windows 系統**:Windows 10/11 64位
- **Java 環境**:JDK 1.8+(需與Hadoop版本兼容)
- **Eclipse IDE**:Eclipse IDE for Java Developers 2023-03 或更新版本
- **Hadoop 集群**:Apache Hadoop 3.x(已啟用遠程訪問)
### 網絡要求
- 確保Windows主機與Hadoop集群網絡互通
- 開放必要端口(默認8020/9000用于HDFS,8088用于YARN)
---
## Hadoop 集群配置
### 1. 核心配置文件修改
修改Hadoop集群的以下配置文件(需重啟服務生效):
```xml
<!-- core-site.xml -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
<property>
<name>hadoop.proxyuser.[eclipse_user].hosts</name>
<value>*</value>
</property>
<!-- yarn-site.xml -->
<property>
<name>yarn.resourcemanager.address</name>
<value>resourcemanager:8032</value>
</property>
# 在集群節點執行:
hdfs dfs -chmod -R 777 /user
hdfs dfs -mkdir /tmp
hdfs dfs -chmod -R 777 /tmp
dropins
目錄MyHadoopCluster
resourcemanager:8032
hdfs://namenode:9000
右鍵項目 → Build Path → Configure Build Path
添加外部JARs:
- $HADOOP_HOME/share/hadoop/common/*.jar
- $HADOOP_HOME/share/hadoop/mapreduce/*.jar
在 Project Explorer 中: 1. 展開 DFS Locations → MyHadoopCluster 2. 應能看到HDFS目錄結構
File → New → Project → Map/Reduce Project
public class WordCount {
public static class TokenizerMapper
extends Mapper<Object, Text, Text, IntWritable>{
// mapper實現...
}
public static class IntSumReducer
extends Reducer<Text,IntWritable,Text,IntWritable> {
// reducer實現...
}
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
Job job = Job.getInstance(conf, "word count");
// 完整配置...
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}
# 在HDFS創建測試文件
hdfs dfs -put localfile.txt /input/wordcount
右鍵項目 → Run As → Run Configurations:
- Main Class: WordCount
- Program Arguments: /input/wordcount /output/result
- VM Arguments: -Dhadoop.home.dir=C:/hadoop
方式 | 優點 | 缺點 |
---|---|---|
本地模式 | 快速調試 | 無法測試集群特性 |
集群提交 | 真實環境測試 | 依賴網絡連接 |
http://resourcemanager:8088
java.net.ConnectException: Call From WIN10/192.168.1.2 to namenode:9000 failed
解決方案: - 檢查防火墻設置 - 驗證主機名解析(建議配置hosts文件)
org.apache.hadoop.security.AccessControlException: Permission denied
解決方案:
hdfs dfs -chmod 777 /user/[username]
java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.addDeprecation
解決方案: - 確保所有Hadoop JAR包版本一致 - 清理重復依賴項
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
job.setNumReduceTasks(10);
git clone https://github.com/hadoop-examples/wordcount.git
”`
注:實際使用時請替換:
1. namenode
/resourcemanager
為實際主機名/IP
2. 端口號根據集群配置調整
3. 示例路徑根據實際HDFS結構修改
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。