HDFS初次编程

hadoop是用Java语言实现的开源软件框架,可以支持多种语言,我学习的时候用得自然就是Java了。

在开始编程之前需要做一些配置工作:

 

Hadoop开发:Hadoop为HDFS和Mapreduce提供了基础的支持,叫hadoop common。Hadoop有一个专门的common jar包,需要导入这个包。

路径:(安装位置)/hadoop(安装之后整个文件夹,一般格式为hadoop+版本号)/share/hadoop

 

首先新建一个Java Project,右键项目选择Properties---->Java Build Path---->Libraries---->Add External JARs

导入如下所示jar包:

 

接下来就可以具体编程了。

编程实例:

检测伪分布式文件系统HDFS上到底存不存在一个test.txt文件?

1. 把配置文件放到当前Java工程目录下,即把core-site.xml和hdfs-site.xml(/hadoop/etc/hadoop/)放到项目的bin文件夹下面。

 

若是缺少该步,运行时会出现错误:

 

2 编写代码如下:

 1 import org.apache.hadoop.conf.Configuration;
 2 import org.apache.hadoop.fs.FileSystem;
 3 import org.apache.hadoop.fs.Path;
 4 
 5 public class first {
 6     public static void main(String args[]){
 7         try{
 8             String filename = "hdfs://localhost:9000/user/hadoop/test.txt";
 9             
10             Configuration conf = new Configuration();
11             FileSystem fs = FileSystem.get(conf);
12             if(fs.exists(new Path(filename))){
13                 System.out.println("File exists");
14             }
15             else{
16                 System.out.println("File dose not exist");
17             }
18             
19         }
20         catch(Exception e){
21             e.printStackTrace();
22         }
23     }
24 }

 

启动hadoop:

 

在这过程中也是遇到了一系列错误,首先是:

错误原因是缺少包,简单粗暴的解决办法是把common中lib下的所有包都导进去。

 

 再次运行,又出错:

解决办法为在项目的src文件下面创建一个log4j.properties文件,内容为:

# Configure logging for testing: optionally with log file
log4j.rootLogger=WARN, stdout
# log4j.rootLogger=WARN, stdout, logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

 

再运行,继续出错,"Class org.apache.hadoop.hdfs.DistributedFileSystem not found":

又是缺少包,仍然是粗暴添加包,把hdfs中的所有jar包添加进去即可。

 

最后,终于成功了!

 

posted @ 2019-01-03 16:10  Kayden_Cheung  阅读(293)  评论(0编辑  收藏  举报
//目录