那最简单的IO说吧 在本地文件系统和HDFS文件系统中的IO操作
下面这个例子是合并本地文件系统的目录下的文件 到HDFS文件系统
public static void main(String[] args) throws IOException, URISyntaxException {
//Hadoop resource configuration class
Configuration conf=new Configuration();
//get FileSystem's instance
//call factory method FileSystem.get(Configuration conf)
FileSystem hdfs=FileSystem.get(new URI("hdfs://127.0.0.1:9000"),conf);
//local FileSystem's instance
FileSystem local =FileSystem.getLocal(conf);
//Path Object encode file and direcotory
Path inputDir=new Path("/home/hadoop/Documents"); //(args[0]);
Path hdfsFile=new Path("/mytest_example2.txt");
//use the FileSystem's listStatus()method() to get a list of files in a directory
FileStatus[] inputFiles=local.listStatus(inputDir);
//create FSDataOutputStream
FSDataOutputStream out=hdfs.create(hdfsFile);
//loop local files and merge a new file
for(int i=0;i<inputFiles.length;i++)
{
//user the Path to request an FSDataInputStream object for reading in the file
System.err.println(inputFiles[i].getPath().getName()+"-----------------");
FSDataInputStream in =local.open(inputFiles[i].getPath());
byte [] buffer=new byte[256];
int bytesRead=0;
while ((bytesRead=in.read(buffer))>0)
{
out.write(buffer, 0, bytesRead);
}
in.close();
}
out.close();
}
以上的代码是可行的没有什么错误。但是如果是一下这样,就会报错前提呢在你的项目的classpath下也就是bin目录下没有hadoop的HDFS配置文件(core-site.xml和hdfs-site.xml)
FileSystem hdfs=FileSystem.get(/*new URI("hdfs://127.0.0.1:9000"),*/conf);
Path hdfsFile=new Path("hdfs://127.0.0.1:9000/mytest_example2.txt");
错误提示:
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS: hdfs://127.0.0.1:9000/, expected: file:///
at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:646)
at org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:82)
at org.apache.hadoop.fs.RawLocalFileSystem.mkdirsWithOptionalPermission(RawLocalFileSystem.java:513)
at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:499)
at org.apache.hadoop.fs.ChecksumFileSystem.mkdirs(ChecksumFileSystem.java:594)
at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:448)
at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:435)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:909)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:890)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:787)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:776)
at com.liweichao.PutMerge.main(PutMerge.java:40)
解决途径一个是在初始化Filesystem的时候
1 : Configuration conf=new Configuration();
//get FileSystem's instance
//call factory method FileSystem.get(Configuration conf)
//就会自动加载到hadoop的资源配置文件
FileSystem hdfs=FileSystem.get(new URI("hdfs://127.0.0.1:9000"),conf);
在有Path对象定位的具体目录
Path hdfsFile=new Path("/mytest_example2.txt");
2:在你的项目的classpath下也就是bin目录下没有hadoop的HDFS配置文件(core-site.xml和hdfs-site.xml)
相关推荐
标题 "hadoop2x集成eclipse插件压缩包" 提供了我们今天要讨论的核心内容:如何在Eclipse集成...无论你是初学者还是经验丰富的Hadoop开发者,都应该考虑将这样的工具纳入你的开发工具箱,以提升你的工作效率和项目质量。
- 开发环境配置较为复杂,初学者可能会遇到各种配置错误问题。 四、对于不同编程语言的支持 本文档主要针对使用Java语言开发MapReduce程序的配置指南。如果使用Python语言进行开发,由于Python是解释型语言,可以...
它将Hadoop相关的开发工具集成了到Eclipse中,使开发者无需离开IDE即可进行Hadoop开发。 4. **主要功能**: - **项目创建**:插件允许用户创建Hadoop MapReduce或YARN项目,提供了模板来快速启动新项目。 - **...
1. **项目创建**:用户可以直接在Eclipse中创建Hadoop MapReduce项目,无需手动配置复杂的环境。 2. **代码编辑**:插件提供自动代码补全和语法检查,帮助开发者编写正确的Hadoop代码。 3. **编译和构建**:插件能够...
《Hadoop Eclipse Plugin 2.6.0:高效开发与测试工具》 Hadoop作为大数据处理的核心框架,为开发者提供了强大的...对于Hadoop初学者和专业开发者来说,熟练掌握并运用这款插件,无疑是提升开发体验和工作效率的关键。
总结,Hadoop各版本的Eclipse插件是Hadoop开发的重要辅助工具,它简化了在Eclipse中的MapReduce开发流程,提高了开发效率。根据具体的Hadoop版本选择合适的插件,并正确安装和配置,是成功开发Hadoop应用的关键步骤...
Hadoop-0.20.2-Eclipse-Plugin是一个经典的插件,专为Eclipse集成开发环境(IDE)设计,旨在提升Hadoop开发者的工作效率。...对于初学者和经验丰富的Hadoop开发者来说,这种集成开发环境的增强都是一个巨大的福音。
为了在Eclipse中方便地开发、调试和运行Hadoop项目,我们需要一个合适的插件,这就是"Hadoop Eclipse plugin"。 Hadoop Eclipse plugin 2.5.2是专门为Eclipse设计的,用于支持Hadoop开发。这个插件提供了在Eclipse...
【Hadoop Eclipse Plugin 1.1.2:开启Hadoop在Eclipse中的开发之旅】 Hadoop Eclipse Plugin 1.1.2 是一个专门为Eclipse IDE设计的插件,旨在简化Hadoop应用程序的开发过程。这个插件使得Java开发者能够在熟悉的...
Hadoop Eclipse Plugin是Eclipse IDE的一个扩展,它允许开发者在Eclipse中直接创建、编辑、部署和管理Hadoop作业。这个插件的2.6.5版本针对Hadoop 2.x系列进行了优化,确保了与Hadoop集群的无缝集成。通过该插件,...
Hadoop Eclipse Plugin是Apache Hadoop项目的一个重要组成部分,主要用于在Eclipse集成开发环境中方便地创建、管理和调试Hadoop ...如果你是Hadoop初学者或者希望提升开发效率,掌握这个插件的使用将对你大有裨益。
为了方便开发者在Eclipse中直接操作和管理Hadoop集群,Apache Hadoop社区开发了Hadoop Eclipse Plugin。本文将深入探讨这个名为“hadoop-eclipse-plugin-2.2.0”的插件,以及它如何为Hadoop-2.2.0版本提供支持。 ...
5. **安装与配置**:使用这个压缩包,开发者需要首先在32位Linux环境下安装Eclipse Kepler,然后将提供的插件导入到Eclipse中,按照指定步骤进行配置,以实现Hadoop开发环境的搭建。 6. **应用场景**:此组合常用于...
"Eclipse Hadoop 例子源代码"是一个学习和理解Hadoop在Eclipse中开发过程的宝贵资源。这个压缩包可能包含了一个或多个具体的Hadoop MapReduce项目示例,其中"MyWordCount"是其中一个关键的样例程序。 【描述】:...
在开发过程中,Hadoop-Eclipse-Plugin提供了一些实用的功能,如JobTracker视图,可以实时监控MapReduce任务的执行状态,包括任务进度、任务日志等信息,帮助开发者快速定位和解决问题。另外,它还支持直接在Eclipse...
使用Hadoop Eclipse Plugin 2.7.3后,开发者可以直观地在Eclipse中看到Hadoop集群的拓扑结构,包括各个节点的状态,从而能够快速定位问题。此外,插件还支持直接在Eclipse中创建HDFS目录,上传和下载文件,以及提交...
通过上述步骤,我们不仅完成了在Eclipse环境下配置Hadoop开发环境的任务,还成功实现了WordCount程序的开发与运行,这对于初学者来说是非常好的实践案例。未来可以在此基础上尝试更复杂的大数据处理任务,进一步探索...
标题中的“eclipse-hadoop2.7.1.zip”是一个包含Eclipse插件和Hadoop相关组件的压缩包,主要用于帮助Java开发人员...对于学习和实践Hadoop的初学者以及在Windows环境下工作的开发团队来说,这是一个非常有价值的资源。
Hadoop Eclipse插件是开发Hadoop MapReduce程序的重要工具,它允许开发者在本地Eclipse集成开发环境中直接编写、测试和调试Hadoop作业,极大地提高了开发效率。以下是对这个插件的详细说明: 首先,安装Hadoop ...
这份文档通常会涵盖从安装、配置到实际开发的全过程,对于初学者来说是宝贵的参考资料。 7. **版本兼容性** 尽管这个插件针对的是Hadoop 0.21.0版本,但需要注意的是,随着Hadoop版本的升级,某些新特性和API可能...