首页主机资讯Ubuntu如何利用Hadoop进行大数据分析

Ubuntu如何利用Hadoop进行大数据分析

时间2026-01-22 03:03:04发布访客分类主机资讯浏览344
导读:在 Ubuntu 上使用 Hadoop 进行大数据分析 一、环境准备与安装 安装 Java(Hadoop 3.x 建议使用 JDK 8 或 JDK 11): 安装 OpenJDK 11:sudo apt update &&...

在 Ubuntu 上使用 Hadoop 进行大数据分析

一、环境准备与安装

  • 安装 Java(Hadoop 3.x 建议使用 JDK 8JDK 11):
    • 安装 OpenJDK 11:sudo apt update & & sudo apt install -y openjdk-11-jdk
    • 验证:java -version、javac -version
  • 创建专用用户与 SSH 免密(便于本机伪分布式与后续集群扩展):
    • sudo adduser hadoop & & sudo usermod -aG sudo hadoop & & su - hadoop
    • sudo apt install -y openssh-server
    • ssh-keygen -t rsa -b 2048 -N “” -f ~/.ssh/id_rsa
    • cat ~/.ssh/id_rsa.pub > > ~/.ssh/authorized_keys & & chmod 600 ~/.ssh/authorized_keys
    • ssh localhost 测试免密登录
  • 下载并解压 Hadoop(示例版本 3.3.5):
    • wget https://downloads.apache.org/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz
    • sudo tar -xzf hadoop-3.3.5.tar.gz -C /usr/local & & sudo mv /usr/local/hadoop-3.3.5 /usr/local/hadoop
    • sudo chown -R hadoop:hadoop /usr/local/hadoop
  • 配置环境变量(~/.bashrc 或 /etc/profile):
    • export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
    • export HADOOP_HOME=/usr/local/hadoop
    • export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    • export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    • 使生效:source ~/.bashrc
  • 验证安装:/usr/local/hadoop/bin/hadoop version

二、伪分布式配置与启动

  • 配置核心文件($HADOOP_CONF_DIR 即 /usr/local/hadoop/etc/hadoop/)
    • core-site.xml
      • - hadoop.tmp.dirfile:/usr/local/hadoop/tmp - fs.defaultFShdfs://localhost:9000 -
    • hdfs-site.xml
      • - dfs.replication1 - dfs.namenode.name.dirfile:/usr/local/hadoop/tmp/dfs/name - dfs.datanode.data.dirfile:/usr/local/hadoop/tmp/dfs/data -
    • mapred-site.xml(如不存在先 cp mapred-site.xml.template mapred-site.xml)
      • - mapreduce.framework.nameyarn -
    • yarn-site.xml
      • - yarn.resourcemanager.hostnamelocalhost - yarn.nodemanager.aux-servicesmapreduce_shuffle - yarn.nodemanager.env-whitelistJAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME -
  • 初始化与启动
    • 首次格式化 HDFS:/usr/local/hadoop/bin/hdfs namenode -format(仅首次执行)
    • 启动 HDFS:/usr/local/hadoop/sbin/start-dfs.sh
    • 启动 YARN:/usr/local/hadoop/sbin/start-yarn.sh
    • 验证进程:jps 应看到 NameNode、DataNode、ResourceManager、NodeManager
    • Web 界面:HDFS NameNode http://localhost:9870,YARN ResourceManager http://localhost:8088

三、数据分析流程示例

  • 数据入湖(HDFS)
    • 准备本地文件:echo -e “hadoop spark bigdata\nhadoop flink streaming\nspark ml ai” > /home/hadoop/file1.txt
    • 在 HDFS 创建目录并上传:
      • /usr/local/hadoop/bin/hdfs dfs -mkdir -p /user/hadoop/input
      • /usr/local/hadoop/bin/hdfs dfs -put /home/hadoop/file1.txt /user/hadoop/input
  • 运行 MapReduce 词频统计(两种方式)
    • 方式 A(自带示例 JAR):
      • /usr/local/hadoop/bin/hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar wordcount /user/hadoop/input /user/hadoop/output
    • 方式 B(自研代码,示例要点)
      • Mapper:按空白分词输出 < word, 1>
      • Reducer:对相同 word 的计数求和
      • 打包为 WordCount.jar 后提交:
        • /usr/local/hadoop/bin/hadoop jar WordCount.jar WordCount /user/hadoop/input /user/hadoop/output2
  • 查看结果
    • /usr/local/hadoop/bin/hdfs dfs -cat /user/hadoop/output/part-r-00000
  • 运行日志与资源监控
    • 作业日志:YARN Web UI(http://localhost:8088)查看容器日志与任务详情
    • 常用命令:hdfs dfs -ls /,hdfs dfs -rm -r /user/hadoop/output(删除输出目录以重复实验)

四、进阶与生态工具

  • 数据仓库与 SQL 分析(Hive)
    • 将清洗后的数据导入 Hive 表,用 HiveQL 做聚合、筛选、连接等分析,再导出结果到 HBase/MySQL 或用于报表。
  • 实时/近实时与 NoSQL(HBase、ZooKeeper)
    • 对需要随机读写、低延迟访问的数据,使用 HBase 存储;ZooKeeper 提供分布式协调服务。
  • 数据集成(Sqoop)
    • 关系型数据库HDFS/Hive 之间批量导入导出,构建数据管道。
  • 作业调度与编排
    • 结合 Oozie/Azkaban 等调度器,编排多步骤 ETL/分析作业。

五、常见问题与优化建议

  • Java 与版本匹配
    • Hadoop 3.x 推荐使用 JDK 8 或 JDK 11;在 hadoop-env.sh 中显式设置 export JAVA_HOME=…,避免与系统默认 JDK 不一致。
  • SSH 免密与端口
    • 确保 sshd 运行(sudo service ssh start),.ssh 目录权限为 700,authorized_keys 为 600;本机回环 ssh localhost 必须免密。
  • 格式化与目录权限
    • NameNode 格式化仅首次执行;确保 dfs.namenode.name.dir/dfs.datanode.data.dir 所指目录存在且 hadoop 用户可写。
  • 资源与容器
    • 在 yarn-site.xml 中按需配置内存与虚拟核(如 yarn.nodemanager.resource.memory-mb、yarn.scheduler.maximum-allocation-mb),避免容器 OOM 或资源不足。
  • 小文件与性能
    • 大量小文件会影响 NameNode 与任务调度效率;可通过合并、SequenceFile/Parquet 列式存储、或使用 CombineFileInputFormat 优化。
  • 监控与排错
    • 使用 jps 检查进程、通过 9870/8088 Web UI 定位瓶颈;查看 $HADOOP_HOME/logs 下相关日志文件。

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


若转载请注明出处: Ubuntu如何利用Hadoop进行大数据分析
本文地址: https://pptw.com/jishu/789452.html
Ubuntu如何简化Hadoop操作流程 Ubuntu如何配置Hadoop安全设置

游客 回复需填写必要信息