三十四、HDFS客戶端操作
阿新 • • 發佈:2018-12-15
HDFS客戶端操作
1、jar包準備
1)解壓hadoop-2.7.2.tar.gz(原始碼)到非中文目錄hadoop-2.7.2
2)建立_lib資料夾,進入hadoop-2.7.2資料夾的share資料夾,查詢所有jar包,並把jar包拷貝到_lib資料夾下
3)在全部jar包中查詢sources.jar(原始碼包),並剪下到_lib資料夾下的_source資料夾。
4)在全部jar包中查詢tests.jar(測試包),並剪下到_lib資料夾下的_test資料夾。
2、eclipse準備
2.1、將_lib資料夾下非_source、_test資料夾的143個jar包拷貝到D:\EclipseWorkSpace\hadoop_2.7.2_lib
2.2、解壓原始碼hadoop-2.7.2.tar.gz到D:\EclipseWorkSpace\hadoop-2.7.2資料夾
將hadoopBin資料夾內的檔案拷貝到hadoop-2.7.2\bin下
2.3、配置HADOOP_HOME環境變數
2.4、建立第一個java工程
新增143個jar包到lib目錄
package com.yang.hdfs; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.junit.Test; public class HdfsClient { public static void main(String[] args) throws IOException, InterruptedException, URISyntaxException { // 1 獲取檔案系統 Configuration configuration = new Configuration(); // 配置在叢集上執行 //configuration.set("fs.defaultFS", "hdfs://hadoop14:9000"); //FileSystem fileSystem = FileSystem.get(configuration); // 直接配置訪問叢集的路徑和訪問叢集的使用者名稱稱 FileSystem fileSystem = FileSystem.get(new URI("hdfs://hadoop14:9000"),configuration, "admin"); // 2 、把本地檔案上傳到檔案系統中 fileSystem.copyFromLocalFile(new Path("G:/yang.jpg") , new Path("/user/admin/mapreduce/wordcount/input/yang.jpg")); // 3、 關閉資源 fileSystem.close(); System.out.println("over=================================="); } }
2.5、執行程式
執行時需要配置使用者名稱稱,客戶端去操作hdfs時,是有一個使用者身份的。預設情況下,hdfs客戶端api會從jvm中獲取一個引數來作為自己的使用者身份:-DHADOOP_USER_NAME=admin,admin為使用者名稱稱。