入門Hadoop---HDFS-API

第一步:建立一個新的項目 並導入須要的jar包html

公共核心包java

 

公共依賴包apache

 

hdfs核心包windows

 

hdfs依賴包app

 

第二步:將Linux中hadoop的配置文件拷貝到項目的src目錄下oop

 

第三步:配置windows本地的hadoop環境變量(HADOOP_HOME:hadoop的安裝目錄 Path:在後面添加hadoop下的bin目錄).net

第四步:使用windows下編譯好的hadoop替換hadoop的bin目錄和lib目錄3d

第五步:使用FileSystem對象對hdfs進行操做(注意:FileSystem默認是本地文件系統 所以要經過Configuration對象配置爲hdfs系統)htm

 

第六步:在運行以前 須要保證本地的用戶名和hadoop的用戶名一致 在不修改windows用戶名的狀況下 能夠配置Eclipse的參數實現:右擊項目->Run As ->Run Configurations對象

 

運行便可成功上傳本地文件到hdfs

代碼以下:

package com.xjtuse;

import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Before;
import org.junit.Test;

public class HdfsDemo {
FileSystem fs = null;
@Before
// 初始化HDFS
public void init() throws Exception
{
// 配置文件 默認加載src下的配置文件
Configuration conf = new Configuration();
// conf.set("fs.defaultFS", "hdfs://master:9000");
    // 生成一個文件系統客戶端操做對象
//     fs = FileSystem.get(conf);
// 第一個參數是URI指明瞭是hdfs文件系統 第二個參數是配置文件 第三個參數是指定用戶名 須要與hadoop用戶名保持一致
fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
}

@Test
// 建立新的文件夾
public void mkdir() throws Exception
{
Path path = new Path("/hello");
fs.mkdirs(path);
// 關閉
fs.close();
}

@Test
// 上傳文件
public void upload() throws Exception
{
// 第一個參數是本地windows下的文件路徑 第二個參數是hdfs的文件路徑
fs.copyFromLocalFile(new Path("F:/Files/data/README.txt"), new Path("/"));
// 關閉
fs.close();

}
}

轉自: http://www.javashuo.com/article/p-sopdnoog-o.html

補充:最後咱們運行可能報以下異常。

 

 

 這個時候在項目根目錄下建立一個文件命名爲log4j.properties並填寫以下內容,而後從新運行就行了。

 hadoop.root.logger=DEBUG, console
 log4j.rootLogger = DEBUG, console
 log4j.appender.console=org.apache.log4j.ConsoleAppender
 log4j.appender.console.target=System.out
 log4j.appender.console.layout=org.apache.log4j.PatternLayout
 log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n

有的時候咱們新建文件的時候選擇File->New沒有選擇文件這個選項,這個時候不用着急,它給隱藏了,找到Window->Perspective->Customize Perspective 勾選上File便可。

系列傳送門

相關文章
相關標籤/搜索