Ubuntu环境下Hadoop如何进行数据存储
导读:Ubuntu环境下Hadoop数据存储指南 一 核心概念与目录 Hadoop在Ubuntu上通常使用HDFS进行分布式存储,核心目录由以下两项决定: NameNode 元数据目录:由dfs.namenode.name.dir指定,存放文...
Ubuntu环境下Hadoop数据存储指南
一 核心概念与目录
- Hadoop在Ubuntu上通常使用HDFS进行分布式存储,核心目录由以下两项决定:
- NameNode 元数据目录:由dfs.namenode.name.dir指定,存放文件系统命名空间、块位置等元数据。
- DataNode 数据块目录:由dfs.datanode.data.dir指定,存放实际的数据块。
- 关键配置位于**$HADOOP_HOME/etc/hadoop下的core-site.xml与hdfs-site.xml**;首次启动前需对NameNode进行格式化,并通过start-dfs.sh/start-yarn.sh启动相关进程。
二 单机伪分布式配置步骤
- 安装Java并配置环境变量(以OpenJDK 11为例):
- 安装:
sudo apt update & & sudo apt install openjdk-11-jdk - 配置环境变量(~/.bashrc或/etc/profile):
export HADOOP_HOME=/usr/local/hadoopexport HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexport JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 安装:
- 配置HDFS存储目录(core-site.xml 与 hdfs-site.xml):
- core-site.xml
< configuration> < property> < name> fs.defaultFS< /name> < value> hdfs://localhost:9000< /value> < /property> < /configuration> - hdfs-site.xml
< configuration> < property> < name> dfs.replication< /name> < value> 1< /value> < /property> < property> < name> dfs.namenode.name.dir< /name> < value> file:///usr/local/hadoop/dfs/name< /value> < /property> < property> < name> dfs.datanode.data.dir< /name> < value> file:///usr/local/hadoop/dfs/data< /value> < /property> < /configuration>
- core-site.xml
- 创建目录并首次格式化:
mkdir -p /usr/local/hadoop/dfs/name /usr/local/hadoop/dfs/datahdfs namenode -format
- 启动与验证:
- 启动:
start-dfs.sh(如需YARN:start-yarn.sh) - 验证:
jps应看到NameNode/DataNode(以及SecondaryNameNode/ResourceManager/NodeManager) - Web界面:NameNode http://localhost:50070,ResourceManager http://localhost:8088
- 基本操作:
hdfs dfs -ls /、hdfs dfs -mkdir /data、hdfs dfs -put localfile /data/。
- 启动:
三 更换或扩展数据存储路径
- 场景一:将数据目录迁移到新磁盘(如**/data/hadoop**)
- 停止服务:
stop-dfs.sh - 迁移数据:
sudo mv /usr/local/hadoop/dfs /data/hadoop/dfs - 修改hdfs-site.xml:
< property> < name> dfs.namenode.name.dir< /name> < value> file:///data/hadoop/dfs/name< /value> < /property> < property> < name> dfs.datanode.data.dir< /name> < value> file:///data/hadoop/dfs/data< /value> < /property> - 启动服务:
start-dfs.sh
- 停止服务:
- 场景二:为DataNode配置多磁盘多路径(提升容量与吞吐)
- 在dfs.datanode.data.dir中使用逗号分隔多个目录:
< property> < name> dfs.datanode.data.dir< /name> < value> file:///data1/hadoop/datanode,file:///data2/hadoop/datanode< /value> < /property>
- 在dfs.datanode.data.dir中使用逗号分隔多个目录:
- 场景三:调整副本数(生产环境建议≥3)
- 在hdfs-site.xml中设置:
dfs.replication=3(单节点伪分布式只能设为1)。
- 在hdfs-site.xml中设置:
四 分布式环境要点
- 规划目录与权限:
- 在所有节点创建本地数据目录(如**/data/hadoop/dfs/name与/data/hadoop/dfs/data**),并确保hadoop用户可读写。
- 配置与启动:
- core-site.xml:
fs.defaultFS=hdfs://master:9000 - hdfs-site.xml:设置dfs.replication(如3),并为各节点分别配置dfs.namenode.name.dir与dfs.datanode.data.dir(多磁盘用逗号分隔)。
- 仅在NameNode执行:
hdfs namenode -format - 启动:
start-dfs.sh(集群建议配合start-yarn.sh)
- core-site.xml:
- 节点互通与安全:
- 配置**/etc/hosts或DNS解析各节点主机名,确保SSH免密**互通。
- 如启用防火墙,放行端口:9000(HDFS RPC)、50070(NameNode Web)、8088(ResourceManager Web)。
五 常见问题与排查
- 目录权限或路径不存在:检查dfs.namenode.name.dir与dfs.datanode.data.dir目录是否存在且归属正确用户,必要时
chown -R hadoop:hadoop /data/hadoop。 - 端口被占用:使用
netstat -tulpen | grep 9000排查,或临时停用占用进程。 - 防火墙拦截:执行
sudo ufw allow 9000,50070,8088放行必要端口。 - 修改路径后未生效:确认已重启HDFS(
stop-dfs.sh & & start-dfs.sh),并用hdfs getconf -confKey dfs.datanode.data.dir查看实际生效路径。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu环境下Hadoop如何进行数据存储
本文地址: https://pptw.com/jishu/748701.html
