代码

public class HDFSApp {
public static final String  HDFS_PATH="hdfs://hadoop001:9000";
Configuration  configuration;
FileSystem fileSystem;
@Before
public void setUp() throws Exception{BasicConfigurator.configure();configuration = new Configuration();configuration.set("dfs.replication","1");fileSystem = FileSystem.get(new URI(HDFS_PATH), configuration,"hadoop");
}
@After
public void  tearDown() throws Exception{fileSystem.close();
}@Test
public void mkdir() throws Exception{boolean isSucess = fileSystem.mkdirs(new Path("/ruozedata/hdfsapi"));Assert.assertEquals(true,isSucess);
}
@Test
public void mkdir2() throws Exception{//BasicConfigurator.configure();boolean isSucess = fileSystem.mkdirs(new Path("/ruozedata/hdfsapi"));Assert.assertEquals(true,isSucess);
}
@Test
public void copyFromLocal() throws  Exception {Path localPath = new Path("f:/yt.txt");Path desPath = new Path("/ruozedata/hdfsapi");fileSystem.copyFromLocalFile(localPath, desPath);}
@Test
public  void  testReplication() throws Exception{System.out.println(configuration.get("dfs.replication"));
}
@Test
public  void  copyToLocal() throws Exception{Path  srcPath = new Path("hdfs://hadoop001:9000/ruozedata/hdfsapi/test");Path destPath = new Path("f:/");fileSystem.copyToLocalFile(false,srcPath,destPath,true);
}

采坑1:
执行copyFromLocal() 方法时,报错:

解决方案1.可参考地址:https://stackoverflow.com/questions/14288453/writing-to-hdfs-from-java-getting-could-only-be-replicated-to-0-nodes-instead?tdsourcetag=s_pcqq_aiomsg

注意:云主机hosts文件配内网ip,本地windows电脑配置主机名对应公网ip

做好上面三部,然后再将配置好的文件hdfs-site.xml到本地代码的resource目录下

<configuration>
<property><name>dfs.replication</name><value>1</value>
</property>
<property><name>dfs.namenode.secondary.http-address</name><value>hadoop001:50090</value>
</property>
<property><name>dfs.namenode.secondary.https-address</name><value>hadoop001:50091</value>
</property>
<property><name>dfs.permissions.enabled</name><value>false</value>
</property>
<property><name>dfs.client.use.datanode.hostname</name><value>true</value>
</property>
<property><name>dfs.datanode.use.datanode.hostname</name><value>true</value></property></configuration>

采坑2:此时再运行copyToLocal() 方法依然空指针错误:
是因为我之前fileSystem.copyToLocalFile(false,srcPath,destPath,true);代码前面没加false和后面没加ture.

盘点MapReudce在Windows上运行的坑

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries
解决办法:

下载winutils.exe
创建一个目录,比如C:\winutils\bin
将winutils.exe放入上述创建好的目录下
设置HADOOP_HOME=C:\winutils环境变量,并将其放入PATH变量中,例如%HADOOP_HOME%\bin
或者直接在程序中加入System.setProperty(“hadoop.home.dir”, “full path to the folder with winutils”);
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
解决办法:

下载winutils.exe和hadoop.dll
放这两个在%HADOOP_HOME%\bin下,同时hadoop.dll也放在C:\Windows\System32目录下

注意:如果注意设置任然继续报错
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
这时候不要怀疑你上面的配置的步骤没得用,很有可能是你的代码中job.set map和reduce输出设置是否有问题,仔细检查。

hdfs API命令操作京东云主机,采坑记录相关推荐

  1. 京东云主机使用-搭建简单网页(macOS)

    一.前言 在郭霖大神的带领下,我花了一元钱入手了2个月的京东云主机,也就是个人服务器. 这是我人生第一台服务器,多么值得纪念...... 入手地址在这里 一直不买的原因也是因为自己的Android水平 ...

  2. openstack——使用命令行发放云主机

    openstack--使用命令行发放云主机 一.进入管理员权限环境下 二.创建租户及用户 1.创建租户 2.创建用户 三.上传镜像 四.创建外部网络 1.创建外部网络名 2.创建外部网络子网 五.创建 ...

  3. H5拍照、预览、压缩、上传采坑记录

    H5拍照.预览.压缩.上传采坑记录 公司项目前段时间需要实现手机拍照上传的功能,本来以为用createObjectURL和canvas可以很轻松的实现,结果发现问题多多,特此记录下来. DEMO预览( ...

  4. mysql8.0.19.0_分享MySql8.0.19 安装采坑记录

    上篇文章给大家介绍了MySql8.0.19 安装过程,需要的朋友可以点击查看.https://www.jb51.net/article/178988.htm 1.ERROR 1820 (HY000): ...

  5. mysql8.0依赖_分享MySql8.0.19 安装采坑记录

    上篇文章给大家介绍了MySql8.0.19 安装过程,需要的朋友可以点击查看.https://www.jb51.net/article/178988.htm 1.ERROR 1820 (HY000): ...

  6. Centos7.9上利用cephadm安装Ceph Octopus 15.2的采坑记录,附带K8S挂载方法

    Centos7.9上利用cephadm安装Ceph Octopus 15.2的采坑记录,附带K8S挂载方法 0.亮点 1 准备 1.1 修改历史记录 1.2 升级系统内核 1.3 配置免密登录 问题1 ...

  7. iOS 微信SDK1.8.6后需要UniversalLink解决方案及采坑记录

    项目最初因审核原因,一直使用iOS原生分享, 最近因项目需求要求, 接入微信分享, 以为和原来的没有区别, 但是接入时才发现改动的地方还是挺多的, 主要是需要配置UniversalLink和提包时的一 ...

  8. Ubuntu18安装微信(deepin-wine版本)完整过程以及采坑记录

    Ubuntu18安装微信(deepin-wine版本)完整过程以及采坑记录(亲测运行) git clone https://gitee.com/wszqkzqk/deepin-wine-for-ubu ...

  9. Linux MySQL数据库冷迁移采坑记录

    Linux MySQL数据库冷迁移采坑记录 当前文件系统已满,需要将MySQL默认路径迁移到新文件系统下. MySQL数据库文件原位置:/var/lib/mysql . 要移动至:/mysql/mys ...

最新文章

  1. 【组合数学】递推方程 ( 递推方程示例 2 汉诺塔 | 递推方程示例 3 插入排序 )
  2. Java虚拟机——Java内存区域与内存溢出
  3. 20145225 《信息安全系统设计基础》第10周学习总结
  4. 九大经典算法之插入排序、希尔排序
  5. Redis——学习之路一(初识redis)
  6. 浅入浅出 Android 安全:第五章 Android 应用层安全
  7. 随想录(我们从uboot学什么)
  8. Linux中使用sftp的常用命令
  9. 日志输出到文件nacos 配置_python 配置日志输出到终端与文件
  10. 第六周--------职业规划------正确的选择让你少奋斗十年
  11. JAVA程序员--壁纸
  12. 三个等于符号 和两个等于符号的区别
  13. IT人才外包的合作流程是怎样的?
  14. 安装SolidWorks显示服务器,SolidWorks 映像管理安装详解
  15. Android 加载pdf文件
  16. 深度学习FPGA实现基础知识17(图像处理卷积运算 矩阵卷积)
  17. 书籍勘误表整理(2019.5.7)
  18. Python学习笔记——流程控制(拉勾教育数据分析实战训练营学习笔记)
  19. 如何使用AirPods Pro 更换取下和安装耳塞
  20. 企业信息安全不能大意,不提早防范容易中招——推荐导入ISO27001系列标准

热门文章

  1. [附源码]java毕业设计逸尘房屋销售管理系统
  2. hell脚本案例(一):常见运维面试题
  3. 【思维导图】canny滤波 原理步骤细致剖析
  4. 平稳分布、细致平稳条件与 Gibbs 采样
  5. java 如何获取当前时间到夜晚12点的毫秒差值
  6. Rust基础-Vec用法
  7. nide-js.nt
  8. 非对称加密RSA文本和Excel文件加密练习
  9. 总结一下强化学习在工业界应用,给大家扩展一下思路(简易科普)
  10. <a name=“maodian“>锚点标签