问题描述

阿里云服务器命令行使用命令可以上传文件,但HDFS java API上传失败,上传后只有文件名没有数据
报错: could only be written to 0 of the 1 minReplication nodes. There are 1 datanode(s) running and 1 node(s) are excluded in this operation

解决思路

Hadoop的NameNode节点和DataNode节点之间是使用内网IP通信的,所以不管我们配置单机伪分布式,还是集群(CDH,HDP...)都是需要配置内网IP和主机名的映射,因为我们外网开发环境可以通过外网IP访问NameNode节点,所以创建目录是没问题的,但是文件的内容需要写到DataNode节点上,这时外网是无法和DataNode节点直接通信发数据的(需要了解NameNode和DataNode之间数据的传输机制也就是put和get操作).

解决办法

1.在服务器端配置内网IP和主机名映射,在外网开发机器上配置外网IP和主机名映射(主机名相同)
2.在hdfs-site.xml文件中配置属性<property><name>dfs.datanode.use.datanode.hostname</name><value>true</value></property>
<-----------注意需要重启hdfs!!!---------->
3.然后在代码中configuration中配置configuration.set("dfs.client.use.datanode.hostname", "true");FileSystem fs = FileSystem.get(new URI("hdfs://hostname:9000"), configuration, "hadoop");
4.还需要注意一点的是Hadoop3版本默认的端口有修改
Namenode 端口:
50470 --> 9871
50070 --> 9870
8020 --> 9820Secondary NN 端口:
50091 --> 9869
50090 --> 9868Datanode 端口:
50020 --> 9867
50010 --> 9866
50475 --> 9865
50075 --> 9864
此时需要通过命令(此命令需要HDFS的超级用户使用)hdfs dfsadmin -report  查看当前datanode的端口(我是使用的伪分布式)Name: 172.17.111.223:9866 (***这里是主机名***)
Hostname: (***这里是主机名***)
Decommission Status : Normal
Configured Capacity: 105552769024 (98.30 GB)
DFS Used: 49152 (48 KB)
Non DFS Used: 4163235840 (3.88 GB)
DFS Remaining: 96863227904 (90.21 GB)
DFS Used%: 0.00%
DFS Remaining%: 91.77%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Wed Nov 24 16:47:57 CST 2021
Last Block Report: Wed Nov 24 14:28:35 CST 2021
Num of Blocks: 1
5.需要在阿里云安全组开放刚才查到的端口  9866 此时再运行代码,成功发送数据到HDFS上

阿里云服务器Hadoop java api 上传文件报错 could only be written to 0 of the 1 minReplication nodes.相关推荐

  1. 阿里云使用idea通过hdfs api来上传文件时出现could only be written to 0 of the 1 minReplication nodes.错误

    问题描述: 使用阿里云服务器,在本地windows电脑上使用idea进行hdfs api操作来上传文件时出现错误如下: org.apache.hadoop.ipc.RemoteException(ja ...

  2. 阿里云服务器建站怎么上传文件?

    阿里云建站后使用Filezilla进行上传下载文件 1.远程连接阿里云,并阿里云中下载安装好Filezilla工具: 2.Filezilla工具安装好后,进入Filezilla操作界面: 3.在Fil ...

  3. 阿里云存储OSS中设置上传文件content type

    阿里云存储OSS中设置上传文件ContentType 如果你使用浏览器上传文件,则浏览器会自动在header中设置正确地content type,然后对文件的访问会得到正确地回应. 如果采用编程的方式 ...

  4. laravel上传文件报错:413 Request Entity Too Large

    上传图片的时候,是用laravel自带的上传图片的方法,一下气上传了20张,结果就无情报错: 413 Request Entity Too Large,后面查一下,这个报错信息是nginx报的错误,不 ...

  5. Spring MVC实现上传文件报错解决方案

    Spring MVC实现上传文件报错解决方案 参考文章: (1)Spring MVC实现上传文件报错解决方案 (2)https://www.cnblogs.com/liuling/p/2014-3-5 ...

  6. Linux - xshell上传文件报错乱码

    xshell上传文件报错乱码,解决方法 rz -be 回车 下载sz  filename 转载于:https://www.cnblogs.com/RzCong/p/8600899.html

  7. 上传文件报错500或者文件大于2M上传不上去解决方法

    上传文件报错500或者文件大于2M上传不上去解决方法 参考文章: (1)上传文件报错500或者文件大于2M上传不上去解决方法 (2)https://www.cnblogs.com/sillong/p/ ...

  8. ajax上传文件报错The current request is not a multipart request的解决办法

    ajax上传文件报错The current request is not a multipart request的解决办法 主要报错语句为: The current request is not a ...

  9. 金蝶中间件上传文件报错

    金蝶中间件上传文件报错 上传文件报错,见下图:allowCasualMultipartParsing is false,no MultipartConfig,so no parse! 解决办法: 在w ...

最新文章

  1. 【ubuntu】在ubuntu下无法输出拼音输入法中的中括号“【” 和 “】”的解决方法
  2. for循环 lamda python_Python中if-else判断语句、while循环语句以及for循环语句的使用...
  3. 【keras】rnn中的LSTM
  4. Golang 并发Groutine实例解读(一)
  5. 计算机视觉与深度学习 | OpenCV3.0.0及高版本安装文件(build/sources)及视频教程
  6. XenDesktop7.12配置StoreFront使用HTTPS
  7. C++对象内存布局--③测试多继承中派生类的虚函数在哪一张虚函数表中
  8. C# 按部门拆分excel文件
  9. 【建议收藏】centos更新yum源为阿里云
  10. POJ - 2352 Stars(线段树/树状数组)
  11. 【Leetcode | 1】93. 复原IP地址
  12. python自动化_python自动化办公?学这些就够用了
  13. zedboard板子上呼吸灯的实现(第一版)仿真代码的实现
  14. 微正指纹识别算法MZFinger5.0
  15. 技术分析是我的唯一信仰
  16. 用JAVA怎么做个视图_java问题 可以把用JFrame做出来的具有视图层的小程序放在桌面上当一个小软件吗?...
  17. 3dmax软件导入图片为背景的方法与步骤
  18. 用户登录 kibana 时,提示 “no permissions...” ,导致用户无法查看 log
  19. vc++ C函数atoi和itoa的用法总结(转载)
  20. 接口自动化测试项目实战

热门文章

  1. Python使用selenium模拟滑块验证登录12306网站 实测可用
  2. 各种数字字体样式_正言读书丨聊聊我的字体选择“变态”史,以及最近迷上的两款字体...
  3. ADAMS仿真软件教程--模型的相关操作
  4. IAR 使用中遇到的问题
  5. Nuendo学习之旅——没声音怎么办
  6. 一台显示器,两台不同的局域网计算机的切换需求
  7. CentOS重启后resolv.conf被重置的解决方案
  8. Android Studio 使用腾讯浏览服务(替换掉系统自带的WebView)
  9. Ant组件——DatePicker 日期选择框
  10. Java Web项目中HTML文件中的汉字在浏览器中显示乱码的解决方案