hadoop程式設計實踐(一)
阿新 • • 發佈:2018-11-09
Hadoop操作基礎與IDE環境配置。
Hadoop操作
目錄操作
-
在操作之前,需要在hadoop根目錄下建立與Linux使用者同名的user目錄
./bin/hdfs dfs -mkdir -p /user/hadoop
-
之後,所有的檔案都預設放入這個目錄下面,很多命令與Linux命令一致,比如檢視當前資料夾:
-
這個
input
是這樣建立的:./bin/hfs dfs -mkdir input
-
若
/input
,表示在HDFS的根目錄建立input
目錄
檔案操作
本地->Hadoop
-
將本地檔案移動到hadoop的input資料夾下:
-
檢視Hadoop的input資料夾下的檔案:
Hadoop->本地
-
同時,也可以將Hadoop上的檔案下載到本地:
Hadoop之間
-
在Hadoop的檔案之間進行傳輸,與Linux上檔案傳輸無異
-
注意,要使用
-cp
命令,一定要確保目標資料夾存在:
配置IDE環境
下載IDEA
-
首先在官網下載IDEA到
Download
: -
然後執行解壓命令,解壓到
/usr/local
sudo tar -xvf ideaIU-2018.2.4.tar.gz -C /usr/local
-
進入該目錄,執行
idea.sh
匯入依賴包
/usr/local/hadoop/share/hadoop/common
目錄下的:hadoop-common-xxxx.jar
hadoop-nfs-xxx.jar
/usr/local/hadoop/share/hadoop/hdfs/hadoop-hdfs-client.xx.jar
(3.xx版本需要新加入)/usr/local/hadoop/share/hadoop/hdfs
目錄下:hadoop-hdfs-xxx.jar
hadoop-hdfs-nfs-xxx.jar
usr/local/hadoop/share/hadoop/common/lib
/usr/local/hadoop/share/hadoop/hdfs/lib
目錄下的所有JAR包
執行Hadoop檔案
測試檔案
以下檔案用於測試HDFS中是否存在一個檔案。
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class HDFSFileExist {
public static void main(String[] args){
try {
String fileName = "test";
Configuration conf = new Configuration();
conf.set("fs.defaultFS","hdfs://localhost:9000");
conf.set("fs.hdfs.impl","org.apache.hadoop.hdfs.DistributedFileSystem");
FileSystem fs = FileSystem.get(conf);
if(fs.exists(new Path(fileName))){
System.out.println("file exist!");
}else{
System.out.println("file not exist");
}
}catch (Exception e){
e.printStackTrace();
}
}
}
這裡,需要檢測的檔名稱問test
,沒有給出路徑全稱,則表示採用了相對路徑,就是當前登入Linux系統的使用者Hadoop
,在對應的目錄下是否存在test
,也就是/usr/hadoop
目錄下是否存在test檔案。
結果
在IDEA
中直接執行,可得到如下結果:
將專案打包成JAR包
-
在
IDEA
中,右鍵專案,選擇open module setting
,進入Artifact
,點+
號: -
選擇
with dependencied
,新建一個: -
選擇
Main class
,其餘預設 -
然後build artifact:
-
build之後,在對應資料夾中找到打包的JAR包:
-
在本地嘗試是否打包成功:
出現如圖結果就表示成功!