溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

發(fā)布時間:2021-10-21 13:58:37 來源:億速云 閱讀:477 作者:柒染 欄目:大數(shù)據(jù)

這篇文章將為大家詳細講解有關(guān)如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

本講我們來講解如何讀寫另外一臺計算機上面的HDFS。在實際的環(huán)境中,我們的HDFS存儲和應(yīng)用程序很有可能是運行在不同的計算機上的。

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

上一講我們實現(xiàn)了網(wǎng)絡(luò)的互通,那么這一講我們來講解編寫一個java程序來讀寫hdfs.。

步驟:

1、確保兩臺電腦網(wǎng)絡(luò)互通(上一講內(nèi)容);

2、Centos里面的HDFS運行正常(上一講內(nèi)容);

3、Centos里面的防火墻開通9000端口(也就是centos里面的hdfs配置端口)

4、配置Windows里面的JDK;

5、配置Windows里面的Hadoop;

6、配置eclipse相關(guān)的hadoop插件或library包

7、創(chuàng)建Java程序。

一、開通9000端口

在centos的防火墻開通9000端口,如下:

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

centos開啟后,在windows里面的瀏覽器可以訪問如下來測試是否能正常訪問該端口:(注意這里要用瀏覽器的極速模式或者谷歌瀏覽器,ie瀏覽器或者兼容模式可能無法訪問)

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

另外,下面的所有的cmd命令都需要在新打開的cmd窗口中操作,如果用之前打開的cmd窗口,有可能測試失敗,因為cmd都是針對打開窗口的時候的系統(tǒng)環(huán)境生效的。

二、配置Windows里面的JDK

本次演示的jdk版本

鏈接:https://pan.baidu.com/s/1X3hqp8DhdF-JEcK4rE6TyQ 
提取碼:kvgj 
 

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

我這里的jdk文件存放的位置。

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

配置java_home

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

配置class_path

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

配置path

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

最終測試 java  和javac 命令都正常即可。

三、配置Windows里面的Hadoop

3.1配置環(huán)境變量

把hadoop壓縮包解壓,和centos里面的是通用的,只不過后綴為tar.zip的壓縮包要不斷解壓才能得到最里面的文件夾。我這里是放在C盤根目錄下。

鏈接:https://pan.baidu.com/s/1AJLenl05gs75XOQJisOyFg 
提取碼:4t4d 
上面的hadoop的版本

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

然后配置path,把hadoop_home加入到path里面

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

保存后,cmd運行查看版本,或者直接在cmd命令框輸入hadoop,如果提示以下錯誤:

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

根據(jù)提示,打開hadoop下面的hadoop-env.cmd  這里要注意的是cmd后綴是針對windows的,同名的sh后綴的是針對linux系統(tǒng)的。

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

選中hadoop-env.cmd文件,然后點擊編輯(雙擊就直接運行了)。打開后把里面的“set JAVA_HOME=”改成如下:

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

上面要注意的是,因為我的java是放在 C:\Program Files 里面的,如果直接寫C:\Program Files\Java\jdk-13.0.2 那么在dos模式下系統(tǒng)是無法識別這個路徑的。

dos文件名模式下,“C:\Program Files”的縮寫是“PROGRA~1”。或者改成“C:\Program Files”\Java\jdk-13.0.2  

也就是用雙引號括起來,否則系統(tǒng)無法識別有效的路徑。

設(shè)置完后,運行cmd,可以看到正常了。

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

3.2下載winutils.exe

winutils.exe是在Windows系統(tǒng)上需要的hadoop調(diào)試環(huán)境工具,里面包含一些在Windows系統(tǒng)下調(diào)試hadoop、spark所需要的基本的工具類,

單個winutils.exe鏈接:https://pan.baidu.com/s/1tsnA4dKOaaI-kdtjqZ5gTQ 
提取碼:ip7h

下載后放在hadoop根目錄bin下面

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

否則會提示:

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

3.3 下載hadoop.dll

將hadoop.dll分別復(fù)制到hadoop根目錄的/bin和 C:\windows\system32目錄下。

單個hadoop.dll鏈接:https://pan.baidu.com/s/1kJBEDPXqOKmV1ZvhEbnB_Q 
提取碼:02hs

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

四、配置eclipse的hadoop插件

演示用的eclipse版本是4.14:

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

安裝eclipse的hadoop插件,需要下載對應(yīng)hadoop的eclipse插件版本。這里演示的hadoop版本是2.9.2,所以插件也是匹配的版本。

單個hadoop插件鏈接:https://pan.baidu.com/s/1cNrQS3tTb3ZsDCb5C3ivlg 
提取碼:5y5s 
 

下面是eclipse安裝路徑:

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

先把eclipse關(guān)閉后,再把下載的hadoop-eclipse-plugin-2.9.2.jar放到dropins目錄下面。

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

這里要說下eclipse常見安裝插件的方式,網(wǎng)上很多方法都說把上面的jar放到plugins文件夾下面,其實eclipse從3.5版本后已經(jīng)進行了修改,安裝插件一般有3個方法:
1、直接用Eclipse在:“幫助”–>“安裝軟件”選項下安裝。
2、link安裝,方法是建一個links,里面建一個link文件把插件的路徑配過去。
3、dropins安裝方法,把需要的插件復(fù)制(拖放)到eclipse\dropins文件夾中,然后插件就安裝成功了(當然必須先解壓)。如要在其他機器上使用自己的插件。也只需要拷貝自己的dropins覆蓋掉原有的。

eclipse啟動后,可以看到在Project Explorer 多了一個“DFS Locations文件夾”

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

在windows-show view-other 啟動hadoop配置窗口

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

選中map/reduce locations 然后點擊確定,該窗口就可以顯示在IDE底部。

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

底部可以看到如下,點擊右邊藍色的大象圖標可以新增配置點:

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

在配置點中,我們輸入以下參數(shù),配置完后點擊“Finsh":

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

然后,再打開:window --> proferences 

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

找到Hadoop Map/Reduce  點擊右邊的browse 配置本地hadoop的安裝路徑,配置好后點擊apply and close 來確認。

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

五、創(chuàng)建Java程序

5.1創(chuàng)建項目

打開eclipse,這里創(chuàng)建一個java項目,名稱自定,

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

在map/reduce 里面選中 map/reduce project  

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

起一個名稱,點擊next

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

完成后,我們可以看到新建的項目里面多了一個library包,里面包含了hadoop所用到的jar.

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

如果不到如hadoop的jar包,我們會發(fā)現(xiàn),很多問題,如下紅色波浪線:

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

首先:選中你自己創(chuàng)建的項目,如下:

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

然后點擊File->Properties->

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

然后選中“Java Buile Path->Libraries->ClassPath->Add Library->User Library” 來創(chuàng)建一個自定義的jar包存儲位置,然后點擊Next

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

然后點擊“User Libraries-->New...”在輸入框中輸入你要創(chuàng)建的Libraries的名稱,這里名稱自定,同樣是要見名知意。我這里是hadoopJar

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

最后點擊OK,然后點擊應(yīng)用按鈕“Apply and Close”進入到下面的界面。

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

點擊add external Jars 來添加jar包的路徑。把common下面的所有jar包選中就可以了。

如下common目錄下有

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

lib目錄下也有

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

souces里面也有

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

所有選完后我們展開hadoopJar可以看到有了很多jar包

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

最后點擊下面的“apply and close”

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

這時候我們可以看到,所有導(dǎo)包的語句沒有了波浪線。

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

5.3編寫代碼

注意我這里是要在我的hdfs的根目錄下面創(chuàng)建一個java的文件夾。我們看到原來centos的hdfs里面是沒有java這個文件夾的。

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

在項目的src文件夾里面創(chuàng)建一個package,

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

在name這里輸入名稱,名稱自定

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

,然后在包里面創(chuàng)建主類,主類名稱同樣自定。包主要是為了后續(xù)給class分類。

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

在主類中編寫代碼如下,不給你們源碼了,好好找找寫代碼的感覺:

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

也就是規(guī)定通過root

保存后運行結(jié)果如下,選擇“java application”:

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

結(jié)果如下:

如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

最后,如果想統(tǒng)一下載所有內(nèi)容的,可以用這個鏈接(文件比較大):

鏈接:https://pan.baidu.com/s/1DIHvbSoWvYRLBaP7qQI9ng
提取碼:olgh
如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾

關(guān)于如何通過JavaAPI讀寫虛擬機里面的HDFS來創(chuàng)建文件夾就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI