本章更多的是通过hdfs的API接口问题角度记录坑点
坑点记录
一、能够远程访问和通过web端访问hdfs
- 在java代码中添加或更改如下:
Configuration conf = new Configuration();
conf.set("dfs.client.use.datanode.hostname", "true");//添加此配置信息即可
FileSystem fs = FileSystem.get(new URI("hdfs://host:9000"), conf, "root");
- 查找hadoop datanode的主机名
hadoop dfsadmin -report
- 1 在本机的主机映射进行修改
C:\Windows\System32\drivers\etc\hosts
3.2 外网IP和主机名
3.3 在虚拟机hosts文件配置:
内网IP和主机名
3.4 在hadoop的etc下的works文件配置:
外网IP和主机名
-
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>
-
开放50700、9000和9866端口,以及对应的服务器的安全组
-
当有datanode启动不了时,将hadoop的tmp文件夹下的name fds文件删除即可。(学习环境,仓库没存储重要数据可操作,否则6-8慎做!)
-
通过core-site.xml文件查看tmp目录的路径:
<!-- 指定hadoop数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.0.0/data</value>
</property>
-
删除后,使用指令
hadoop namenode -format
-
启动hadoop
start-all.sh
,结束stop-all.sh
二、通过hdfs的API,在本地windows环境中无法下载
- windows中通过hdfs的API远程下载文件,还需要下载winutils文件下的hadoop.dll和winutils.exe文件,并将它们移至C:\Windows\System32下。
下载地址winutils
标签:tmp,hdfs,文件,Hadoop,hadoop,主机名,datanode,服务器 From: https://www.cnblogs.com/duuuuu17/p/17561664.html