記
下午睡了覺,因爲把耳機放公司了,所以叫了同事去幫我拿耳機,沒耳機的我沒心情寫東西,就躺了一下午,耳機回來後,開剛。
準備hadoop包
統一用和Linux裏安裝的hadoop版本,即爲hadoop-2.7.5。還有要準備好hadoop在window環境下編譯的文件,文件鏈接爲:
鏈接:https://pan.baidu.com/s/1N_pXCB3fPU6NhIxgdj39mw
提取碼:owb1
拷貝這個下載的文件的所有內容,直接拷貝覆蓋掉hadoop的bin目錄下的文件。
在任意地方創建一個放jar包的文件夾,我在G盤創建了名爲hadoop-lib的文件夾,將hadoop-2.7.5裏面share文件夾的jar包拷貝到hadoop-lib中,如圖5-1紅色框文件夾夾裏面的lib目錄的jar包,和外部的jar包都需要拷貝。
window配置環境變量
將hadoop的路徑加入HADOOP_HOME,加入path中,並且配置HADOOP_USER_NAME,值爲root,因爲我在Linux用的是root用戶進行安裝的hadoop。所以環境變量的配置如圖5-2,5-3,5-4所示。
要把hadoop中bin目錄下hadoop.dll這個文件拷貝到C盤Windows/System32目錄中。
驗證搭建
驗證代碼是否能跑通。
1)打開eclipse,創建一個java項目,配置引用外部jar包,引用的都是上面我們創建的hadoop-lib裏面的jar包,操作如下截圖:
2)做完以上配置後,在項目上應用它,操作截圖如下:
3)以上配置完成後,在window運行hadoop相關的程序時候,是不知道hadoop的各種文件地址,zookeeper的地址的,所以我要將Linux中之前配置好的hadoop的其中一些配置文件拷出來放到項目中src目錄下,需要拷出來的文件爲core-site.xml和hdfs-site.xml。這裏拷貝的時候可以順便練習一下hadoop的操作,可以將這兩個文件上傳到hdfs中,然後window再通過瀏覽器訪問master:50070把這兩個文件下載出來,這裏的具體操作就不在這裏說了。
4)編寫代碼測試(以創建一個文件夾爲例子),創建一個類,代碼如下:
package com.xige.hdfs;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class Test01Hdfs {
Configuration conf;
FileSystem fs;
@Before
public void conn() throws IOException {
conf = new Configuration();
fs = FileSystem.get(conf);
}
//測試創建文件夾
@Test
public void mkdir() throws IOException {
Path path = new Path("/test01mkdir");
if(fs.exists(path)) {
fs.delete(path,true);
}
fs.mkdirs(path);
}
//釋放資源
@After
public void close() throws IOException {
fs.close();
}
}