Sqoop常用操作指令

2021-10-04 09:24:26 字數 3804 閱讀 7739

從非大資料集群(rdbms)向大資料集群(hdfs,hive,hbase)中傳輸資料

1.rdbms到hdfs

確定mysql服務開啟正常

在mysql中新建一張表並插入一些資料

$ mysql -uroot -p990204

mysql>

create

database company;

mysql>

create

table company.staff(id int(4

)primary

keynot

null

auto_increment

, name varchar

(255

), *** varchar

(255))

;mysql>

insert

into company.staff(name, ***)

values

('thomas'

,'male');

mysql>

insert

into company.staff(name, ***)

values

('catalina'

,'female'

);

匯入資料

(1)全部匯入

$ bin/sqoop import \

--connect jdbc:mysql:/

/hadoop102:3306/company \

--username root \

--password 990204 \

--table staff \

--target-

dir/user/company \

--delete-target-

dir \

--fields-terminated-by "\t"

(2) 查詢匯入(必須加$conditions,目的是為了保持資料的順序)

$ bin/sqoop import \

--connect jdbc:mysql:/

/hadoop102:3306/company \

--username root \

--password 990204 \

--target-

dir/user/company \

--delete-target-

dir \

--fields-terminated-by "\t" \

--query 'select name,*** from staff where id <=1 and $conditions;'

如果query後使用的是雙引號,則$conditions前必須加轉移符,防止shell識別為自己的變數。

(3)匯入指定列
$ bin/sqoop import \

--connect jdbc:mysql:/

/hadoop102:3306/company \

--username root \

--password 990204 \

--target-

dir/user/company \

--delete-target-

dir \

--fields-terminated-by "\t" \

--columns id,*** \

--table staff

$ bin/sqoop import \

--connect jdbc:mysql:/

/hadoop102:3306/company \

--username root \

--password 990204 \

--target-

dir/user/company \

--delete-target-

dir \

--fields-terminated-by "\t" \

--table staff \

--where "id=1"

2.rdbms到hive

$ bin/sqoop import \

--connect jdbc:mysql:/

/hadoop102:3306/company \

--username root \

--password 990204 \

--table staff \

--hive-import \

--fields-terminated-by "\t" \

--hive-overwrite \

--hive-table staff_hive

$ bin/sqoop import \

--connect jdbc:mysql:/

/hadoop102:3306/company \

--username root \

--password 990204 \

--table company \

--columns "id,name,***" \

--column-family "info" \

--hbase-create-table \

--hbase-row-key "id" \

--hbase-table "hbase_company" \

--split-by id

hbase> create 'hbase_company,'info'
(5) 在hbase中scan這張表得到如下內容

hbase> scan 『hbase_company』
從大資料集群(hdfs,hive,hbase)向非大資料集群(rdbms)中傳輸資料

hive/hdfs到rdbms

$ bin/sqoop export \

--connect jdbc:mysql:/

/hadoop102:3306/company \

--username root \

--password 000000 \

--table staff \

--export-

dir/user/hive/warehouse/staff_hive \

--input-fields-terminated-by "\t"

使用opt格式的檔案打包sqoop命令,然後執行

建立乙個.opt檔案

$ mkdir opt

$ touch job/sqp.opt

編寫sqoop指令碼

export

--connect

jdbc:mysql:/

/hadoop102:3306/company

--username

root

--password

000000

--table

staff

1--export-

dir/user/hive/warehouse/staff_hive

--input-fields-terminated-by

"\t"

執行該指令碼

$ bin/sqoop --options-file job/sqp.opt

MYSQL常用操作指令

最近到研究php跟mysql的開發環境搭配,測試過win2003 iis6.0 x86作業系統下比較好的軟體php5foriis6v2.0.exe主要包括php5.25 mysql5.045 zend3.3a phpmyadmin 3.3.0等軟體。win2008 iis7.0 x64位系統下比較好...

MySql常用操作指令

1 使用show語句找出在伺服器上當前存在什麼資料庫 mysql show databases 2 2 建立乙個資料庫mysqldata mysql create database mysqldata 3 選擇你所建立的資料庫 mysql use mysqldata 按回車鍵出現database c...

Linux常用操作指令

常用指令 ls 顯示檔案或目錄 l 列出檔案詳細資訊l list a 列出當前目錄下所有檔案及目錄,包括隱藏的a all mkdir 建立目錄 p 建立目錄,若無父目錄,則建立p parent cd 切換目錄 touch 建立空檔案 echo 建立帶有內容的檔案。cat 檢視檔案內容 cp 拷貝 m...