ubuntu

如何在Ubuntu上使用Hadoop命令行

小樊
49
2025-10-29 13:34:22
栏目: 智能运维

一、前置准备:安装Java环境

Hadoop依赖Java运行环境,需先安装OpenJDK 11(推荐):

sudo apt update
sudo apt install openjdk-11-jdk
# 验证安装
java -version  # 应输出Java版本信息
javac -version # 验证编译器

二、下载并解压Hadoop

  1. 从Apache官网下载稳定版Hadoop(如3.3.1):
    wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
    
  2. 解压到/usr/local目录(需管理员权限):
    sudo tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local/
    
  3. (可选)重命名解压后的目录以便管理:
    sudo mv /usr/local/hadoop-3.3.1 /usr/local/hadoop
    

三、配置环境变量

编辑当前用户的~/.bashrc文件(仅影响当前用户),添加Hadoop路径:

nano ~/.bashrc

在文件末尾添加以下内容(替换/usr/local/hadoop为实际解压路径):

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

保存后使配置生效:

source ~/.bashrc

验证环境变量

echo $HADOOP_HOME  # 应输出Hadoop安装路径
hadoop version     # 应显示Hadoop版本信息

四、配置Hadoop核心文件

进入Hadoop配置目录($HADOOP_HOME/etc/hadoop),修改以下文件:

1. core-site.xml(HDFS默认文件系统)

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value> <!-- 单机模式指向本地 -->
    </property>
</configuration>

2. hdfs-site.xml(HDFS配置)

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value> <!-- 单机模式副本数设为1 -->
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/data/namenode</value> <!-- NameNode数据目录 -->
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop/data/datanode</value> <!-- DataNode数据目录 -->
    </property>
</configuration>

3. mapred-site.xml(MapReduce框架)

若文件不存在,先复制模板:

cp mapred-site.xml.template mapred-site.xml

修改内容:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value> <!-- 使用YARN作为资源管理器 -->
    </property>
</configuration>

4. yarn-site.xml(YARN配置)

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value> <!-- Shuffle服务 -->
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>localhost</value> <!-- 单机模式ResourceManager指向本地 -->
    </property>
</configuration>

五、格式化HDFS并启动集群

  1. 格式化HDFS(首次启动前必须执行,清除旧数据):
    hdfs namenode -format
    
  2. 启动HDFS和YARN
    start-dfs.sh   # 启动HDFS(NameNode、DataNode)
    start-yarn.sh  # 启动YARN(ResourceManager、NodeManager)
    
  3. 验证进程
    jps
    
    正常输出应包含以下进程:
    • NameNode(HDFS主节点)
    • DataNode(HDFS数据节点)
    • ResourceManager(YARN资源管理器)
    • NodeManager(YARN节点管理器)

六、常用Hadoop命令行操作

1. HDFS文件系统操作

2. MapReduce作业提交

运行Hadoop自带的WordCount示例(统计文本词频):

# 输入目录(需提前创建并上传文件)
hdfs dfs -mkdir -p /input
hdfs dfs -put ~/local_text.txt /input/

# 执行WordCount
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output

# 查看输出结果
hdfs dfs -cat /output/part-r-00000

七、常见问题排查

0
看了该问题的人还看了