首页主机资讯如何在Ubuntu上配置HDFS客户端

如何在Ubuntu上配置HDFS客户端

时间2025-11-17 10:02:03发布访客分类主机资讯浏览671
导读:在 Ubuntu 上配置 HDFS 客户端 一 环境准备 安装 Java(Hadoop 依赖 Java,建议 OpenJDK 8): 执行:sudo apt update && sudo apt install -y o...

在 Ubuntu 上配置 HDFS 客户端

一 环境准备

  • 安装 Java(Hadoop 依赖 Java,建议 OpenJDK 8):
    • 执行:sudo apt update & & sudo apt install -y openjdk-8-jdk
    • 验证:java -version
    • 配置环境变量(写入 ~/.bashrc):
      • export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
      • 使生效:source ~/.bashrc
  • 安装 Hadoop 客户端二进制包(无需启动集群,仅用于客户端):
    • 下载并解压(示例版本 3.3.4):
      • wget https://archive.apache.org/dist/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz
      • sudo tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
      • sudo chown -R $USER:$USER /usr/local/hadoop-3.3.4
      • ln -s /usr/local/hadoop-3.3.4 /usr/local/hadoop
    • 配置环境变量(~/.bashrc):
      • export HADOOP_HOME=/usr/local/hadoop
      • export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
      • 使生效:source ~/.bashrc
  • 说明:若本机同时充当 NameNode/DataNode,需安装并启动 Hadoop 服务;若仅作为客户端,仅准备二进制与配置即可。

二 客户端配置

  • 配置目录:$HADOOP_HOME/etc/hadoop/
  • 编辑 core-site.xml(指定默认文件系统地址,替换为你的 NameNode 主机/IP 与端口):
    • 示例:
      <
          configuration>
          
        <
          property>
          
          <
          name>
          fs.defaultFS<
          /name>
          
          <
          value>
          hdfs://namenode-host:9000<
          /value>
          
        <
          /property>
          
      <
          /configuration>
          
      
  • 编辑 hdfs-site.xml(客户端常用参数,可按需精简):
    • 示例:
      <
          configuration>
          
        <
          !-- 仅客户端时副本数不生效,但部分工具会读取 -->
          
        <
          property>
          
          <
          name>
          dfs.replication<
          /name>
          
          <
          value>
          1<
          /value>
          
        <
          /property>
          
        <
          !-- 如集群启用 HA,使用逻辑名称服务;否则可省略 -->
          
        <
          !--
        <
          property>
          
          <
          name>
          dfs.nameservices<
          /name>
          
          <
          value>
          mycluster<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.ha.namenodes.mycluster<
          /name>
          
          <
          value>
          nn1,nn2<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.namenode.rpc-address.mycluster.nn1<
          /name>
          
          <
          value>
          nn1-host:8020<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.namenode.rpc-address.mycluster.nn2<
          /name>
          
          <
          value>
          nn2-host:8020<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.client.failover.proxy.provider.mycluster<
          /name>
          
          <
          value>
          org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider<
          /value>
          
        <
          /property>
          
        -->
          
      <
          /configuration>
          
      
  • 说明:
    • 常见端口:RPC 9000/8020Web UI 50070(Hadoop 2.x)/9870(Hadoop 3.x)
    • 仅客户端通常无需配置 dfs.namenode.name.dir/dfs.datanode.data.dir 等本地数据目录。

三 连通性与权限验证

  • 本机或跳板机连通性测试:
    • hdfs dfs -ls /(应返回根目录列表或提示无权限)
    • hdfs dfs -mkdir -p /user/$USER
    • hdfs dfs -put ~/.bashrc /user/$USER/
    • hdfs dfs -get /user/$USER/.bashrc ./bashrc.hdfs
  • 进程与 Web 检查(若本机运行了 NameNode/DataNode):
    • 进程:jps(应见到 NameNode/DataNode/SecondaryNameNode 等)
    • Web UI:访问 http://namenode-host:9870(Hadoop 3.x)查看集群状态
  • 常见问题速查:
    • Permission denied:检查 HDFS 目录权限或以有权限用户执行(如 hdfs dfs -chmod / -chown
    • NameNode is not formatted:仅在首次部署且本机为 NameNode 时需要 hdfs namenode -format
    • Connection refused / UnknownHostException:核对 fs.defaultFS 的主机名/IP 与端口、网络与 DNS/hosts 配置
    • 端口不通:在防火墙放行相应端口(如 9000/9870)。

四 应用集成示例 Python hdfs 客户端

  • 安装库:pip install hdfs
  • 连接与基本操作(示例连接 9870 WebHDFS 接口):
    from hdfs import InsecureClient
    
    client = InsecureClient('http://namenode-host:9870', user='hdfs')
    
    client.makedirs('/user/hdfs/python_test')
    client.upload('/user/hdfs/python_test/hello.txt', 'hello.txt')
    print(client.list('/user/hdfs/python_test'))
    with client.read('/user/hdfs/python_test/hello.txt') as reader:
        print(reader.read().decode())
    
  • 说明:生产环境若启用 Kerberos,需使用对应的安全客户端或启用 HTTPS 与票据认证。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Ubuntu上配置HDFS客户端
本文地址: https://pptw.com/jishu/748674.html
Ubuntu HDFS数据压缩策略有哪些 Ubuntu HDFS日志分析技巧有哪些

游客 回复需填写必要信息