Ubuntu如何利用Hadoop进行大数据分析
导读:在 Ubuntu 上使用 Hadoop 进行大数据分析 一、环境准备与安装 安装 Java(Hadoop 3.x 建议使用 JDK 8 或 JDK 11): 安装 OpenJDK 11:sudo apt update &&...
在 Ubuntu 上使用 Hadoop 进行大数据分析
一、环境准备与安装
- 安装 Java(Hadoop 3.x 建议使用 JDK 8 或 JDK 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 -
- core-site.xml
- 初始化与启动
- 首次格式化 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
- 方式 A(自带示例 JAR):
- 查看结果
- /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
