1. 程式人生 > >怎麼通過sqoop匯入匯出到MySQL

怎麼通過sqoop匯入匯出到MySQL


sqoop  mysql 匯入,匯出
1.
安裝(前提hadoop啟動)

[[email protected] ~]$ tar -zxvf sqoop-1.3.0-cdh3u5.tar.gz
[[email protected] hadoop-0.20.2-cdh3u5]$ cp hadoop-core-0.20.2-cdh3u5.jar /home/hadoop/sqoop-1.3.0-cdh3u5/lib/

[[email protected] ~]$ cp ojdbc6.jar sqoop-1.3.0-cdh3u5/lib/

[[email protected] ~]$ vi .bash_profile
新增
export SQOOP_HOME=/home/hadoop/sqoop-1.3.0-cdh3u5

[
[email protected]
~]$ source .bash_profile

2.

[[email protected] ~]$ cd sqoop-1.3.0-cdh3u5/bin/

[[email protected] bin]$ vi configure-sqoop
註釋掉hbase和zookeeper檢查
## Moved to be a runtime check in sqoop.
#if [ ! -d "${HBASE_HOME}" ]; then
#  echo "Warning: $HBASE_HOME does not exist! HBase imports will fail."
#  echo 'Please set $HBASE_HOME to the root of your HBase installation.'
#fi


3.mysql 授權

mysql> insert into mysql.user(Host,User,Password) values("localhost","sqoop",password("sqoop"));
mysql> flush privileges;
mysql> grant all privileges on *.* to 'sqoop'@'%' identified by 'sqoop' with grant option;
mysql> flush privileges;

mysql> use test;
mysql> create table sss (id int,name varchar(10));

mysql> insert into sss values(1,'zs');
mysql> insert into sss values(2,'ls');




4.測試sqoop能否連線上mysql
[
[email protected]
mysql-connector-java-5.0.7]$ cp mysql-connector-java-5.0.7-bin.jar /home/hadoop/sqoop-1.3.0-cdh3u5/lib/

[[email protected] sqoop-1.3.0-cdh3u5]$ bin/sqoop list-tables --connect jdbc:mysql://192.168.18.111:3306/test --username sqoop --password 123456
(顯示有sss表)

5.將mysql中的sqoop使用者下sss 匯入到HDFS中
[
[email protected]
sqoop-1.3.0-cdh3u5]$ bin/sqoop import --connect jdbc:mysql://192.168.18.111:3306/test --username sqoop --password 123456 --table sss -m 1
(-m 為並行  預設並行度為4)

[[email protected] hadoop-0.20.2-cdh3u5]$ bin/hadoop fs -ls
多出個sss目錄
[[email protected] hadoop-0.20.2-cdh3u5]$ bin/hadoop fs -ls /user/hadoop/sss
[[email protected] hadoop-0.20.2-cdh3u5]$ bin/hadoop fs -cat /user/hadoop/sss/part-m-00000
看到 sss表內容
1,zs
2,ls

6.從HDFS匯入到mysql中

mysql> delete from sss;

[[email protected] sqoop-1.3.0-cdh3u5]$ bin/sqoop export --connect jdbc:mysql://192.168.18.111:3306/test --username sqoop --password 123456 --table sss --export-dir hdfs://h1:9000/user/hadoop/sss/part-m-00000

[[email protected] ~]# mysql -usqoop -p
mysql> use test
mysql> select * from sss;
表中的資料 又 回來了


---------------------------------------------------------------
增量抽取 mysql資料 到HDFS中
型別1(欄位增長)
bin/sqoop import --connect jdbc:mysql://192.168.18.111:3306/test --username sqoop --password 123456 --table sss -m 1 --target-dir /user/hadoop/a --check-column id --incremental append --last-value 3


型別2(時間增長)
mysql> create table s2 (id int,sj timestamp not null default current_timestamp);
mysql> insert into s2 (id)values(123);
mysql> insert into s2 (id)values(321);
mysql> select * from s2;
+------+---------------------+
| id   | sj                  |
+------+---------------------+
|  123 | 2015-11-20 22:34:09 |
|  321 | 2015-11-20 22:34:23 |
+------+---------------------+

bin/sqoop import --connect jdbc:mysql://192.168.18.111:3306/test --username sqoop --password 123456 --table s2 -m 1 --target-dir /user/hadoop/abc --incremental lastmodified --check-column sj --last-value '2015-11-20 22:34:15'
結果:只有id為321的行更新了
---------------------------------------------------------
配置 sqoop匯入的
[[email protected] sqoop-1.3.0-cdh3u5]$ bin/sqoop export --connect jdbc:mysql://192.168.18.111:3306/test --username sqoop --password 123456 --table qqq --export-dir hdfs://h1:9000/user/hadoop/qqq.txt --input-fields-terminated-by '\t'

****--input-fields-terminated-by '\t'    
 宣告分隔符*******


----------------------------------------------------------
sqoop eval工具:
sqoop下 使用sql語句對 關係型資料庫進行操作


[[email protected] sqoop-1.3.0-cdh3u5]$ bin/sqoop eval --connect jdbc:mysql://192.168.18.111:3306/test --username sqoop --password 123456 --query "select * from sss"

[[email protected] sqoop-1.3.0-cdh3u5]$ bin/sqoop eval --connect jdbc:mysql://192.168.18.111:3306/test --username sqoop --password 123456 --query "insert into sss values(3,'ww')"

==============================================================
sqoop hive
mysql 匯入到 hive中

mysql> select * from sss;
+------+------+
| id   | name |
+------+------+
|    1 | zs   |
|    2 | ls   |
|    3 | ww   |
|   10 | haha |
+------+------+


hive> create table tb1(id int,name string)
     row format delimited
     fields terminated by ',';

**** sqoop 預設的分隔符為"," ***********


[[email protected] sqoop-1.3.0-cdh3u5]$ bin/sqoop import --connect jdbc:mysql://192.168.18.111/test --username sqoop --password 123456 --table sss  --hive-import -m 1 --hive-table tb1 --fields-terminated-by ','

hive> select * from tb1;





============================================================
sqoop oracle

1.

[[email protected] ~]$ cp ojdbc6.jar sqoop-1.3.0-cdh3u5/lib/

 測試sqoop 連線oracle
[[email protected] sqoop-1.3.0-cdh3u5]$ bin/sqoop list-tables --connect jdbc:oracle:thin:@192.168.8.222:1521:TEST --username scott --password abc

2.
匯出到HDFS中
[[email protected] sqoop-1.3.0-cdh3u5]$ bin/sqoop import --connect jdbc:oracle:thin:@192.168.8.222:1521:TEST --username SCOTT --password abc --verbose -m 1 --table S1
(表名字 和 使用者名稱要大寫 )

HDFS 中檢視
[[email protected] hadoop-0.20.2-cdh3u5]$ bin/hadoop fs -cat /user/hadoop/S1/part-m-00000
101,zhangsan
102,lisi


================================================================
1.mysql (t2表  必須id為主鍵)
mysql> select * From t2;
+----+-------+-------+-------+
| id | name1 | name2 | name3 |
+----+-------+-------+-------+
|  1 | aa    | bb    | cc    |
|  2 | aaa   | bbb   | ccc   |
+----+-------+-------+-------+

2.vi .bash_profile
export HBASE_HOME=/home/hadoop/hbase-0.90.6-cdh3u5

3.
 bin/sqoop import --connect jdbc:mysql://192.168.8.101:3306/test --username sqoop --password sqoop  --table t3 --hbase-table qqq  --column-family ccf --hbase-row-key id --hbase-create-table











相關推薦

怎麼通過sqoop匯入匯出MySQL

sqoop  mysql 匯入,匯出1.安裝(前提hadoop啟動)[[email protected] ~]$ tar -zxvf sqoop-1.3.0-cdh3u5.tar.gz [[email protected] hadoop-0.20.2-cd

通過cmd視窗匯入匯出mysql資料庫

1.匯入資料庫 使用source命令 首先要在cmd視窗中連線資料庫,然後再用source命令進行匯入操作 mysql>use 資料庫名 mysql>source d:/dbname.sql 2.匯出資料庫 注意匯出資料庫時不需要連線資料

工作中,sqoop匯入匯出hive,mysql 出現的問題.

1.從mysql匯入到Hive 出現數據帶入錯誤:當欄位中存在輸入tab鍵,會被hive識別多建立一條欄位。 解決:sqoop import 語句中 新增  --hive-drop-import-delims 來把匯入資料中包含的hive預設的分隔符去掉。 2.出現PRIM

命令列匯入匯出Mysql資料庫

MySQL命令列匯出資料庫:1,進入MySQL目錄下的bin資料夾:cd MySQL中到bin資料夾的目錄,如我輸入的命令列:cd C:\Program Files\MySQL\MySQL Server 4.1\bin(或者直接將windows的環境變數path中新增該目錄) 2,匯出資料庫:mysqldu

Linux命令匯入匯出mysql資料庫

1.建立一個demo_se庫和資料庫使用者名稱     create user demoSeos IDENTIFIED by 'demoSeos123';     GRANT ALL ON demo_se.* TO 'demoSeos';     REVOKE  ALL ON

oracle在cmd下通過命令匯入匯出資料

1、首先在cmd下切換到oracle的客戶端的exp.exe所在的bin目錄下,例如 D:\oracle\product\10.2.0\client_2\BIN 資料匯出:匯出的資料庫名稱是在tnsnames.ora檔案中定義的  1 將資料庫zxcc完全匯出,使用

大資料Sqoop系列之Sqoop匯入匯出資料

一、Sqoop介紹 Sqoop是一個用來將關係型資料庫和Hadoop中的資料進行相互轉移的工具,可以將一個關係型資料庫(例如Mysql、Oracle)中的資料匯入到Hadoop(例如HDFS、Hive、Hbase)中,也可以將Hadoop(例如HDFS、Hive、Hbase

sqoop匯入匯出表/資料到Hive

筆記: 將關係型資料庫表及表中的資料複製到hive中 sqoop import : RMDBS——>hive 語法: sqoop import --connect jdbc:mysql://IP:PORT/database --username root --pass

Sqoop匯入匯出命令集

1、從hdfs上把資料匯出到關係型資料庫(mysql) sqoop export --connect jdbc:mysql://MysqlIPAddress:3306/recommendation --username root --password 123456 --ta

通過sqoopmysql資料匯入到hive中進行計算示例

hive計算示例 先將資料通過sqoop從mysql匯入hive,在hive執行mysql的查詢語句,得到與mysql一樣的執行結果 步驟: mysql資料準備 account賬號表 detail收支資料表 CREATE TABLE

大資料之hbase(五) --- 匯出Hbase的表文件到HDFS,Hbase Bulk Load Hbase,MySQL資料通過MR匯入到Hbase表中

一、匯出Hbase的表文件到HDFS -------------------------------------------------------------------------- 1.複製hbase的jar檔案和metrices-core-xxx.jar檔案到

通過sqoopMySQL資料庫中的資料匯入Hbase

從接觸到大資料到成功的實現一個功能期間走了不少彎路也踩了不少坑,這裡作為我的學習筆記也可以作為小白們的前車之鑑,少走彎路,有不正確之處,望指出 環境準備: hadoop、hbase、sqoop、mys

sqoop簡單操作-從mysql匯入匯出資料

轉:http://blog.csdn.net/chaiyiping/article/details/40295881 安裝和配置: tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz vi /etc/profil

sqoop用法之mysql與hive資料匯入匯出

[TOC] ## 一. Sqoop介紹 `Sqoop`是一個用來將`Hadoop`和關係型資料庫中的資料相互轉移的工具,可以將一個關係型資料庫(例如:`MySQL、Oracle、Postgres`等)中的資料導進到`Hadoop`的`HDFS`中,也可以將`HDFS`的資料導進到關係型資料庫中。對於某些`N

mysql匯入匯出指定資料指令碼(含遠端)及弊端

有時候,需要匯出表中的指定列的資料,拼接成INSERT語句。如下: Code(遠端匯出需要加入引數"-h+ip";本地則去掉該引數,或者將ip換為本地ip即可) mysql -h+ip -uusername -ppassword -e "select concat('insert i

mysql匯入匯出全部資料指令碼(含遠端)及錯誤收集

使用mysql的mysqldump命令進行資料的匯入匯出。 1、匯出 匯出(遠端): 以下指令碼為預設語句,其他引數預設 mysqldump -h127.0.0.1 -uusername -ppassword --databases dbname --tables tablenam

linux下匯入匯出mysql資料庫命令的實現方法

首先建空資料庫 mysql>create database abc; 匯入資料庫 mysql>use abc; 設定資料庫編碼 mysql>set names utf8; 匯入資料(注意sql檔案的路徑) mysql>source /home/abc/abc.sql;

Mysql --學習:大量資料快速匯入匯出

宣告:此文供學習使用,原文:https://blog.csdn.net/xiaobaismiley/article/details/41015783  【實驗背景】 專案中需要對資料庫中一張表進行重新設計,主要是之前未分割槽,考慮到資料量大了以後要設計成分割槽表,同時要對資料庫中其他表做好備份恢

MySQL匯入/匯出資料庫

MySQL之匯入匯出資料庫 windows下:       直接在DOS視窗輸入命令 1. 匯出整個資料庫 語法:mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的sql檔名(儲存路徑)

mysql命令匯入匯出sql檔案

window下 1.匯出整個資料庫,首先開啟要匯出的目錄 mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔名 mysqldump -u dbuser -p dbname > dbname.sql 下一行需要輸入密碼 mysqldump -uro