最佳實踐概述
應用場景
客戶在IDC或者公有雲環境自建Hadoop叢集,資料集中儲存在HDFS檔案系統,同時借助Hive進行常見的ETL任務。客戶在決策上雲之後,會将自建Hadoop叢集的資料遷移到阿裡雲自建Hadoop或者EMR。
技術架構
本實踐方案基于如下圖所示的技術架構和主要流程編寫操作步驟。

方案優勢
-
易用性
您可以簡單選擇所需ECS機型(CPU、記憶體)與磁盤,并選擇所需的軟體,進行自動化部署。
-
經濟性
您可以按需建立叢集,即離線作業運作結束就可以釋放叢集,還可以在需要時動态地增加節點。
-
深度整合
E-MapReduce與阿裡雲其它産品(例如,OSS、MNS、RDS 和 MaxCompute 等)進行了深度整合,支援以這些産品作為Hadoop/Spark計算引擎的輸入源或者輸出目的地。
-
安全
E-MapReduce整合了阿裡雲RAM資源權限管理系統,通過主子賬号對服務權限進行隔離。
-
可靠性
使用阿裡雲資料庫RDS儲存Hive的中繼資料資訊,可以提升資料可靠性和服務可用性,免除客戶運維自建MySQL資料庫的工作。
前置條件
在進行本文操作之前,您需要完成以下準備工作:
- 注冊阿裡雲賬号,并完成實名認證。您可以登入阿裡雲控制台,并前往 實名認證頁面 檢視是否已經完成實名認證。
- 阿裡雲賬戶餘額大于100元。您可以登入阿裡雲控制台,并前往 賬戶總覽頁面 檢視賬戶餘額。
- 擁有已經通過備案的域名。
- 開通ECS、OSS、EMR、RDS、DTS和VPN網關等服務。
資源規劃說明
-
本方案僅作為實踐演練使用,在生産環境中執行時請結合業務系統實際架構進行
調整。
-
本方案購買的所有雲産品規格均為示範需要,請根據實際業務需求購買對應規格
的産品和服務。
- 本方案重在展示遷移思路和方法,線下IDC的模拟環境以元件配置呈現。
1. 基礎環境搭建
本實踐方案中,将按照技術架構圖搭建相對完整的實踐環境,包括Apache日志發生
器、Kafka隊列、Hadoop叢集、Hive+MySQL中繼資料庫。
1.1. 搭建Hadoop + Kafka + 日志發生器環境
請參考
《自建Hadoop資料遷移到阿裡雲EMR》最佳實踐
第1章:1. 自建Hadoop叢集環境搭建,完成本實踐方案的基礎環境搭建。
1.2. 建立Hive中繼資料庫
本實踐方案将在ECS上安裝MySQL資料庫,用于儲存Hive中繼資料資訊。
步驟1 登入
雲伺服器控制台,地域:華東2(上海)。
步驟2 在執行個體清單頁面,單擊右上角的建立執行個體。
步驟3 在自定義購買模式下,完成各項配置。
基礎配置:
-
付費模式:本實踐方案選用搶占式執行個體。
說明:在方案示範過程中,我們選用搶占式執行個體來降低您的成本;在實際商用環境中,請選擇适合業務場景的ECS執行個體付費模式。
搶占式執行個體的具體資訊 , - 地域及可用區:華東2(上海) 可用區F
自建Hive資料倉庫跨版本遷移到阿裡雲E-MapReduce -
執行個體
ᅳ 執行個體規格:ecs.g6.large(2 vCPU 8 GiB,通用型g6)
ᅳ 單台執行個體規格上限價:建立搶占式執行個體,必須設定單台執行個體規格的價格上限。
a) 選擇設定單台上限價。
b) 單擊檢視曆史價格。
c) 在搶占式執行個體曆史價格走勢圖中,可以看到華東2可用區F的執行個體目前市場價格為0.034 ¥/執行個體/小時,是以,我們設定單台上限價為0.04 ¥/執行個體/小時,要求略高于目前市場價格。使用者在進行實際操作時,請以界面顯示的實時價格為準。
- 購買執行個體數量:1台
自建Hive資料倉庫跨版本遷移到阿裡雲E-MapReduce
- 鏡像:
a) 選擇鏡像市場。
b) 單擊從鏡像市場擷取更多選擇(含作業系統)。
c) 輸入magento,并單擊搜尋。
d) 選擇Magento開源電子商務系統(LAMP | 含示範資料),并單擊使用,該鏡像中包含了MySQL資料庫,root使用者的預設密碼為123456
-
存儲:系統盤
高效雲盤 80GiB
步驟4 配置完成,單擊下一步:網絡和安全組。
步驟5 在網絡和安全組頁面,參考下表,配置相關參數。
配置完成,單擊下一步:系統配置。
步驟6 在系統配置頁面,參考下表,配置相關參數。
配置完成,單擊确認訂單。
步驟7 在确認訂單頁面,确認各項參數資訊。确認無誤,閱讀、同意并勾選《雲伺服器ECS服務條款》和《鏡像商品使用條款》,并單擊建立執行個體。
步驟8 建立任務送出成功後,單擊管理控制台前往ECS執行個體清單頁面檢視詳情。
至此,本實踐方案中用于模拟客戶自建Hadoop系統的ECS已經全部搭建完成,如下圖所示:
步驟9 通過如下網址登入到MySQL控制台:
http://mysql所在ecs的公網ip位址/phpmyadmin
步驟10 建立賬号,該賬号用于Hive進行連接配接。
完成後界面顯示如下圖所示:
1.3. 安裝并配置Hive
在本實踐方案中,采用Hive 1.2.2版本作為源版本。
步驟1 通過SSH登入到hadoop-master節點,執行以下指令下載下傳并解壓Hive軟體包。
cd ~
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-1.2.2\
/apache-hive-1.2.2-bin.tar.gz
tar -zxf apache-hive-1.2.2-bin.tar.gz -C /usr/local/
步驟2 配置環境變量。
vim /etc/profile
- 在檔案末尾添加如下内容,儲存并退出。
# Added for Hive
export HIVE_HOME=/usr/local/apache-hive-1.2.2-bin
export PATH=$PATH:$HIVE_HOME/bin
- 執行以下指令使檔案生效。
source /etc/profile
- 檢視Hive版本号。
hive --version
步驟3 生成hive-site.xml配置檔案。
cd /usr/local/apache-hive-1.2.2-bin/conf
cp hive-default.xml.template hive-site.xml
vim hive-site.xml
- 搜尋javax.jdo.option.ConnectionUserName,将value修改為root。
- 搜尋javax.jdo.option.ConnectionPassword,将value修改為123456,該密碼為章節1.2使用的雲市場鏡像中資料庫root使用者的預設密碼。
-
搜尋javax.jdo.option.ConnectionURL,将value修改為
jdbc:mysql://192.168.100.140:3306/hive122db?createDatabaseIfNotExist=true
說明:
(1) 将紅色字型的192.168.100.140替換為您環境中MySQL的VPC IP位址。
(2) hive122db為MySQL中的資料庫,用于儲存Hive的中繼資料。
- 搜尋javax.jdo.option.ConnectionDriverName,将value修改為 com.mysql.jdbc.Driver
- 在下圖所示的位置添加配置,即作為最靠前的
<property>
<name>system:java.io.tmpdir</name>
<value>/usr/local/apache-hive-1.2.2-bin/tmp</value>
</property>
<property>
<name>system:user.name</name>
<value>root</value>
</property>
步驟4 生成并配置hive-env.sh啟動檔案。
cd /usr/local/apache-hive-1.2.2-bin/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
在檔案末尾添加如下内容,儲存後退出:
export HIVE_AUX_JARS_PATH=/usr/local/apache-hive-1.2.2-bin/lib
步驟5 下載下傳MySQL驅動程式。
cd /usr/local/apache-hive-1.2.2-bin/lib
- 通過下面指令下載下傳MySQL Connector庫檔案
wget
https://maven.aliyun.com/repository/central/mysql/\
mysql-connector-java/8.0.18/mysql-connector-java-8.0.18.jar
步驟6 初始化源資料庫。
cd /usr/local/apache-hive-1.2.2-bin/bin
./schematool -dbType mysql -initSchema -verbose
當界面出現下圖所示資訊時表示初始化完成。
步驟7 啟動Hive進入HQL指令行互動界面。
hive
說明:在hive指令行界面,使用quit退出。
因篇幅原因,餘下内容請點選 原文連結 閱讀
阿裡巴巴開源大資料技術團隊成立Apache Spark中國技術社群,定期推送精彩案例,技術專家直播,問答區數個Spark技術同學每日線上答疑,隻為營造純粹的Spark氛圍,歡迎釘釘掃碼加入!