首页主机资讯如何在Ubuntu上利用HDFS进行大数据处理

如何在Ubuntu上利用HDFS进行大数据处理

时间2025-11-25 12:04:04发布访客分类主机资讯浏览219
导读:在 Ubuntu 上使用 HDFS 进行大数据处理的实操指南 一 环境准备与安装 安装 Java(推荐 OpenJDK 8,Hadoop 3.x 系列对该版本兼容性更好): 执行:sudo apt update && s...

在 Ubuntu 上使用 HDFS 进行大数据处理的实操指南

一 环境准备与安装

  • 安装 Java(推荐 OpenJDK 8,Hadoop 3.x 系列对该版本兼容性更好):
    • 执行:sudo apt update & & sudo apt install -y openjdk-8-jdk
    • 验证:java -version
  • 安装与配置 SSH(用于节点间通信,单机也建议配置免密登录):
    • 执行:sudo apt install -y openssh-server
    • 生成密钥:ssh-keygen -t rsa -P ''
    • 免密登录本机:cat ~/.ssh/id_rsa.pub > > ~/.ssh/authorized_keys & & chmod 600 ~/.ssh/authorized_keys
    • 测试:ssh localhost
  • 下载并解压 Hadoop(示例版本 3.3.6):
    • 执行:wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
    • 解压:sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/ & & sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop
  • 配置环境变量(写入 ~/.bashrc/etc/profile):
    • 内容:
      export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
      export HADOOP_HOME=/usr/local/hadoop
      export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
      
    • 生效:source ~/.bashrc

二 配置 HDFS 与 YARN

  • 核心配置($HADOOP_HOME/etc/hadoop/)
    • core-site.xml
      <
          configuration>
          
        <
          property>
          
          <
          name>
          fs.defaultFS<
          /name>
          
          <
          value>
          hdfs://localhost:9000<
          /value>
          
        <
          /property>
          
      <
          /configuration>
          
      
    • hdfs-site.xml(单机副本设为 1,并指定本地数据目录)
      <
          configuration>
          
        <
          property>
          
          <
          name>
          dfs.replication<
          /name>
          
          <
          value>
          1<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.namenode.name.dir<
          /name>
          
          <
          value>
          /usr/local/hadoop/hdfs/namenode<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.datanode.data.dir<
          /name>
          
          <
          value>
          /usr/local/hadoop/hdfs/datanode<
          /value>
          
        <
          /property>
          
      <
          /configuration>
          
      
    • mapred-site.xml(使用 YARN 作为执行框架)
      <
          configuration>
          
        <
          property>
          
          <
          name>
          mapreduce.framework.name<
          /name>
          
          <
          value>
          yarn<
          /value>
          
        <
          /property>
          
      <
          /configuration>
          
      
    • yarn-site.xml
      <
          configuration>
          
        <
          property>
          
          <
          name>
          yarn.nodemanager.aux-services<
          /name>
          
          <
          value>
          mapreduce_shuffle<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          yarn.nodemanager.aux-services.mapreduce.shuffle.class<
          /name>
          
          <
          value>
          org.apache.hadoop.mapred.ShuffleHandler<
          /value>
          
        <
          /property>
          
      <
          /configuration>
      
      
  • 创建本地数据目录并赋权:
    • 执行:sudo mkdir -p /usr/local/hadoop/hdfs/{ namenode,datanode}
    • 赋权(如使用 hdfs 用户):sudo chown -R hdfs:hdfs /usr/local/hadoop/hdfs
  • 首次启动前格式化 NameNode:
    • 执行:hdfs namenode -format

三 启动与验证

  • 启动服务:
    • 仅 HDFS:start-dfs.sh
    • HDFS + YARN:start-dfs.sh & & start-yarn.sh
  • 进程健康检查:
    • 执行:jps
    • 期望看到:NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager
  • Web 管理界面(注意 Hadoop 3.x 与 2.x 端口差异):
    • HDFS NameNode:http://localhost:9870
    • YARN ResourceManager:http://localhost:8088
  • 若启用了防火墙,放行端口(示例 UFW):
    • 执行:sudo ufw allow 9000,9870,8088

四 HDFS 基本操作与示例作业

  • 基本文件操作(HDFS Shell)
    • 创建用户目录:hdfs dfs -mkdir -p /user/$USER
    • 上传文件:hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /user/$USER/input
    • 查看文件:hdfs dfs -cat /user/$USER/input/*.xml | head
    • 下载结果:hdfs dfs -get /user/$USER/output ./output
    • 删除目录:hdfs dfs -rm -r /user/$USER/output
  • 运行内置示例(单词计数)
    • 执行:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep /user/$USER/input /user/$USER/output 'dfs[a-z.]+'
    • 查看结果:hdfs dfs -cat /user/$USER/output/*
  • 常用补充
    • 列出目录:hdfs dfs -ls /user/$USER
    • 复制/移动:hdfs dfs -cp input/my.txt /inputhdfs dfs -mv input/my.txt /input2

五 常见问题与优化建议

  • 无法访问 Web UI
    • 确认服务已启动(jps)、端口未被占用、以及本机/服务器防火墙已放行(如 9870/8088)。
  • 权限错误
    • 若以 hdfs 用户运行,确保 HDFS 目录属主为 hdfs:hdfs;或在命令前加 sudo -u hdfs 执行相关 HDFS 操作。
  • 数据块副本与容错
    • 单机伪分布式副本只能设为 1;多节点集群建议将 dfs.replication 设为 3 以提升容错性。
  • 版本与端口差异
    • Hadoop 3.x 的 NameNode Web 默认端口为 9870(2.x 为 50070),访问时请核对版本。
  • 性能与稳定性
    • 合理设置 HDFS 数据目录到性能更好的磁盘;YARN 可根据内存与 CPU 核数调整容器资源;大数据量作业优先使用 YARN 模式以获得更好的资源调度与扩展性。

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


若转载请注明出处: 如何在Ubuntu上利用HDFS进行大数据处理
本文地址: https://pptw.com/jishu/755418.html
Debian Java项目如何进行测试 Ubuntu MinIO更新频繁吗

游客 回复需填写必要信息