Ubuntu22.04安装Hadoop3.3.0

Ubuntu22.04安装Hadoop3.3.0

参考

Hadoop安装教程------单机 / 伪分布式配置

一、环境的选择

本教程使用Ubtuntu-22.04做为系统环境,在安装好Ubtuntu系统后,方可继续进行以下操作。

二、创建Hadoop账户

如果你安装 Ubuntu 的时候不是用的 "hadoop" 用户,那么需要增加一个名为 hadoop 的用户。

首先按 ctrl+alt+t 打开终端窗口,输入如下命令创建新用户 :

cpp 复制代码
sudo useradd -m hadoop -s /bin/bash

这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。

给 hadoop用户设置密码,按提示输入两次密码,密码可以为hadoop:

cpp 复制代码
sudo passwd hadoop

为 hadoop 用户增加sudo权限:

cpp 复制代码
sudo adduser hadoop sudo

最后注销当前用户(点击屏幕右上角的齿轮,选择注销),返回登陆界面。在登陆界面中选择刚创建的 hadoop 用户进行登陆。

三、更新apt

用 hadoop 用户登录后,更新一下 apt,执行如下命令:

cpp 复制代码
sudo apt-get update

安装vim:

cpp 复制代码
sudo apt-get install vim

安装软件时若需要确认,在提示处输入 y 即可。

四、安装SSH、配置SSH免密码登录

集群、单节点模式都需要用到 SSH 登陆,Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:

cpp 复制代码
sudo apt-get install openssh-server

安装后,可以使用如下命令登陆本机:

cpp 复制代码
ssh localhost

此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。

但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。

cpp 复制代码
exit                           # 退出刚才的 ssh localhost

下面是一份 从生成 ED25519 密钥对到实现跨节点免密 SSH 登录 的完整、可执行步骤,以 Ubuntu 系统为例(Hadoop 部署常用),全程适配 Hadoop 集群的使用场景。

一、前提说明

  • 操作用户:建议使用 Hadoop 运行用户(如 hadoop),或你当前的 ubuntu 用户;
  • 操作节点:在集群主节点(NameNode) 执行(后续分发公钥到从节点);
  • 核心目标:实现主节点免密登录所有从节点,且从节点可免密登录主节点(可选,Hadoop 部分命令需要)。

二、完整操作步骤

1. 检查并安装 SSH(确保基础环境)
bash 复制代码
# 检查 SSH 是否安装
ssh -V
# 若未安装,执行以下命令安装
sudo apt update && sudo apt install -y openssh-server openssh-client
# 启动 SSH 服务(确保开机自启)
sudo systemctl enable --now ssh
2. 生成 ED25519 密钥对(核心步骤)
bash 复制代码
# 进入 .ssh 目录(无则自动创建)
mkdir -p ~/.ssh && cd ~/.ssh

# 生成 ED25519 密钥对(-t 指定类型,-f 指定文件名,-N 空密码)
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ""

# 执行后输出示例(无需任何手动输入,直接回车即可):
# Generating public/private ed25519 key pair.
# Your identification has been saved in /home/ubuntu/.ssh/id_ed25519
# Your public key has been saved in /home/ubuntu/.ssh/id_ed25519.pub
  • 参数说明:
    • -t ed25519:指定密钥类型为 ED25519(比 RSA 更安全、更快);
    • -f ~/.ssh/id_ed25519:指定私钥文件名(默认就是这个,可省略);
    • -N "":设置空密码(免密登录的核心,避免每次用密钥还要输密码)。
3. 设置密钥文件权限(关键!SSH 对权限敏感)

SSH 严格要求密钥权限,权限错误会直接导致免密登录失败:

bash 复制代码
# 私钥(id_ed25519)必须是 600(仅当前用户可读可写)
chmod 600 ~/.ssh/id_ed25519

# 公钥(id_ed25519.pub)设为 644(只读)
chmod 644 ~/.ssh/id_ed25519.pub

# .ssh 目录设为 700(仅当前用户可访问)
chmod 700 ~/.ssh
4. 分发公钥到目标节点(实现免密登录)

假设你要免密登录的目标节点信息:

  • 目标节点 1:node2(IP:192.168.100.102),用户:hadoop
  • 目标节点 2:node3(IP:192.168.100.103),用户:hadoop
  • 本机(主节点):也需要免密登录自己(Hadoop 脚本会用到)。
步骤 4.1:先授权本机免密登录(必做)
bash 复制代码
# 将公钥添加到本机的 authorized_keys(免密登录自己)
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
# 设置 authorized_keys 权限(必须 600)
chmod 600 ~/.ssh/authorized_keys
步骤 4.2:分发公钥到远程节点(以 node2 为例)-不需要做
bash 复制代码
# 方法 1:用 ssh-copy-id 自动分发(推荐,简化操作)
ssh-copy-id -i ~/.ssh/id_ed25519.pub hadoop@192.168.1.102

# 首次执行会提示验证主机指纹,输入 yes 并回车,然后输入目标节点的 ubuntu 用户密码
# 执行成功后输出:Number of key(s) added: 1

# 方法 2:手动分发(若 ssh-copy-id 不可用)
# 1. 把公钥内容复制到远程节点的 authorized_keys
# scp ~/.ssh/id_ed25519.pub hadoop@192.168.1.102:/tmp/
# 2. 登录远程节点执行:
# ssh hadoop@192.168.1.102
# mkdir -p ~/.ssh && chmod 700 ~/.ssh
# cat /tmp/id_ed25519.pub >> ~/.ssh/authorized_keys
# chmod 600 ~/.ssh/authorized_keys
# rm /tmp/id_ed25519.pub
步骤 4.3:对所有节点重复分发-不需要做
bash 复制代码
# 分发到 node3
ssh-copy-id -i ~/.ssh/id_ed25519.pub hadoop@192.168.1.103
# 若有更多节点,依次执行...
5. 验证免密登录(关键测试)
bash 复制代码
# 测试登录本机(无密码提示则成功)
ssh hadoop@localhost

# 测试登录 node2(无密码提示则成功)-不需要执行,因为还没有
ssh hadoop@192.168.100.102

# 登录成功后,输入 exit 退出远程节点
exit
  • 若仍提示输入密码:
    1. 检查目标节点的 ~/.ssh/authorized_keys 是否有你的公钥;
    2. 检查所有密钥文件权限(尤其是 authorized_keys 必须 600);
    3. 重启目标节点的 SSH 服务:sudo systemctl restart ssh
6. (可选)从节点免密登录主节点

如果需要从节点反向免密登录主节点,需在每个从节点 重复步骤 2-4(生成密钥并分发公钥到主节点),或直接把从节点的公钥手动添加到主节点的 authorized_keys

五、安装Java环境

Hadoop3.3.0需要使用JDK版本在1.8以上,这里采用jdk-8u241-linux-x64_.tar.gz

在Linux命令行界面中,执行如下Shell命令(注意:当前登录用户名是hadoop):

cpp 复制代码
sudo mkdir -p  /opt/software #创建 /opt/software目录用来存放JDK文件
sudo mkdir -p /opt/app # 创建应用存放的空间
cpp 复制代码
# 关键:把目录的 owner 改为 hadoop 用户,group 改为 hadoop 组
sudo chown -R hadoop:hadoop /opt/software /opt/app

# 验证权限(owner 和 group 变为 hadoop)
ls -ld /opt/software /opt/app
cpp 复制代码
cd /opt/software 
sudo tar -zxvf ./jdk-8u241-linux-x64_.tar.gz -C /opt/app  #把JDK文件解压到/opt/app目录下

JDK文件解压缩以后,可以执行如下命令到//opt/app目录查看一下:

cpp 复制代码
cd /opt/app
ls

可以看到,在/usr/lib/jvm目录下有个jdk1.8.0_241目录。

下面继续执行如下命令,设置环境变量:

cpp 复制代码
cd ~
vim ~/.bashrc

上面命令使用vim编辑器(注:vim的使用请参看教程目录)打开了hadoop这个用户的环境变量配置文件,请在这个文件的开头位置,添加如下几行内容:

cpp 复制代码
export JAVA_HOME=/opt/app/jdk1.8.0_241
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

保存.bashrc文件并退出vim编辑器。然后,继续执行如下命令让.bashrc文件的配置立即生效:

cpp 复制代码
source ~/.bashrc

这时,可以使用如下命令查看是否安装成功:

cpp 复制代码
java -version

如果能够在屏如果能够在屏幕上返回如下信息,则说明安装成功:

至此,成功安装了Java环境,下面就可以安装Hadoop了。

六、Hadoop3.3.0的安装

我们选择将 Hadoop 安装至 /opt/app/ 中:

cpp 复制代码
cd ~            #进入hadoop用户的主目录
cd /opt/software       #jdk压缩包默认下载在该位置
sudo tar -zxf /opt/software/hadoop-3.3.0.tar.gz -C /opt/app # 解压到/opt/app中
cpp 复制代码
cd /opt/app/
sudo mv ./hadoop-3.3.0/ ./hadoop            # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop               # 修改文件权限

Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:

cpp 复制代码
cd /opt/app/hadoop
./bin/hadoop version

七、Hadoop单机配置(非分布式)

Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。

现在我们可以执行例子来感受下 Hadoop 的运行。Hadoop 附带了丰富的例子(运行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。

在此我们选择运行 grep 例子,我们将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中。

bash 复制代码
cd /opt/app/hadoop
mkdir ./input
cp ./etc/hadoop/*.xml ./input   # 将配置文件作为输入文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/*          # 查看运行结果

执行成功后如下所示,输出了作业的相关信息,输出的结果是符合正则的单词 dfsadmin 出现了1次

注意:Hadoop 默认不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将 ./output 删除。

cpp 复制代码
rm -r ./output

八、Hadoop伪分布式安装

Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。

Hadoop 的配置文件位于

cpp 复制代码
/opt/app/hadoop/etc/hadoop/

中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

1.修改hadoop-env.sh

你遇到的 ERROR: JAVA_HOME is not set and could not be found 是 Hadoop 启动最常见的错误之一,核心原因是 Hadoop 的 hadoop-env.sh 配置文件中未正确指定 JAVA_HOME 路径。下面我会一步步告诉你需要添加的配置,以及完整的验证和修复步骤。

一、第一步:先找到你的 JAVA_HOME 路径

首先要确认 JDK 安装的实际路径(这是配置的关键,路径错误会导致配置无效):

bash 复制代码
# 方法1:如果已配置全局 JAVA_HOME,直接查看
echo $JAVA_HOME

# 方法2:如果未配置,通过 java 命令找路径(推荐)
which java  # 输出示例:/opt/app/jdk1.8.0_381/bin/java
# 截取到 jdk 根目录(去掉 /bin/java)
# 比如上面的输出,JAVA_HOME 就是 /opt/app/jdk1.8.0_381

# 方法3:通过 update-alternatives 查找(系统级 JDK)
update-alternatives --config java
# 输出示例中会显示 JDK 安装路径,比如 /usr/lib/jvm/java-8-openjdk-amd64

⚠️ 注意:一定要确认路径真实存在 ,执行 ls /opt/app/jdk1.8.0_381(替换为你的路径),确保目录存在。

二、第二步:修改 hadoop-env.sh 配置
hadoop-env.sh 是 Hadoop 核心环境配置文件,需要在其中显式指定 JAVA_HOME

  1. 打开配置文件
bash 复制代码
# 进入 Hadoop 配置目录(你的 Hadoop 安装路径是 /opt/app/hadoop)
cd /opt/app/hadoop/etc/hadoop
# 编辑 hadoop-env.sh
vim hadoop-env.sh
  1. 添加/修改 JAVA_HOME 配置
    在文件中找到 # export JAVA_HOME= 这一行(通常在文件开头),去掉注释(删除 #),并替换为你的实际 JAVA_HOME 路径。

示例配置(根据你的 JDK 路径修改)

bash 复制代码
# 核心配置:指定 JDK 安装根目录(替换为你的实际路径!)
export JAVA_HOME=/opt/app/jdk1.8.0_241

# 可选:防止 Hadoop 自动检测 JAVA_HOME 出错
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin
  1. 保存退出
    在 vim 中按 Esc → 输入 :wq → 回车保存。

三、第三步:验证配置是否生效

修改后先验证配置,避免启动仍报错:

bash 复制代码
# 1. 加载配置并检查 JAVA_HOME
source /opt/app/hadoop/etc/hadoop/hadoop-env.sh
echo $JAVA_HOME  # 输出你的 JDK 路径,说明配置生效




### 2.修改配置文件 core-site.xml
使用下面的命令(注:vim的使用请参看教程目录)

```cpp
cd /opt/app/hadoop/etc/hadoop/
vim core-site.xml

修改配置文件 core-site.xml ,将当中的

xml 复制代码
<configuration>
</configuration>

修改为下面配置:

xml 复制代码
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/opt/app/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

3.修改配置文件 hdfs-site.xml

使用下面的命令:

cpp 复制代码
vim hdfs-site.xml

修改配置文件 hdfs-site.xml

xml 复制代码
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/opt/app/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/opt/app/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

4.Hadoop的启动

配置完成后,执行 NameNode 的格式化:

cpp 复制代码
cd /opt/app/hadoop
./bin/hdfs namenode -format

成功的话,会返回很多行非常长的提示信息。

接着开启 NameNode 和 DataNode 守护进程。

cpp 复制代码
cd /opt/app/hadoop
./sbin/start-dfs.sh          #启动Hadoop

若出现SSH提示信息,输入yes即可。

启动时可能会出现WARN 提示,可以忽略WARN 提示,并不会影响正常使用。

成功启动后,可以访问 Web 界面 http://localhost:9870 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

关闭Hadoop,则运行:

cpp 复制代码
./sbin/stop-dfs.sh

注意:当下次启动 hadoop 时,无需再进行 NameNode 的初始化,只需要运行

cpp 复制代码
./sbin/start-dfs.sh

就可以!

vim使用教程

说明:以下vim使用方法只是在该教程用到的,如想了解更多,请参考菜鸟教程

i 切换到输入模式,以输入字符。

: 切换到底线命令模式,以在最底一行输入命令。

ESC,退出输入模式,切换到命令模式。

q 退出程序。

w 保存文件。

备注:在vim编辑文档时,输入 i 以输入字符;写入文档后,按 Esc 键,输入 :wq 以退出和保存文件。

hadoop-mapreduce-examples实例

Hadoop 的 hadoop-mapreduce-examples 包包含了大量经典的 MapReduce 示例,覆盖了数据统计、排序、计算、文本处理等典型场景,非常适合新手理解 MapReduce 核心思想。以下是基于 Hadoop 3.x(如 3.3.0)版本的常用示例分类及完整运行命令,并附带每个示例的功能说明和运行步骤,方便你实操验证。

一、先确认示例包路径(通用前置步骤)

首先确保你能找到示例 jar 包(路径适配 3.3.0 版本,若版本不同,只需替换 jar 包的版本号):

bash 复制代码
# 进入 Hadoop 安装目录(假设安装在 /opt/app/hadoop-3.3.0)
cd /opt/app/hadoop-3.3.0

# 查看所有可用示例(核心命令)
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar

执行后会输出所有示例列表,下面挑选高频实用示例 详细说明。

二、核心示例及完整运行教程

1. 基础文本处理类
(1)wordcount(最经典:单词计数)
  • 功能:统计文本文件中每个单词的出现次数,MapReduce 入门必测。

  • 运行步骤

    bash 复制代码
    # 1. 创建输入目录并准备测试文本
    ./bin/hdfs dfs -mkdir -p /input
    # 新建本地测试文件(内容自定义,如 hello world hello hadoop)
    echo -e "hello world\nhello hadoop\nhello mapreduce" > test.txt
    # 上传文件到 HDFS 输入目录
    ./bin/hdfs dfs -put test.txt /input/
    
    # 2. 运行 wordcount 示例
    ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount /input /output
    
    # 3. 查看结果(/output 是 HDFS 输出目录,不能提前存在)
    ./bin/hdfs dfs -cat /output/part-r-00000
  • 输出示例

    复制代码
    hadoop  1
    hello   3
    mapreduce       1
    world   1
(2)grep(文本匹配:筛选含指定正则的行)
  • 功能:从文本中筛选出匹配指定正则表达式的行,并统计每行出现次数。

  • 运行步骤

    bash 复制代码
    # 1. 复用上面的 /input/test.txt,匹配含 "hello" 的行
    ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar grep /input /output_grep 'hello'
    
    # 2. 查看结果
    ./bin/hdfs dfs -cat /output_grep/part-r-00000
  • 输出示例hello 3(表示含 "hello" 的行共出现 3 次)。

2. 排序/统计类
(1)terasort(大数据排序:Tera级数据排序)
  • 功能:针对海量数据的高效排序(Hadoop 官方基准测试工具),适合测试集群排序性能。

  • 运行步骤 (先生成测试数据,再排序):

    bash 复制代码
    # 1. 生成 1GB 测试数据(输入目录 /terasort-input)
    ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar teragen 10000000 /terasort-input
    
    # 2. 执行排序(输出目录 /terasort-output)
    ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar terasort /terasort-input /terasort-output
    
    # 3. 验证排序结果(可选)
    ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar teravalidate /terasort-output /terasort-validate
  • 参数说明10000000 表示生成约 1GB 数据(可调整数值,如 1000000 为 100MB)。

(2)sort(基础排序:对输入数据按行排序)
  • 功能:简单的文本行排序,比 terasort 轻量,适合小数据测试。

  • 运行命令

    bash 复制代码
    # 复用 /input/test.txt,排序输出到 /output_sort
    ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar sort /input /output_sort
3. 数值计算类
(1)pi(计算圆周率 π:蒙特卡洛算法)
  • 功能:通过随机数模拟计算圆周率,支持多节点并行计算,测试集群计算能力。

  • 运行命令

    bash 复制代码
    # 参数说明:2(map 任务数) 5(每个 map 任务的采样次数,数值越大越精准)
    ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar pi 2 5
  • 输出示例 (最终会输出 π 的近似值):

    复制代码
    Job Finished in 10.2 seconds
    Estimated value of Pi is 3.20000000000000000000
(2)randomtextwriter(生成随机文本数据)
  • 功能:生成指定大小的随机文本文件,用于测试读写性能。

  • 运行命令

    bash 复制代码
    # 生成 10 个文件,每个文件 100MB,输出到 /random-text
    ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar randomtextwriter -D mapreduce.randomtextwriter.totalbytes=1073741824 /random-text
4. 数据关联/聚合类
(1)join(两表关联:模拟数据库 Join 操作)
  • 功能:对两个数据集按关键字段进行等值连接(类似 SQL 的 JOIN)。

  • 运行步骤

    bash 复制代码
    # 1. 准备两个关联文件
    # 文件 1:用户表(id, name)
    echo -e "1,zhangsan\n2,lisi\n3,wangwu" > user.txt
    # 文件 2:订单表(id, order_id)
    echo -e "1,order001\n2,order002\n3,order003" > order.txt
    # 上传到 HDFS
    ./bin/hdfs dfs -mkdir -p /join-input
    ./bin/hdfs dfs -put user.txt order.txt /join-input/
    
    # 2. 运行 join 示例(按第一列关联)
    ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar join -joinType inner /join-input /output_join
(2)aggregate(通用聚合:自定义统计指标)
  • 功能:无需编写代码,通过参数指定聚合函数(如求和、计数、最大值)统计数据。

  • 运行命令 (统计数字列的总和):

    bash 复制代码
    # 准备含数字的文件(如 10 20 30 40)
    echo -e "10\n20\n30\n40" > num.txt
    ./bin/hdfs dfs -put num.txt /input/
    # 按 SUM 聚合第一列数字
    ./bin/hadoop jar ./share/hadoop/mapreduce-examples-3.3.0.jar aggregate -D aggregate.mapreduce.aggregation.type=SUM /input /output_aggregate
5. 其他实用示例
示例名称 功能说明 核心运行命令(简化版)
count 统计输入文件的行数、单词数、字符数 hadoop jar ... count /input /output_count
distcp 分布式拷贝(跨 HDFS 集群/节点拷贝数据) hadoop jar ... distcp hdfs://node1/input hdfs://node2/output
sleep 模拟长时间运行的任务(测试集群资源占用) hadoop jar ... sleep 100(休眠 100 秒)
wordmean 计算文本中单词长度的平均值 hadoop jar ... wordmean /input /output_mean
wordmedian 计算文本中单词长度的中位数 hadoop jar ... wordmedian /input /output_median

三、通用注意事项

  1. 输出目录必须不存在 :HDFS 不允许输出目录提前存在,运行前需删除旧目录(./bin/hdfs dfs -rm -r /output);
  2. 权限问题 :确保 hadoop 用户对 HDFS 目录有读写权限(避免 Permission denied);
  3. 本地模式 vs 集群模式:以上命令在本地模式(非分布式)下也可运行,Hadoop 会自动适配;
  4. 资源调整 :运行大数据量示例(如 terasort)时,可通过 -D mapreduce.job.maps=4 调整 Map 任务数。

总结

  1. Hadoop 示例包覆盖文本处理、排序、计算、关联 等核心场景,wordcount/pi/terasort 是新手必练的经典示例;
  2. 所有示例运行的核心格式:hadoop jar 示例jar包 示例名称 输入路径 输出路径 [参数]
  3. 关键注意点:HDFS 输出目录需提前删除,确保 hadoop 用户有目录操作权限。

通过这些示例的实操,你可以快速理解 MapReduce "分而治之"的核心思想,也能验证 Hadoop 环境是否配置正常。

相关推荐
qq5680180763 小时前
HDFS的架构优势与基本操作
hadoop·hdfs·架构
dinl_vin3 小时前
Hive 深度解析:从原理到实践
数据仓库·hive·hadoop
Francek Chen4 小时前
【大数据存储与管理】分布式数据库HBase:03 HBase数据模型
大数据·数据库·hadoop·分布式·hdfs·hbase
旺仔Sec15 小时前
2026年广东省职业院校技能大赛中职组“大数据应用与服务“赛项任务书(三)
大数据·hadoop
晨曦54321020 小时前
CentOS网络配置全解析:从ifconfig到实战
hadoop·虚拟机
Elieal1 天前
Tomcat面试
数据仓库·hive·hadoop
网络工程小王2 天前
【大数据技术详解】——HDFS技术(学习笔记)
hadoop·hdfs·big data
王的宝库2 天前
MapReduce / Hive / Pig :从底层批处理到 SQL/脚本落地
hive·hadoop·sql·mapreduce
升职佳兴2 天前
告别 nohup:Hive Metastore 交给 systemd 托管的完整步骤
数据仓库·hive·hadoop