首页主机资讯Ubuntu环境下Hadoop如何进行数据存储

Ubuntu环境下Hadoop如何进行数据存储

时间2025-11-17 10:29:03发布访客分类主机资讯浏览1144
导读: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.xmlhdfs-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/hadoop
      • export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
      • export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
      • export 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>
          
      
  • 创建目录并首次格式化:
    • mkdir -p /usr/local/hadoop/dfs/name /usr/local/hadoop/dfs/data
    • hdfs namenode -format
  • 启动与验证:
    • 启动:start-dfs.sh(如需YARN:start-yarn.sh
    • 验证:jps 应看到NameNode/DataNode(以及SecondaryNameNode/ResourceManager/NodeManager)
    • Web界面:NameNode http://localhost:50070ResourceManager http://localhost:8088
    • 基本操作:hdfs dfs -ls /hdfs dfs -mkdir /datahdfs 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>
          
      
  • 场景三:调整副本数(生产环境建议≥3
    • hdfs-site.xml中设置:dfs.replication=3(单节点伪分布式只能设为1)。

四 分布式环境要点

  • 规划目录与权限:
    • 在所有节点创建本地数据目录(如**/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.dirdfs.datanode.data.dir(多磁盘用逗号分隔)。
    • 仅在NameNode执行:hdfs namenode -format
    • 启动:start-dfs.sh(集群建议配合start-yarn.sh
  • 节点互通与安全:
    • 配置**/etc/hosts或DNS解析各节点主机名,确保SSH免密**互通。
    • 如启用防火墙,放行端口:9000(HDFS RPC)、50070(NameNode Web)、8088(ResourceManager Web)。

五 常见问题与排查

  • 目录权限或路径不存在:检查dfs.namenode.name.dirdfs.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
Hadoop在Ubuntu上的资源管理策略是什么 Ubuntu MinIO安装失败的原因有哪些

游客 回复需填写必要信息