重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
今天就跟大家聊聊有关如何进行Hadoop Java API简单使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
10余年的化德网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整化德建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“化德网站设计”,“化德网站推广”以来,每个客户项目都认真落实执行。
注意:jar版本,务必和远程的hadoop版本一致。
maven配置文件:
4.0.0 Hadoop demo 1.0-SNAPSHOT 2.7.1 commons-io commons-io 2.4 org.apache.hadoop hadoop-mapreduce-client-core ${hadoop.version} org.apache.hadoop hadoop-client ${hadoop.version} org.apache.hadoop hadoop-common ${hadoop.version} org.apache.hadoop hadoop-hdfs ${hadoop.version} org.apache.hadoop hadoop-yarn-common ${hadoop.version} org.apache.hadoop hadoop-yarn-api ${hadoop.version} org.apache.hadoop hadoop-yarn-client ${hadoop.version} junit junit 4.12
测试用例:
package com.demo; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; import org.junit.Before; import org.junit.Test; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; public class HadoopTest { FileSystem fileSystem = null; @Before public void init() throws URISyntaxException, IOException, InterruptedException { String p = "hdfs://yarn001:9000"; fileSystem = FileSystem.get(new URI(p), new Configuration(), "root"); } /** * 测试文件下载 * @throws URISyntaxException * @throws IOException */ @Test public void downloadTest() throws URISyntaxException, IOException { Path path = new Path("/hadoop-2.7.1.tar.gz"); InputStream open = fileSystem.open(path); FileOutputStream fileOutputStream = new FileOutputStream("d://hadoop"); IOUtils.copyBytes(open, fileOutputStream, 4096, true); } /** * 测试文件上传1 * @throws IOException */ @Test public void uploadFileTest1() throws IOException { InputStream fileInputStream = new FileInputStream("d://SpringBoot.mobi"); Path path = new Path("/SpringBoot"); FSDataOutputStream fsDataOutputStream = fileSystem.create(path); IOUtils.copyBytes(fileInputStream,fsDataOutputStream,4096); } /** * 测试文件上传2 */ @Test public void uploadFileTest2() throws IOException { Path localPath = new Path("d://test.xls"); Path remoterPath = new Path("/testXLS"); fileSystem.copyFromLocalFile(localPath,remoterPath); } /** * 测试删除文件 */ @Test public void delFileTest() throws IOException { Path path = new Path("/testXLS"); /** * 删除空目录 */ boolean delete = fileSystem.delete(path, false); /** * 删除非空目录 * 递归删除 */ /* boolean delete1 = fileSystem.delete(path, true); */ System.out.println(delete?"删除成功":"删除失败"); } /** * 创建目录测试 * @throws IOException */ @Test public void createFolder() throws IOException { Path path = new Path("/testPath2"); boolean mkdirs = fileSystem.mkdirs(path); System.out.println(mkdirs?"success":"fail"); } }
常见异常:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.tracing.SpanReceiverHost.get(Lorg/apache/hadoop/conf/Configuration;Ljava/lang/String;)Lorg/apache/hadoop/tracing/SpanReceiverHost; at org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:634) at org.apache.hadoop.hdfs.DFSClient. (DFSClient.java:619)
异常处理:
配置maven的pom.xml文件,把本地lib版本和远程Hadoop 的HDFS版本一致即可。
看完上述内容,你们对如何进行Hadoop Java API简单使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。