從非大資料集群(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...