首页主机资讯如何在Ubuntu上使用Hadoop命令行

如何在Ubuntu上使用Hadoop命令行

时间2025-10-29 23:39:03发布访客分类主机资讯浏览985
导读:一、前置准备:安装Java环境 Hadoop依赖Java运行环境,需先安装OpenJDK 11(推荐): sudo apt update sudo apt install openjdk-11-jdk # 验证安装 java -versio...

一、前置准备:安装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文件系统操作

  • 查看HDFS根目录文件列表
    hdfs dfs -ls /
    
  • 递归查看目录内容
    hdfs dfs -ls -R /
    
  • 创建HDFS目录-p参数自动创建父目录):
    hdfs dfs -mkdir -p /user/hadoop/input
    
  • 上传本地文件到HDFS
    hdfs dfs -put ~/local_file.txt /user/hadoop/input/
    
  • 下载HDFS文件到本地
    hdfs dfs -get /user/hadoop/input/local_file.txt ~/downloaded_file.txt
    
  • 删除HDFS文件/目录-r递归删除目录):
    hdfs dfs -rm -r /user/hadoop/input/
    

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

七、常见问题排查

  • 端口占用:若启动时报“端口已被占用”,可通过sudo lsof -i :9000(HDFS端口)或sudo lsof -i :8088(YARN端口)查看占用进程,用kill -9 < PID> 终止。
  • 权限问题:确保HDFS数据目录(dfs.namenode.name.dirdfs.datanode.data.dir)有正确的读写权限(chown -R $USER:$USER /usr/local/hadoop/data)。
  • Java环境错误:若出现JAVA_HOME not set,需检查~/.bashrc中的JAVA_HOME配置并重新加载。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Ubuntu上使用Hadoop命令行
本文地址: https://pptw.com/jishu/738329.html
Ubuntu Hadoop日志文件在哪查看 Ubuntu Hadoop资源管理如何优化

游客 回复需填写必要信息