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);
// 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 |