如何在Ubuntu上利用HDFS进行大数据处理
导读:在 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>
- core-site.xml
- 创建本地数据目录并赋权:
- 执行:
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
- 仅 HDFS:
- 进程健康检查:
- 执行:
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 /input,hdfs dfs -mv input/my.txt /input2
- 列出目录:
五 常见问题与优化建议
- 无法访问 Web UI
- 确认服务已启动(
jps)、端口未被占用、以及本机/服务器防火墙已放行(如 9870/8088)。
- 确认服务已启动(
- 权限错误
- 若以 hdfs 用户运行,确保 HDFS 目录属主为 hdfs:hdfs;或在命令前加
sudo -u hdfs执行相关 HDFS 操作。
- 若以 hdfs 用户运行,确保 HDFS 目录属主为 hdfs:hdfs;或在命令前加
- 数据块副本与容错
- 单机伪分布式副本只能设为 1;多节点集群建议将
dfs.replication设为 3 以提升容错性。
- 单机伪分布式副本只能设为 1;多节点集群建议将
- 版本与端口差异
- Hadoop 3.x 的 NameNode Web 默认端口为 9870(2.x 为 50070),访问时请核对版本。
- 性能与稳定性
- 合理设置 HDFS 数据目录到性能更好的磁盘;YARN 可根据内存与 CPU 核数调整容器资源;大数据量作业优先使用 YARN 模式以获得更好的资源调度与扩展性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu上利用HDFS进行大数据处理
本文地址: https://pptw.com/jishu/755418.html
