温馨提示×

HDFS数据存储在Ubuntu上如何实现

小樊
33
2025-12-10 22:03:07
栏目: 云计算

在 Ubuntu 上实现 HDFS 数据存储

一 环境准备与安装

  • 安装 Java(推荐 OpenJDK 8 或 11):sudo apt update && sudo apt install -y openjdk-11-jdk;验证:java -version。
  • 下载并解压 Hadoop(示例版本 3.3.4):wget https://downloads.apache.org/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz && tar -xzf hadoop-3.3.4.tar.gz -C /usr/local/。
  • 配置环境变量(~/.bashrc 或 /etc/profile):
    export HADOOP_HOME=/usr/local/hadoop-3.3.4
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    使配置生效:source ~/.bashrc。
  • 说明:HDFS 为 Hadoop 组件,安装 Hadoop 后即可使用 HDFS 能力。

二 配置 HDFS

  • 编辑配置文件($HADOOP_HOME/etc/hadoop):
    core-site.xml:
    fs.defaultFShdfs://localhost:9000 hadoop.tmp.dir/usr/local/hadoop-3.3.4/tmp
    hdfs-site.xml:
    dfs.replication1 dfs.namenode.name.dir/usr/local/hadoop-3.3.4/data/namenode dfs.datanode.data.dir/usr/local/hadoop-3.3.4/data/datanode
  • 创建数据目录并赋权:
    sudo mkdir -p /usr/local/hadoop-3.3.4/data/{namenode,datanode}
    sudo chown -R $USER:$USER /usr/local/hadoop-3.3.4/data
  • 首次启动前格式化 NameNode:hdfs namenode -format。

三 启动与验证

  • 启动 HDFS:start-dfs.sh;如需资源管理可同时启动 YARN:start-yarn.sh。
  • 进程检查:jps,应看到 NameNode、DataNode(以及 SecondaryNameNode;若启动 YARN 还会看到 ResourceManager、NodeManager)。
  • Web 界面:NameNode http://localhost:50070;ResourceManager http://localhost:8088
  • 基本操作示例:
    hdfs dfs -mkdir -p /user/$USER
    hdfs dfs -put /etc/hadoop/.xml /user/$USER/input
    hdfs dfs -ls /user/$USER/input
    hdfs dfs -cat /user/$USER/output/

    hdfs dfs -get /user/$USER/output ./output

四 多节点与运维要点

  • 多节点部署:在每台机器重复安装与配置;在 core-site.xml 将 fs.defaultFS 指向 主节点主机名或IP:9000;在 slaves/workers 文件中列出所有 DataNode 主机名;配置 SSH 免密登录(ssh-keygen 与 ssh-copy-id);仅在主节点执行 start-dfs.sh 即可拉起集群。
  • 防火墙放行:sudo ufw allow 9000,50070,8088(或临时关闭 ufw 测试)。
  • 常用运维:
    • 集群健康与容量:hdfs dfsadmin -report
    • 安全关停:stop-dfs.sh(与 stop-yarn.sh)

五 性能与可靠性建议

  • 副本数:单机或测试环境设 dfs.replication=1;生产环境建议 ≥3
  • 块大小:根据作业特点调整 dfs.blocksize(更大块利于顺序读,更小块利于并发与灵活)。
  • 避免小文件:合并小文件以降低 NameNode 内存压力。
  • 数据本地性与扩容:增加 DataNode 提升本地性与吞吐;必要时横向扩容。
  • 压缩:选择 Snappy/LZO/Bzip2 在存储与 CPU 之间权衡。
  • 监控与调优:持续关注读写延迟、吞吐与 RPC 指标,按负载调整参数。

0