1. 程式人生 > >hadoop程式設計實踐(一)

hadoop程式設計實踐(一)

Hadoop操作基礎與IDE環境配置。

Hadoop操作

目錄操作

  • 在操作之前,需要在hadoop根目錄下建立與Linux使用者同名的user目錄

    ./bin/hdfs dfs -mkdir -p /user/hadoop
    
  • 之後,所有的檔案都預設放入這個目錄下面,很多命令與Linux命令一致,比如檢視當前資料夾:

    53828664252

  • 這個input是這樣建立的:

    ./bin/hfs dfs -mkdir input 
    
  • /input,表示在HDFS的根目錄建立input目錄

檔案操作

本地->Hadoop

  • 將本地檔案移動到hadoop的input資料夾下:

  • 檢視Hadoop的input資料夾下的檔案:

    53828629776

Hadoop->本地

  • 同時,也可以將Hadoop上的檔案下載到本地:

    53828692861

Hadoop之間

  • 在Hadoop的檔案之間進行傳輸,與Linux上檔案傳輸無異

  • 注意,要使用-cp命令,一定要確保目標資料夾存在:

    53828732698

配置IDE環境

下載IDEA

  • 首先在官網下載IDEA到Download

    53828888226

  • 然後執行解壓命令,解壓到/usr/local

    sudo tar -xvf ideaIU-2018.2.4.tar.gz -C /usr/local
    
  • 進入該目錄,執行idea.sh

    ,進行安裝:

    53828897483

匯入依賴包

  1. /usr/local/hadoop/share/hadoop/common目錄下的:
    • hadoop-common-xxxx.jar
    • hadoop-nfs-xxx.jar
  2. /usr/local/hadoop/share/hadoop/hdfs/hadoop-hdfs-client.xx.jar(3.xx版本需要新加入)
  3. /usr/local/hadoop/share/hadoop/hdfs目錄下:
    • hadoop-hdfs-xxx.jar
    • hadoop-hdfs-nfs-xxx.jar
  4. usr/local/hadoop/share/hadoop/common/lib
    目錄下的所有JAR包
  5. /usr/local/hadoop/share/hadoop/hdfs/lib目錄下的所有JAR包

53829124630

執行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中直接執行,可得到如下結果:

53829318250

將專案打包成JAR包

  • IDEA中,右鍵專案,選擇open module setting,進入Artifact,點+號:

    53829334744

  • 選擇with dependencied,新建一個:

    53829340554

  • 選擇Main class,其餘預設

  • 然後build artifact:

    53829349589

  • build之後,在對應資料夾中找到打包的JAR包:

    53829354603

  • 在本地嘗試是否打包成功:

    53829358012

    出現如圖結果就表示成功!