首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Win7 下 Eclipse 開發 Hadoop 應用環境搭建:Cygwin 與 SSH 免密登錄關鍵步驟

     編輯:程式設計綜合問答

架構釐清

Hadoop 官方原生支持 Linux/Unix。Windows 下有兩種模式:

  • 本地模式: 單機單進程,無需 Hadoop 守護進程,適合單元測試,**不需 Cygwin**。
  • 偽分佈式/完全分佈式: 需啟動 HDFS/YARN 守護進程,依賴 SSH 免密登錄、**必須 Cygwin** 提供 Linux 兼容層 (bash, ssh, pdsh 等)。

Cygwin 安裝與配置核心步驟

  1. 安裝包選擇: openssh, openssl, rsync, procps, cygrunsrv (將服務註冊為 Windows 服務)。
  2. 配置 SSH 服務:
    # Cygwin 終端以管理員運行
    ssh-host-config -y
    # 按提示設置權限、服務名 (CYGWIN sshd)、啟動方式
    cygrunsrv --start sshd
    
  3. 免密登錄驗證:
    
    ssh-keygen -t rsa -P ""
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    ssh localhost  # 應無需密碼直接登錄
    
  4. 環境變量: 將 C:\cygwin64\bin 加入系統 PATH;設置 HADOOP_HOME、JAVA_HOME (JDK 1.8+)。

Eclipse 整合要點

  • 安裝 Hadoop Eclipse Plugin (針對版本匹配的 hadoop-eclipse-plugin-x.x.x.jar 放入 eclipse/plugins 重啟)。
  • 配置 Map/Reduce 透視圖:Window > Preferences > Hadoop 設置 Hadoop location 為 Cygwin 路徑 (如 /cygdrive/c/hadoop-3.3.4)。
  • Run Configurations 中 Hadoop Job 類型,主類設置正確,參數傳遞 -conf 指向 core-site.xml 等配置。

常見報錯對應

錯誤現象原因解決
java.net.ConnectException: Connection refusedSSH 服務未啟動 / 端口 22 被佔用netstat -ano | findstr :22,殺佔用進程,重啟 cygrunsrv -E sshd
Permission denied (publickey,password,keyboard-interactive)免密未生效 / authorized_keys 權限錯誤重做 ssh-keygen 步驟,確保 chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys
Cygwin warning: MS-DOS style path detected路徑混用 Windows/Cygwin 格式統一使用 Cygwin 路徑 /cygdrive/c/...,Hadoop 配置文件亦同

現代替代方案建議

  • WSL 2 (Windows Subsystem for Linux): 原生 Linux 內核,完美運行 Hadoop/Spark,無 Cygwin 兼容層性能損耗,強烈推薦 Win 10/11 開發者遷移。
  • Docker Desktop: 拉取 sequenceiq/hadoop-docker 或自構建鏡像,容器化隔離環境,跨平台一致。
  • 雲端開發: 阿里雲 EMR / AWS EMR / GCP Dataproc + VS Code Remote SSH,本地零配置。

Win7 + Cygwin + Hadoop 屬於「考古級」組合,教學/維護舊項目可用,新項目請直接擁抱 WSL 2 或容器化/雲原生開發模式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved