import org
.apache
.hadoop
.conf
.Configuration
import org
.apache
.hadoop
.fs
.FSDataInputStream
import org
.apache
.hadoop
.fs
.FSDataOutputStream
import org
.apache
.hadoop
.fs
.FileSystem
import org
.apache
.hadoop
.fs
.Path
import java
.io
.BufferedReader
import java
.io
.InputStreamReader
import java
.net
.URI
public class App
public static void main( String[] args )
try {
Configuration conf = new Configuration()
// 不设置该代码会出现错误:java
.io
.IOException
: No FileSystem for scheme: hdfs
conf
.set
(
"fs.hdfs.impl"
,
"org.apache.hadoop.hdfs.DistributedFileSystem"
)
String filePath =
"hdfs://127.0.0.1:9000/test/test.txt"
Path path = new Path(filePath)
// 这里需要设置URI,否则出现错误:java
.lang
.IllegalArgumentException
: Wrong FS: hdfs://
127.0
.0
.1
:
9000
/test/test
.txt
, expected: file:///
FileSystem fs = FileSystem
.get
(new URI(filePath), conf)
System
.out
.println
(
"READING ============================"
)
FSDataInputStream is = fs
.open
(path)
BufferedReader br = new BufferedReader(new InputStreamReader(is))
// 示例仅读取一行
String content = br
.readLine
()
System
.out
.println
(content)
br
.close
()
System
.out
.println
(
"WRITING ============================"
)
byte[] buff =
"this is helloworld from java api!\n"
.getBytes
()
FSDataOutputStream os = fs
.create
(path)
os
.write
(buff,
0
, buff
.length
)
os
.close
()
fs
.close
()
} catch (Exception e) {
e
.printStackTrace
()
运行结果:
2. pom.xml文件配置
1. 使用shade方式防止打包失败
2. 这里的dependency可以只引用 `hadoop-client`,或者同时引用`hadoop-common`和`hadoop-hdfs`
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jiecxy</groupId>
<artifactId>HDFSTest</artifactId>
<version>1</version>
<packaging>jar</packaging>
<name>HDFSTest</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.8.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.jiecxy.App</mainClass>
</transformer>
</transformers>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
3.可能出现的问题
3.1 java.lang.IllegalArgumentException: Wrong FS
java.lang.IllegalArgumentException: Wrong FS: hdfs://127.0.0.1:9000/test/test.txt, expected: file:///
at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:666)
at org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:86)
at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:630)
at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:861)
at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:625)
at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:435)
at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSInputChecker.<init>(ChecksumFileSystem.java:146)
at org.apache.hadoop.fs.ChecksumFileSystem.open(ChecksumFileSystem.java:347)
at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:786)
at com.jiecxy.App.main(App.java:25)
解决方法:
FileSystem fs = FileSystem.get(conf);
FileSystem fs = FileSystem.get(new URI(filePath), conf);
3.2 java.io.IOException: No FileSystem for scheme: hdfs
java.io.IOException: No FileSystem for scheme: hdfs
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2798)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2809)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:100)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2848)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2830)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:389)
at com.jiecxy.App.main(App.java:24)
解决方法:
指定hdfs(若只因用了hadoop-common,则需要再加入依赖 hadoop-hdfs,否则找不到该类):
conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");
package test; import java.io.IOException;import java.net.URI;import org.apache.hadoop.conf.Configura...
来自:
qa38113202的博客
一、安装Maven1、 配置系统环境变量2、 验证-在cmd输入mvn –v3、设置localRepository例如我的repo位置为:D:\software\Maven\repo,在config文...
来自:
七度余温~~~的博客
安装好hadoop后,可以在命令行启动客户端,通过命令行来操作hdfs,如:$ bin/hadoop fs -ls / //查看根目录下的内容$ bin/hadoop fs -mkdir ...
来自:
欢迎来到Jimmy的博客
引言最近也有很多人来向我"请教",他们大都是一些刚入门的新手,还不了解这个行业,也不知道从何学起,开始的时候非常迷茫,实在是每天回复很多人也很麻烦,所以在这里统一作个回复吧。Java学习路线当然,这里...
来自:
java_sha的博客
使用Java调用HDFS的API进行文件基本操作本样例主要是代码,其中包括了Java进行上传,下载,删除,创建文件夹,遍历文件夹等操作,代码环境基于MacOS,IDEA,使用Maven来配置依赖包,后...
来自:
Rain1024的博客
首先,新建Maven项目,添加相应的依赖,新建Java类:package com.young;import org.apache.hadoop.conf.Configuration;import or...
来自:
weixin_30662539的博客
之前分别介绍了使用Hadoop的C API操作HDFS和使用Hadoop的Java API操作HDFS,在介绍Java访问方式时(C API不存在这样的问题),程序是部署在Hadoop安装环境的,这具...
来自:
cjf_wei的博客
1、介绍对于namenode是HA高可用集群时,客户端远程访问hdfs有两种实现方法: (1)将所有关于namenode的参数写入Configuration对象中 (2)将配置文件core-site....
来自:
程裕强的专栏
使用Java API出现以下异常:org.apache.hadoop.security.AccessControlException: Permission denied: user=Administ...
来自:
逆天骚年的博客
为什么要用maven:如果建立大一点的java项目的话,需要的jar和各jar包之间的依赖关系会很多,需要自己手动找jar包和jar依赖导入项目中,maven就是来解决这个问题的,用来管理java项目...
来自:
杨苗苗
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/79090443其实很简单,直接创建一个Maven项目,pom.xml中加入如下配置即...
来自:
冰河的专栏
Configuration 的loadResources()方法 (采用lazy加载)1.解释了为什么会加载一些默认文件(*.site.xml)2.测试了一下用file的方式去读取hdfs文件,不行 ...
1. HDFS的java操作hdfs在生产应用中主要是客户端的开发,其核心步骤是从hdfs提供的api中构造一个HDFS的访问客户端对象,然后通过该客户端对象操作(增删改查)HDFS上的文件1.1 搭...
来自:
weixin_33947521的博客
1.1用Maven创建一个标准化的Java项目mvn archetype:generate -DgroupId=com.baidu -DartifactId=InstructionsHdfs-Darc...
来自:
leafdown_的博客
简介:本文主要讲解如何用java去操作hdfs,以下是我整理的常用的一些方法,本文主要介绍的是FileSystem,我把其集合到了一个工具类当中,下面的操作主要有 检查文件是否存在,创建文件,创建文件...
来自:
翟开顺
第一步:创建一个新的项目并导入需要的jar包公共核心包公共依赖包hdfs核心包hdfs依赖包第二步:将Linux中hadoop的配置文件拷贝到项目的src目录下第三步:配置windows本地的hado...
来自:
逆天骚年的博客
1、目录结构:2、代码:2.1 pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w...
来自:
liangsw
第4章 HDFS的Java API4.3 pom.xml解析4.3.1 Maven库https://mvnrepository.com/4.3.2 添加Hadoop的依赖在pom.xml文件里添加ha...
来自:
程裕强的专栏
一、介绍我们在使用MapReduce框架进行开发时,总会使用到Configuration类的一个实例对象去初始化一个人任务,然后进行任务提交,而在整个任务执行过程中,客户点实例化的Configurat...
来自:
wozipa的博客
关于Maven的使用就不再啰嗦了,网上很多.1. 首先创建工程略2. 然后在pom.xml文件里添加hadoop的依赖包hadoop-common, hadoop-client, hadoop-hdf...
来自:
米兔by
学习Hadoop的第x天[3]环境准备打开IDEA创建Maven工程配置pom.xml导入Hadoop配置文件创建Demo环境准备装在虚拟机的Hadoop集群,装在windows宿主机上的IDEA、M...
来自:
weixin_41098920的博客
最近在看浙大林子雨老师的mooc,3.6讲使用Eclipse开发环境与HDFS进行交互,我比较喜欢IDEA的风格,这篇blog记录了在使用IDEA时踩过的坑。配置Maven环境Maven是什么?Mav...
来自:
Kevin的博客
第4章 HDFS的Java API4.1 Maven入门参考文章:https://my.oschina.net/huangyong/blog/1945834.1.1 Maven简介Apache Mav...
来自:
程裕强的专栏
恩,其实是我的毕设,一个数据挖掘系统,需要用到hadoop 然后我就用maven添加了hadoop的包 <dependency> <groupId>org.apache.hadoop</groupId
1、读取文件 /** * 测试读取文件 * @throws IOException */ @Test public void testSave() throws...
来自:
Joy
前提已经安装配置好hadoop2.2,安装请参考我另一篇文章排版太辛苦,先弄个简易版出来pom.xml配置如下project xmlns="http://maven.apache.org/POM/4....
来自:
生活要继续的专栏
idea是java开发的利器之一,其自身集成了maven,十分适用于大型项目的开发。大多数的Hadoop程序都是在idea下开发的,本文介绍了Hadoop+idea+maven的环境配置与开发测试准备...
来自:
u012859945的博客
1. 第一步---下载mavenhttp://maven.apache.org/download.cgi2. Windows系统中配置环境变量将此D:\maven\apache-maven-3.3.3...
来自:
cnq2328的专栏
转载至 http://blog.csdn.net/qq_33813365/article/details/70214484JDK版本的要求Hadoop 2.7 以及之后的版本,需要JDK 7;Ha...
来自:
Lord_sh的博客
前言最近在学习Hadoop,每次创建项目都要复制之前项目的pom.xml通用文件,也是比较烦的。正好记得Maven可以创建自己的项目骨架的,也即是Archetype。有了项目骨架,不但pom.xml通...
来自:
风起于青萍之末
一.首先用eclipse创建Maven项目1..配置maven: 配置maven版本:选择自己安装的maven 配置本地仓库:关联maven的setting文件即可,setting文件要提前设置...
来自:
白子安
在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的...
进程通信是指进程之间的信息交换。这里需要和进程同步做一下区分,进程同步控制多个进程按一定顺序执行,进程通信是一种手段,而进程同步是目标。从某方面来讲,进程通信可以解决进程同步问题。
首先回顾下...
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。
表砍我。。。
当时买ma...
双11不光是购物狂欢节,更是对技术的一次“大考”,对于阿里巴巴企业内部运营的基础保障技术而言,亦是如此。
回溯双11历史,这背后也经历过“小米加步枪”的阶段:作战室从随处是网线,交换机放地上的“一地...
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。
使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycha...
CPU对每个程序员来说,是个既熟悉又陌生的东西?
如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是...
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。
猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人...
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。
但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有...
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我......
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。
这些问题的设计宗旨,主要是测试面试者对Java语...
By 超神经场景描述:昨天 2 月 3 日,是大部分城市号召远程工作的第一天,全国有接近 2 亿人在家开始远程办公,钉钉上也有超过 1000 万家企业活跃起来。关键词:十一出行 人脸......
Java基础知识点梳理
虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法...
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!!
最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈...
蒙特卡罗方法,也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。
在一个月黑风高的夜晚,我思前想后,觉得再也不能...
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以We...
Spring1.Spring是什么?有什么好处?2.IOC是什么?有什么好处?具体过程?3.DI是什么?4.IOC和DI的关系?5.bean标签的属性有哪些?6.IOC创建对象有哪几种方式?7.Spr...
作者| Just出品|CSDN(CSDNnews)紧急驰援疫区,AI医生也出动了。截止到2月6日,随着新冠病毒肺炎疫情的不断发展,全国累计已有31161例确诊病例,26359例疑......
本文知识点较多,篇幅较长,请耐心学习
MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降...
利用HTML5,css,js实现爱心树 以及 纪念日期的功能 网页有播放音乐功能 以及打字倾诉感情的画面,非常适合情人节送给女朋友
具体的HTML代码
具体只要修改代码里面的男某某和女某某 文字...
4 容器类型
容器深层含义自己不知道,但是就表面意思。我自己理解的容器就是容器。他就是一个可以装“东西”的罐子啥的。不同的“罐子”可以装的“东西”不同,就像酒杯装酒,茶杯装茶,水缸装水。酒杯、茶杯、水...
Kafka errors NotLeaderForPartitionException, TimeoutException: Batch containing * record(s) expired
阅读数
22450