Hadoop的hdfs云服务器配置踩坑记录

发布时间 2023-07-17 23:55:51作者: duuuuu17

本章更多的是通过hdfs的API接口问题角度记录坑点

坑点记录

一、能够远程访问和通过web端访问hdfs

  1. 在java代码中添加或更改如下:
Configuration conf = new Configuration();
conf.set("dfs.client.use.datanode.hostname", "true");//添加此配置信息即可
FileSystem fs = FileSystem.get(new URI("hdfs://host:9000"), conf, "root");
  1. 查找hadoop datanode的主机名

hadoop dfsadmin -report

  1. 1 在本机的主机映射进行修改

C:\Windows\System32\drivers\etc\hosts

3.2 外网IP和主机名

3.3 在虚拟机hosts文件配置:

内网IP和主机名

3.4 在hadoop的etc下的works文件配置:

外网IP和主机名

  1. hadoop的hdfs配置文件更改:

    <!-- 将内部datanode能够和namenode进行通信 -->
        <property>
            <name>dfs.client.use.datanode.hostname</name>
            <value>true</value>
        </property>
    
    <property>
        <name>dfs.datanode.use.datanode.hostname</name>
        <value>true</value>
    </property>
    
  2. 开放50700、9000和9866端口,以及对应的服务器的安全组

  3. 当有datanode启动不了时,将hadoop的tmp文件夹下的name fds文件删除即可。(学习环境,仓库没存储重要数据可操作,否则6-8慎做!)

  4. 通过core-site.xml文件查看tmp目录的路径:

<!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.0.0/data</value>
</property>

  1. 删除后,使用指令hadoop namenode -format

  2. 启动hadoop start-all.sh,结束stop-all.sh

二、通过hdfs的API,在本地windows环境中无法下载

  1. windows中通过hdfs的API远程下载文件,还需要下载winutils文件下的hadoop.dll和winutils.exe文件,并将它们移至C:\Windows\System32下。

下载地址winutils