技术分享

HDFS客户端环境准备


Eclipse环境准备

1  jar包准备


  1)解压hadoop-2.7.2.tar.gz到非中文目录

  2)进入share文件夹,查找所有jar包,并把jar包拷贝到_lib文件夹下

  3)在全部jar包中查找sources.jar,并剪切到_source文件夹。

  4)在全部jar包中查找tests.jar,并剪切到_test文件夹。

2  Eclipse准备

  1)根据自己电脑的操作系统拷贝对应的编译后的hadoop jar包到非中文路径(例如:E:hadoop-2.7.2)。(如果不生效,重新启动eclipse)

  

  

  2)配置HADOOP_HOME环境变量, 同时配置path(%HADOOP_HOME%in)

  

  3)创建第一个java工程HdfsClientTest1

  4)创建lib文件夹,然后添加jar包

  

  5)创建包名:cn.ntrj.hdfs

  6)创建HdfsClient类

   

   

   

   

   

   

   

  public class HdfsClient {

                // 上传文件

                public static void main(String[] args) throws IOException, InterruptedException, URISyntaxException {

                              // 1 获取文件系统

                              Configuration configuration = new Configuration();

                              // 配置在集群上运行

                              configuration.set('fs.defaultFS', 'hdfs://hadoop102:9000');

                              FileSystem fs = FileSystem.get(configuration);

   

                              //FileSystem fs = FileSystem.get(new URI('hdfs://hadoop011:9000'), configuration, 'dfbz');

   

                              // 2 上传文件

                              fs.copyFromLocalFile(new Path('e:/hello.txt'), new Path('/hello2.txt'));

   

                              // 3 关闭资源

                              fs.close();

                              System.out.println('over');

                }

  }

  7)执行程序

  运行时需要配置用户名称

  

  客户端去操作hdfs时,是有一个用户身份的。默认情况下,hdfs客户端api会从jvm中获取一个参数来作为自己的用户身份:-DHADOOP_USER_NAME=dfbz,dfbz为用户名称。

  8)注意:如果eclipse打印不出日志,在控制台上只显示

  1.log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).  

  2.log4j:WARN Please initialize the log4j system properly.  

  3.log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

  需要在项目的src目录下,新建一个文件,命名为“log4j.properties”,在文件中填入

  log4j.rootLogger=INFO, stdout 

  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