Talend - Hadoop分散式檔案系統



本章節,我們將詳細學習Talend如何與Hadoop分散式檔案系統協同工作。

設定和先決條件

在開始使用Talend操作HDFS之前,我們應該瞭解為此目的需要滿足的設定和先決條件。

這裡我們在虛擬機器上執行Cloudera quickstart 5.10虛擬機器。此虛擬機器必須使用主機專用網路。

主機專用網路IP:192.168.56.101

Pre Requisites

您必須在Cloudera Manager上執行相同的主機。

Cloudera Manager

現在在您的Windows系統上,轉到c:\Windows\System32\Drivers\etc\hosts並使用記事本編輯此檔案,如下所示。

Windows System

同樣,在您的Cloudera quickstart虛擬機器上,編輯您的/etc/hosts檔案,如下所示。

sudo gedit /etc/hosts

Hosts

設定Hadoop連線

在資源庫面板中,轉到元資料。右鍵單擊Hadoop叢集並建立一個新的叢集。為此Hadoop叢集連線提供名稱、用途和說明。

點選下一步。

Hadoop Connection

選擇分發版為Cloudera,並選擇您正在使用的版本。選擇檢索配置選項,然後單擊下一步。

Hadoop Configuration

輸入管理器憑據(帶埠的URI、使用者名稱、密碼),如下所示,然後單擊連線。如果詳細資訊正確,您將在已發現的叢集下獲得Cloudera QuickStart。

Manager Credentials

點選獲取。這將獲取HDFS、YARN、HBASE、HIVE的所有連線和配置。

全選並點選完成。

Click Fetch

請注意,所有連線引數都將自動填充。在使用者名稱中提及cloudera,然後單擊完成。

Connection Parameters

這樣,您就成功連線到Hadoop叢集。

Hadoop Cluster

連線到HDFS

在此作業中,我們將列出HDFS上存在的所有目錄和檔案。

首先,我們將建立一個作業,然後向其中新增HDFS元件。右鍵單擊作業設計並建立一個新作業 – hadoopjob。

現在從調色盤中新增2個元件 – tHDFSConnection和tHDFSList。右鍵單擊tHDFSConnection,並使用“OnSubJobOk”觸發器連線這兩個元件。

現在,配置這兩個Talend HDFS元件。

Connecting Hdfs

在tHDFSConnection中,選擇資源庫作為屬性型別,並選擇您之前建立的Hadoop Cloudera叢集。它將自動填充此元件所需的所有必要詳細資訊。

Property Type

在tHDFSList中,選擇“使用現有連線”,並在元件列表中選擇您配置的tHDFSConnection。

在HDFS目錄選項中提供HDFS的主目錄路徑,並單擊右側的瀏覽按鈕。

Browse Button

如果您已使用上述配置正確建立連線,您將看到如下所示的視窗。它將列出HDFS主目錄上存在的所有目錄和檔案。

Hdfs Browse

您可以透過檢查Cloudera上的HDFS來驗證這一點。

Checking Hdfs

從HDFS讀取檔案

在本節中,讓我們瞭解如何在Talend中從HDFS讀取檔案。您可以為此目的建立一個新作業,但是這裡我們使用現有的作業。

從調色盤拖放3個元件 – tHDFSConnection、tHDFSInput和tLogRow到設計器視窗。

右鍵單擊tHDFSConnection,並使用“OnSubJobOk”觸發器連線tHDFSInput元件。

右鍵單擊tHDFSInput,並將主要連結拖動到tLogRow。

Reading File

請注意,tHDFSConnection將與之前的配置類似。在tHDFSInput中,選擇“使用現有連線”,並在元件列表中選擇tHDFSConnection。

在檔名中,提供要讀取的檔案的HDFS路徑。這裡我們讀取一個簡單的文字檔案,所以我們的檔案型別是文字檔案。同樣,根據您的輸入,填寫如下所示的行分隔符、欄位分隔符和標題詳細資訊。最後,單擊“編輯模式”按鈕。

Edit schema Button

由於我們的檔案只有純文字,我們只新增一個字串型別的列。現在,單擊確定。

注意 - 當您的輸入具有多種不同型別的列時,您需要在此處相應地提及模式。

Multiple Columns

在tLogRow元件中,單擊編輯模式中的同步列。

選擇您希望輸出列印的模式。

Select Mode

最後,單擊執行以執行作業。

成功讀取HDFS檔案後,您可以看到以下輸出。

Successful Reading

將檔案寫入HDFS

讓我們看看如何在Talend中將檔案寫入HDFS。從調色盤拖放3個元件 – tHDFSConnection、tFileInputDelimited和tHDFSOutput到設計器視窗。

右鍵單擊tHDFSConnection,並使用“OnSubJobOk”觸發器連線tFileInputDelimited元件。

右鍵單擊tFileInputDelimited,並將主要連結拖動到tHDFSOutput。

Main Link

請注意,tHDFSConnection將與之前的配置類似。

現在,在tFileInputDelimited中,在檔名/流選項中提供輸入檔案的路徑。這裡我們使用csv檔案作為輸入,因此欄位分隔符為“,”。

根據您的輸入檔案選擇標題、頁尾和限制。請注意,這裡我們的標題為1,因為第1行包含列名,限制為3,因為我們只將前3行寫入HDFS。

現在,單擊編輯模式。

Select Header

現在,根據我們的輸入檔案,定義模式。我們的輸入檔案有3列,如下所示。

Input File

在tHDFSOutput元件中,單擊同步列。然後,在“使用現有連線”中選擇tHDFSConnection。此外,在檔名中,提供要寫入檔案的HDFS路徑。

請注意,檔案型別將為文字檔案,操作將為“建立”,行分隔符將為“\n”,欄位分隔符為“;”。

Row Separator

最後,單擊執行以執行您的作業。作業成功執行後,檢查您的檔案是否在HDFS上。

Executed Successfully

使用您在作業中提到的輸出路徑執行以下hdfs命令。

hdfs dfs -cat /input/talendwrite

如果您成功寫入HDFS,您將看到以下輸出。

Writing Successful
廣告