Sqoop導入導出的幾個例子
node2
Sqoop參數介紹_其他命令_導入導出
導入
例一:從DBMS到HDFS
1.node4下啟動mysql
service mysqld start
mysql -u root -p
輸入密碼:123
2.node4下創建test數據庫
create database test;
創建psn表
3.
node2中創建sqoop_test,編輯sqoop1
import--connectjdbc:mysql://node4/test--usernameroot--password123--as-textfile--columnsid,name,msg--tablepsn--delete-target-dir--target-dir/sqoop/data-m1
4.執行命令--從DBMS導入到HDFS
sqoop --options-file sqoop1//選項使用腳本
sqoop --options-file sqoop1
例二:從DBMS到Hive
注意!
$CONDITIONS規定
/sqoop/tmp先將數據導入hdfs的臨時目錄,再將數據導入hive的目錄
1.node4下啟動mysql
service mysqld start
mysql -u root -p
輸入密碼:123
2.node4下創建test數據庫
create database test;
創建psn表
3.
node2中創建sqoop_test,編輯sqoop2
-e,--query和--table兩個選項是沖突的,因為一個是指定單表,一個是指定多表的導入;
--warehouse-dir指定導入到hive中的時候到底從哪個目錄下面導入;這個選項和hive中的warehouse-dir
配置項很像;
--hive-home指定hive的安裝目錄,如果節點上面配置了環境變量,並且導入了需要的jar包,那么就不需要
指定了;
sqoop將關系型數據庫中的數據導入到hive中去的話,首先需要將數據導入到hdfs上面,因此需要先指定
hdfs上面一個臨時存儲這些數據的目錄,然后才會把hdfs上面的數據導入到hive中去;也就是首先使用mr
到hdfs上面,然后在創建hive的表;可以再打開一個終端,查看hive中的表創建的情況;創建的時候
首先在mysql通過查看表字段,然后在hive中創建;
我們沒有指定hive表存放在什么位置。這個位置是由
hive的配置文件指定的,需要在那個位置查看;
import--connectjdbc:mysql://node4/test--usernameroot--password123--as-textfile--query'select id, name, msg from psn where id like "1%" and $CONDITIONS'--delete-target-dir-target-dir/sqoop/tmp-m1--hive-home/home/hive-1.2.1--hive-import--create-hive-table--hive-tablet_test
4.執行命令--從DBMS導入到Hive
先啟動hive服務端node2: hive --service metastore
再啟動hive客戶端node1:
hive
sqoop --options-file sqoop2
node1查看表t_test是否生成
導出
例三:從HDFS到DBMS
指定HDFS中數據對應的目錄
1.node4下啟動mysql
service mysqld start
mysql -u root -p
輸入密碼:123
2.node4下創建test數據庫
create database test;
創建h_psn表
3.
node2中創建sqoop_test,編輯sqoop3
export--connectjdbc:mysql://node4/test--usernameroot--password123-m1--columnsid,name,msg--export-dir/sqoop/data--tableh_psn
4.執行sqoop命令
查看mysql中的表,看數據是否導入
例四:從Hive到DBMS
附件列表
