高可用Hadoop平臺-實戰尾聲篇
1.概述
今天這篇部落格就是《高可用Hadoop平臺》的尾聲篇了,從搭建安裝到入門執行 Hadoop 版的 HelloWorld(WordCount 可以稱的上是 Hadoop 版的 HelloWorld ),在到開發中需要用到的各個套件以及對套件的安裝使用,在到 Hadoop 的實戰,一路走來我們對在Hadoop平臺下開發的基本流程應該都熟悉了。今天我們來完成在高可用Hadoop平臺開發的最後一步,匯出資料。
2.匯出資料目的
首先,我來說明下為什麼要匯出資料,匯出資料的目的是為了幹嘛?
我們都知道,我們當初統計這些資料的目標,就是為了來視覺化這些資料結果;雖然結果我們是統計出來儲存在 HDFS 上,但是,前段同學需要拿到這些資料,直接操作 HDFS 讀取統計結果,這樣的做法是不明智的,撇開安全性不說,時延就是一個很大的問題。所以,這裡我們需要有一個步驟去完成資料的匯出,將資料匯出到 Mysql 之類的關係型資料庫。這裡我們用到的匯出套件是Sqoop。
3.Sqoop
3.1安裝包
sqoop 下載地址
3.2配置
開啟配置環境檔案:
sudo vi /etc/profile
編輯 Sqoop 的環境,內容如下所示:
export SQOOP_HOME=/home/hadoop/sqoop-1.4.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin:$HIVE_HOME/bin:$SQOOP_HOME/bin
3.3sqoop-env.sh
變動內容如下:
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/home/hadoop/hadoop-2.6.0
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/home/hadoop/hadoop-2.6.0
#set the path to where bin/hbase is available
#export HBASE_HOME=
#Set the path to where bin/hive is available
export HIVE_HOME=/home/hadoop/hive-0.14.0
#Set the path for where zookeper config dir is
#export ZOOCFGDIR=
注:這裡使用 Sqoop 自帶的 ZooKeeper ,另外由於沒有使用到 HBase ,故這裡未配置 HBase 的路徑指向。
3.4異常
Streaming result set com.mysql.jdbc.RowDataDynamic@12e9d40f is still active
執行sqoop指令碼時,出現這個異常是因為mysql的驅動的原因,使用最新的mysql驅動包。
解決方案:
wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.32.tar.gz
然後解壓到sqoop目錄的lib目錄下,重新執行指令碼正常。
至此,sqoop的安裝配置以及使用到此完成。
4.匯出流程
流程圖如下所示:
將hive資料庫的TBLS表匯入到hdfs,命令內容如下:
sqoop import
--connect jdbc:mysql://10.211.55.26:3306/hive
--username root
--password root
--table TBLS
--fields-terminated-by ` `
這裡 JDBC 的連結地址指向 Mysql 庫的連結地址。
注:–fields-terminated-by ` ` 以tab分割
–null-string `**` 將null用**替代(–是sqoop保留字元,不能使用)
-m 1 指定一個map任務
將hdfs上的檔案匯入到mysql資料庫:
sqoop export
-D sqoop.export.records.per.statement=100
--connect jdbc:mysql://10.211.55.26:3306/sqoop
--username root
--password root
--table portal
--fields-terminated-by `,`
--export-dir "/home/hive/warehouse/logdfs_${yesterday}"
--batch --update-key date,appkey
--update-mode allowinsert;
接下來,在我們匯出資料成功後,我們可以將臨時使用 hive 統計的結果表刪除,若資源充足,我們可以保留最近 7 天的統計結果。
刪除指令碼命令如下所示:
hive -e "drop table pv_${yesterday};drop table reguser_${yesterday};drop table ip_${yesterday};drop table jumper_${yesterday};drop table logdfs_${yesterday};"
5.總結
在匯出的時候,我們需要注意匯出欄位的分隔符,匯出到目的地表名是否存在,書寫匯出命令是否正確。在匯出異常時,根據具體的異常資訊做相應的處理。
6.結束語
《高可用Hadoop平臺》系列就和大家分享到這裡,這一系列文章給對Hadoop方面感興趣,以及打算從事Hadoop方面工作的人一點點幫助,大家在研究的過程當中若是有什麼問題,可以加群討論或是傳送郵件給我,我會盡我所能為您解答,與君共勉!
相關文章
- 高可用Hadoop平臺-實戰Hadoop
- 高可用Hadoop平臺-Flume NG實戰圖解篇Hadoop圖解
- 高可用Hadoop平臺-答疑篇Hadoop
- 高可用Hadoop平臺-探索Hadoop
- 高可用Hadoop平臺-Hue In HadoopHadoop
- 高可用Hadoop平臺-啟航Hadoop
- 配置高可用的Hadoop平臺Hadoop
- 高可用Hadoop平臺-整合Hive HAProxyHadoopHive
- 高可用Hadoop平臺-執行MapReduce程式Hadoop
- 高可用Hadoop平臺-Ganglia安裝部署Hadoop
- 高可用Hadoop平臺-應用JAR部署HadoopJAR
- 高可用Hadoop平臺-HBase叢集搭建Hadoop
- 高可用Hadoop平臺-Oozie工作流Hadoop
- 高可用Hadoop平臺-Oozie工作流之Hadoop排程Hadoop
- 高可用的MongoDB叢集-實戰篇MongoDB
- 構建高併發高可用的電商平臺架構實踐架構
- 假期平臺子系統高可用方案
- 實現高可用的兩種方案與實戰
- 最大個人直播平臺Twitch如何實現99.99%高可用性?
- hadoop之 Hadoop2.2.0中HDFS的高可用性實現原理Hadoop
- 官方工具|MySQL Router 高可用原理與實戰MySql
- 高效能、高可用平臺架構演變史架構
- 1.搭建Hadoop實驗平臺Hadoop
- Hadoop框架:HDFS高可用環境配置Hadoop框架
- MySQL高可用架構案例篇:UCloud最佳實踐MySql架構Cloud
- Hadoop離線資料分析平臺實戰——340瀏覽器PV分析Hadoop瀏覽器
- Hadoop資料分析平臺實戰——070深入理解MapReduce 02(案例)Hadoop
- MongoDB高階應用之高可用方案實戰(4)MongoDB
- 基於 ZooKeeper 搭建 Hadoop 高可用叢集Hadoop
- MongoDB實戰系列之六:mongodb的高可用叢集設計實戰薦MongoDB
- 基於linux-HA 的pg 高可用平臺正式部署Linux
- Spring Cloud 實戰二:Client的建立和高可用SpringCloudclient
- TypeScript系列?尾聲篇, 什麼是宣告檔案(declare)? [?全域性宣告篇]TypeScript
- Hadoop實戰Hadoop
- 黑猴子的家:Hadoop NameNode 高可用 (High Availability) 實現解析HadoopAI
- Kubernetes實戰:高可用叢集的搭建和部署
- 會員服務在高可用架構的實戰探索架構
- MySQL資料庫實現高可用架構之MHA的實戰MySql資料庫架構