FineDataLink 支援讀取 Hadoop Hive 中的資料進行資料處理,但是直接透過Hive、Impala的API寫入資料效能不佳,因此 FDL 提供了Hive(HDFS) 寫入資料。
本文將介紹如何連結 Hadoop Hive (HDFS)資料源。
由於Hive底層儲存(HDFS)的限制,資料同步、資料轉換-DB表匯出中僅支援追加寫入資料,不支援更新資料。
詳情請參見:前提條件
下載驅動,並將其上傳至 FineDataLink,如何上傳可參見:驅動管理
注:在上傳驅動包時,需要解壓下面的「日誌jar」檔案,和驅動一起上傳至 FineDataLink。
Hive1.1.zip
日志jar.rar
Hadoop Hive.rar
在連結資料庫之前,請收集以下資訊:
資料庫所在伺服器的 IP 地址和埠號;
資料庫的名稱;
若是帳號密碼認證,需要收集帳號和密碼;若是 Kerberos 認證,需要收集用戶端 principal 和 keytab 金鑰路徑;
HDFS 檔案系統地址(IP 地址和埠號)注:同時需要保證 FineDataLink 所在伺服器能存取 HDFS 檔案系統埠,例如 HDFS 檔案系統預設埠為 8020,且伺服器開啟了防火牆,則需要參考下文開放 8020 埠。
Windows 系統開放埠步驟請參見:Windows伺服器設定出入站規則
Linux 系統開放埠步驟請參見:Linux防火墻使用及配置
1)管理者登入 FDL 工程,點選「管理系統>資料連結>資料連結管理」,選中某個資料夾後,建立資料連結。如下圖所示:
2)設定資料連結名稱(可同時修改資料連結所在目錄)。如下圖所示:
3)可根據資料源分類、支援形式、適配模組、資料源名稱篩選資料庫。如下圖所示:
4)切換驅動為「自訂」選擇 3.2 節上傳的驅動,並輸入 3.3 節收集的連結資訊,如下圖所示:
Kerberos 認證方式詳情可參見:資料連結 Kerberos 認證
使用 Kerberos 認證需要注意以下事項:
連結前請檢查 /etc/hosts 中的機器名對應 IP 是否為局域網 IP;
檢查 /etc/hostname 中機器名設定和 /etc/hosts 中是否配置一致;
檢查 FineDataLink 所在機器 hosts 配置的 IP+ 機器名是否正確;
本地連結時需要配置 /etc/hosts 檔案,新增遠端映射:IP+機器名,例如: 192.168.5.206 centos-phoenix 。
5)點選「測試連結」,若連結成功則「儲存」該連結。如下圖所示:
可以在資料同步、資料轉換中使用資料源進行資料讀取和寫入。
注:當資料去向為Hive(HDFS),自動建表時,如未特殊配置則中文的欄位會變成問號。
資料連結報錯 org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x。
Linux 環境:
在FDL服務端的catalina.sh 裏面指定新增變數宣告:export HADOOP_USER_NAME = hdfs,指定連結 HDFS 的使用者為 hdfs;
注:hdfs 可根據實際帳號修改。
Windows 環境:
在FDL服務端的 catalina.bat 裏面指定新增變數宣告:HADOOP_USER_NAME=hdfs,指定連結 HDFS 的使用者為 hdfs;
在不指定使用者的情況下,連結HDFS時預設使用root帳號,需要關閉HDFS使用者驗證,可能會帶來安全隱患。因為該方案可讓所有使用者存取 hdfs,不用進入hdfs使用者再執行命令。
注:CDH中沒有這個配置,需要手動加進去。
步驟如下:
1)找到 hdfs-site.xml 的 HDFS 服務進階配置程式碼段(安全閥);2)dfs.permissions.enabled 的值設定為 false,儲存更改,重啟 hdfs 。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙