獲取原文
簡短介紹
sqoop export指令的作用就是,將集群hdfs中資料匯出至關係型資料庫中。
我們這還是以mysql為例。
1、建立集群測試表和資料
-- hive建立一張表,預設是textfile型別的
create table if not exists dc_dev.export_txt_demo
(name string,
address string
);-- 建立測試資料
insert into dc_dev.export_txt_demo values('測試1','上海');
insert into dc_dev.export_txt_demo values('測試2','北京');
2、建立mysql接收表
-- 建立接收表
3、在集群中執行sqoop export 指令匯出集群資料
sqoop export --connect 'jdbc:mysql:' \
--username 'root' \
--password 'jfdev123' \
--table 'export_txt_demo' \
--export-dir /user/hive/warehouse//dc_dev.db/export_txt_demo \
--input-fields-terminated-by '\001' \
--input-null-string '\\n' \
--input-null-non-string '\\n'
引數說明:
--connect '資料庫連線' \
--username '資料庫賬號' \
--password '資料庫密碼' \
--table '資料庫表名' \
--export-dir 集群hdfs中匯出的資料目錄 \
--input-fields-terminated-by '分隔符,textfile型別預設\001' \
--input-null-string '空值處理:\\n' \
--input-null-non-string '空值處理:\\n'
## 「--export-dir」 引數是資料在hdfs中的路徑
## 可在hive中,通過 show create 表(即:show create dc_dev.export_txt_demo)
## 即可知道表資料在hdfs中的位置
說明:① 匯出表(集群中的),接收表(關係型中的)。都必須先存在,才能通過sqoop exprot匯出。
② 上面示例是匯出的textfile型別的表。
1、集群中建立parquet測試表
-- hive建立一張表parquet型別的表
create table if not exists dc_dev.export_par_demo
(name string,
address string
) stored as parquet; -- 觀察這裡制定建表型別
-- 建立測試資料
insert into dc_dev.export_par_demo values('par測試1','par上海');
insert into dc_dev.export_par_demo values('par測試2','par北京');
2、建立mysql接收表
-- 建立接收表
3、在集群中執行sqoop export 指令匯出集群資料
sqoop export --connect 'jdbc:mysql:' \
--username 'root' \
--password 'jfdev123' \
--table 'export_par_demo' \
--hcatalog-database dc_dev \
--hcatalog-table export_par_demo \
--input-null-string '\\n' \
--input-null-non-string '\\n'
引數說明:
--connect '資料庫連線' \
--username '資料庫賬號' \
--password '資料庫密碼' \
--table '資料庫表名' \
--hcatalog-database 'hive庫名' \
--hcatalog-table 'hive表名' \
--input-null-string '空值處理:\\n' \
--input-null-non-string '空值處理:\\n'
說明:與textfile匯出類似。
① 匯出表(集群中的),接收表(關係型中的)。都必須先存在,才能通過sqoop exprot匯出。
② 上面示例是匯出的parquet型別的表。
③使用textfile匯出 比 parquet匯出速度快。因為parquet是壓縮檔案,需要先解壓在匯出。
使用sqoop export是不是很簡單就將集群資料匯出到資料庫了呢?大家有想過重複匯出的問題沒有?其實我們實際工作中,都會遇到需要重複執行乙個指令的時候。有想過怎麼處理嗎?這裡是不是可以結合shell指令碼來一起使用呢?東西是死的,人是活的。一定要學會靈活運用!
截自sqoop.apache.org
ctf 小白學習篇
robots協議 robots.txt檔案是乙個文字檔案,使用任何乙個常見的文字編輯器,比如windows系統自帶的notepad,就可以建立和編輯它 robots.txt是乙個協議,而不是乙個命令。robots.txt是搜尋引擎中訪問 的時候要檢視的第乙個檔案。robots.txt檔案告訴蜘蛛程式...
Socket小白篇 TCP UDP簡介
socket 網路通訊的要素 tcp和udp socket的通訊流程圖 1.socket 什麼是socket socket 又稱為套接字,網路上的兩個程式通過乙個雙向的通訊連線實現資料交換,這個連線的一端稱為socket.socket是對tcp ip的協議封裝,socket本身並不是協議,而是乙個呼...
java 引數傳遞(小白篇)
引數傳值分為 值傳遞以及引用傳遞 位址傳遞 個人理解 勿噴 引數分為基本型別,物件等。1.基本型別 8大型別 int float double char long boolean byte short 例子 description author lc time 2018 2 23 0023 publ...