溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么配置Hadoop單機模式并運行Wordcount

發布時間:2021-12-10 09:52:44 來源:億速云 閱讀:305 作者:iii 欄目:云計算
# 怎么配置Hadoop單機模式并運行Wordcount

## 一、Hadoop單機模式簡介

單機模式(Standalone Mode)是Hadoop最簡單的運行模式,適合初學者快速驗證基礎功能。該模式下:
- 不使用HDFS文件系統
- 不啟動任何守護進程(如NameNode/DataNode)
- 直接在本地文件系統運行MapReduce程序

## 二、環境準備

### 1. 系統要求
- Linux/MacOS系統(Windows需使用WSL)
- Java 8或11(推薦OpenJDK)
- 至少2GB空閑內存

### 2. 軟件下載
```bash
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzvf hadoop-3.3.6.tar.gz
cd hadoop-3.3.6

三、配置單機模式

1. 設置環境變量

編輯~/.bashrc文件:

export HADOOP_HOME=/path/to/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin

2. 驗證安裝

hadoop version
# 應顯示版本信息如:
# Hadoop 3.3.6
# Source code repository...

四、運行WordCount示例

1. 準備測試文件

創建輸入目錄和測試文件:

mkdir input
echo "Hello World Hello Hadoop" > input/file1.txt
echo "Goodbye Hadoop Goodbye MapReduce" > input/file2.txt

2. 運行WordCount程序

Hadoop自帶示例JAR包:

hadoop jar \
  $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar \
  wordcount input output

3. 查看結果

cat output/part-r-00000
# 預期輸出:
# Goodbye 2
# Hadoop  2
# Hello   2
# MapReduce   1
# World   1

五、原理解析

1. WordCount執行流程

  1. Input階段:將文本文件拆分為<行號, 文本行>鍵值對
  2. Map階段:生成<單詞, 1>的中間結果
  3. Shuffle階段:按單詞分組
  4. Reduce階段:統計每組的總數

2. 關鍵代碼邏輯

查看示例源碼(偽代碼):

// Mapper
map(LongWritable key, Text value, Context context) {
  String[] words = value.toString().split(" ");
  for (String word : words) {
    context.write(new Text(word), new IntWritable(1));
  }
}

// Reducer
reduce(Text key, Iterable<IntWritable> values, Context context) {
  int sum = 0;
  for (IntWritable val : values) {
    sum += val.get();
  }
  context.write(key, new IntWritable(sum));
}

六、常見問題解決

1. Java環境問題

錯誤現象:

Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

解決方案:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

2. 輸出目錄已存在

錯誤現象:

Output directory output already exists

解決方案:

rm -rf output

3. 權限問題

錯誤現象:

Permission denied: user=root, access=WRITE...

解決方案:

chmod -R 777 /tmp/hadoop-${USER}

七、進階學習建議

  1. 代碼調試

    HADOOP_ROOT_LOGGER=DEBUG,console hadoop jar [jarfile]
    
  2. 性能監控

    # 查看任務日志
    ls $HADOOP_HOME/logs/userlogs/
    
  3. 下一步學習

    • 偽分布式模式配置
    • 使用Maven編譯自定義MapReduce程序
    • 學習YARN資源調度機制

提示:單機模式僅用于功能驗證,實際開發建議使用偽分布式或完全分布式模式 “`

(全文約1050字,實際字數可能因格式略有差異)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女