大資料-09-Intellij idea 開發java程式操作HDFS

來源:互聯網
上載者:User

標籤:comm   .com   之間   common   就是   功能   efault   down   ext   

主要摘自 http://dblab.xmu.edu.cn/blog/290-2/

簡介

本指南介紹HadoopDistributed File SystemHDFS,並詳細指引讀者對HDFS檔案系統的操作實踐。HadoopDistributed File System(Hadoop Distributed File System,HDFS)是Hadoop核心組件之一,如果已經安裝了Hadoop,其中就已經包含了HDFS組件,不需要另外安裝。

利用Java API與HDFS進行互動

Hadoop不同的檔案系統之間通過調用Java API進行互動,上面介紹的Shell命令,本質上就是Java API的應用。下面提供了Hadoop官方的Hadoop API文檔,想要深入學習Hadoop,可以訪問如下網站,查看各個API的功能。
利用Java API進行互動,需要利用軟體Eclipse編寫Java程式。

(一) 在Ubuntu中安裝Intellij idea

直接在官網下載試用版本ideaIU-2018.1.1.tar.gz。

(二)在idea建立項目

點擊建立新項目

選擇java項目, 如果在SDK未顯示1.8, 請點南new按鍵添加相應SDK,預設位置為/usr/lib/jvm/java-8-openjdk-amd64

在“Project name”後面輸入工程名稱“HDFSExample”,選中“Use default location”,讓這個Java工程的所有檔案都儲存到“/home/hadoop/HDFSExample”目錄下然後,點擊介面底部的“Next>”按鈕,進入下一步的完成設定。

(三)為項目添加需要用到的JAR包

在File>Project Struecture 中添加引用JAR包

需要在這個介面中載入該Java工程所需要用到的JAR包,這些JAR包中包含了可以訪問HDFS的Java API。這些JAR包都位於Linux系統的Hadoop安裝目錄下,對於本教程而言,就是在“/usr/local/hadoop/share/hadoop”目錄下。點擊介面中按鈕,

為了編寫一個能夠與HDFS互動的Java應用程式,一般需要向Java工程中添加以下JAR包:
(1)”/usr/local/hadoop/share/hadoop/common”目錄下的hadoop-common-2.7.1.jar和haoop-nfs-2.7.1.jar;
(2)/usr/local/hadoop/share/hadoop/common/lib”目錄下的所有JAR包;
(3)“/usr/local/hadoop/share/hadoop/hdfs”目錄下的haoop-hdfs-2.7.1.jar和haoop-hdfs-nfs-2.7.1.jar;
(4)“/usr/local/hadoop/share/hadoop/hdfs/lib”目錄下的所有JAR包。
比如,如果要把“/usr/local/hadoop/share/hadoop/common”目錄下的hadoop-common-2.7.1.jar和haoop-nfs-2.7.1.jar添加到當前的Java工程中。

(四)編寫Java應用程式代碼

輸入建立的Java類檔案的名稱,這裡採用名稱“HDFSFileIfExist”,其他都可以採用預設設定,然後,點擊介面右下角“OK”按鈕,

建立了一個名為“HDFSFileIfExist.java”的原始碼檔案,請在該檔案中輸入以下代碼:

import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;public class HDFSFileIfExist {    public static void main(String[] args){        try{            String fileName = "test";            Configuration conf = new Configuration();            conf.set("fs.defaultFS", "hdfs://192.168.3.236: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("檔案存在");            }else{                System.out.println("檔案不存在");            }         }catch (Exception e){            e.printStackTrace();        }    }}
(五)編譯運行程式

在開始編譯運行程式之前,請一定確保Hadoop已經啟動運行,如果還沒有啟動,需要開啟一個Linux終端,輸入以下命令啟動Hadoop:

cd /usr/local/hadoop./sbin/start-dfs.sh

在Project視窗中,選中HDFSFileIfExist類,右鍵選擇run,即可看到結果。 上java代碼中,我們設定的判斷HDFS中是否含有test名字的檔案,可以根據實際情況作調整。

(六)應用程式的部署

下面介紹如何把Java應用程式產生JAR包,部署到Hadoop平台上運行。首先,在Hadoop安裝目錄下建立一個名稱為myapp的目錄,用來存放我們自己編寫的Hadoop應用程式,可以在Linux的終端中執行如下命令:

cd /usr/local/hadoopmkdir myapp

然後,請在Idea工作介面左側的File > Project Structure,出現如下面示後,再作相應選擇:

然後選擇要匯出的類

然後選刪除其它依賴類,只留下自己的代碼即可


選擇功能表列的Build,選擇Build Artifacts。
然後測試程式

cp out/artifacts/HDFSExample_jar/HDFSExample.jar  /usr/local/hadoop/ ./bin/hadoop jar HDFSExample.jar

我這裡輸出結果是

檔案不存在

如果在上面匯出設定時,不刪除依賴類,則用下面的方法也可以運行:

java -jar ./HDFSExample.jar

得到一樣的結果。

大資料-09-Intellij idea 開發java程式操作HDFS

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.