sqoop import \
--driver com.mysql.jdbc.driver \
--connect jdbc:mysql://centos:3306/test?characterencoding=utf-8 \
--username root \
--password root \
--table t_user \
--fields-terminated-by '\t' \
--target-dir /mysql/test/t_user \
--delete-target-dir
引數
含義–-connect
連線的資料庫位址
-–username
連線的資料庫的使用者名稱
–-password
連線的資料庫的密碼
–-table
想要匯出資料的表
–target-dir
要匯入到hdfs中的目錄(如果不指定,預設儲存在「/user/使用者名稱/匯入的表名」 目錄下)
-–delete-target-dir
表示如果在hdfs中有該目錄,則先刪除,然後再匯入資料到該目錄下
表示設定的maptask個數,預設為4個,決定最終在hdfs中生成的檔案個數(將table中的資料分成幾個檔案分別儲存)
–fields-terminated-by
指定欄位的分割符號
sqoop import \
--driver com.mysql.jdbc.driver \
--connect jdbc:mysql://centos:3306/test?characterencoding=utf-8 \
--username root \
--password root \
--table t_user \
--columns id,name,age \
--where "id > 2 or name like '%z%'" \
--target-dir /mysql/test/t_user \
--delete-target-dir \
--fields-terminated-by '\t'
字段
含義–columns
指定要查詢的字段
–where
指定過濾條件
sqoop import \
--driver com.mysql.jdbc.driver \
--connect jdbc:mysql://centos:3306/test \
--username root \
--password root \
--fields-terminated-by '\t' \
--query 'select id, name,***, age ,birthday from t_user where $conditions limit 100 ' \
--split-by id \
--target-dir /mysql/test/t_user \
--delete-target-dir
如果要並行匯入查詢結果,則每個map任務將需要執行查詢的副本,其結果由sqoop推斷的邊界條件進行分割槽。您的查詢必須包含令牌$conditions
,每個sqoop程序將用唯一條件表示式
替換該令牌。您還必須使用--split-by
選擇拆分列。
sqoop import \
--connect jdbc:mysql://centos:3306/test \
--username root \
--password root \
--table t_user \
--hive-import \
--fields-terminated-by "\t" \
--hive-overwrite \
--hive-table baizhi.t_user
[root@centos ~]# cp /usr/apache-hive-1.2.2-bin/lib/hive-common-1.2.2.jar /usr/sqoop-1.4.7/lib/[root@centos ~]# cp /usr/apache-hive-1.2.2-bin/lib/hive-exec-1.2.2.jar /usr/sqoop-1.4.7/lib/
sqoop import \
--connect jdbc:mysql://centos:3306/test \
--username root \
--password root \
--table t_user \
--hive-import \
--fields-terminated-by "\t" \
--hive-overwrite \
--hive-table baizhi.t_user \
--hive-partition-key city \
--hive-partition-value 'bj'
sqoop import \
--connect jdbc:mysql://centos:3306/test \
--username root \
--password root \
--table t_user \
--hbase-table baizhi:t_user1 \
--column-family cf1 \
--hbase-create-table \
--hbase-row-key id \
--hbase-bulkload
引數
含義–hbase-table
寫入hbase中的表
–column-family
匯入的列簇
–hbase-create-table
建立表–hbase-row-key
指定字段作為rowkey
–hbase-bulkload
啟動hbase 批量寫入
0 zhangsan true 20 2020-01-11
1 lisi false 25 2020-01-10
3 wangwu true 30 2020-01-17
create
table t_user(
id int
primary
keyauto_increment
, name varchar(32
),*** boolean
, age int
, birthday date
)character
set=utf8;
sqoop-export \
--connect jdbc:mysql://centos:3306/test \
--username root \
--password root \
--table t_user \
--update-key id \
--update-mode allowinsert \
--export-dir /mysql/test/t_user \
--input-fields-terminated-by '\t'
匯入模式可選值可以是updateonly或者allowinsert,updateonly僅僅會更新已經存在的記錄。1、現將hbase資料->hive
[root@centos ~]
# hive -e 'use baizhi;create table t_tmp as select * from t_employee'
create
table t_employee(empno int
, ename varchar(32
),job varchar(32
),mgr int
, hiredate timestamp
, sal decimal(7
,2),
comm decimal(7
,2),
deptno int
)
2、將hive資料匯出到mysql
sqoop-export \
--connect jdbc:mysql://centos:3306/test \
--username root \
--password root \
--table t_employee \
--export-dir '/user/hive/warehouse/baizhi.db/t_tmp' \
--input-fields-terminated-by '\001' \
--input-null-string '\\n' \
--input-null-non-string '\\n'
;
引數
含義–export-dir
需要讀取的檔案位置
–input-fields-terminated-by
字段分割符號
–input-null-string
對於一些字串字段,出現該值認為是null
–input-null-non-string
對於一些字串非空字段,出現該值認為是null
Apache Sqoop效能調整
sqoop是apache基礎提供的一種工具,在大資料世界中通常用於異構關聯式資料庫 rdbms 和hadoop 分布式檔案系統 hdfs 之間的匯入 匯出數百萬條記錄。這種資料傳輸可能導致不同的載入時間,從幾分鐘到幾個小時不等。此方案是全世界資料工程師在引擎蓋下檢視微調設定的情況。效能調整的目標是在...
mysql 匯入匯出 mysql匯入匯出sql檔案
window下 1.匯出整個資料庫 mysqldump u 使用者名稱 p 資料庫名 匯出的檔名 mysqldump u dbuser p dbname dbname.sql 2.匯出乙個表 mysqldump u 使用者名稱 p 資料庫名 表名 匯出的檔名 mysqldump u dbuser p...
mysql匯入匯出教程 mysql匯入匯出資料方法
摘要 在平時的mysql應用中,總會碰到匯入資料,匯出資料,當然有很多方法,這篇文章,主要介紹應用mysqlmysqldump命令進行資料匯入匯出,希望對大家有所幫助。一 mysql匯入檔案或資料或執行相關sql mysql h主機位址 u使用者名稱 p使用者密碼 1.檔案形式。shell命令列 m...