SQOOP入门

SQOOP入门

★ SQOOP入门

Sqoop提供的命令可以把RDMS管理的数据库中的数据导入到HDFS中或者Hive仓库中。

    也提供了命令可以把HDFS中的数据导入到Mysql等REMS数据库中。

 

★ SQOOP安装

Sqoop依赖于Hadoop平台的Hdfs存储和MapReduce计算。

所以,安装Sqoop之前,需要安装好Hadoop。

1:解压、设置环境变量略。

2:把Mysql的驱动jar包,放到$SQOOP_HOME/lib目录下。

3:启动Hadoop

4:进入$SQOOP_HOME/bin目录下。执行下面的命令。

★ Mysql到HDFS存储

1:--导出到多个文件中。把数据库中的数据分散在多个文件中保存

sqoop import --connectjdbc:mysql://hadoop5:3306/test --username root --password root

--table persons --fields-terminated-by ',';

 

2:--导入到一个文件中,-m指定用一个Map。在不加 --apend的情况下,第二次执行该导入会提示HDFS中文件已存在。

sqoop import --connectjdbc:mysql://hadoop5:3306/test --username root --password root

--table persons --fields-terminated-by ','-m 1;

 

3:--每次执行,都会新创建一个文件。原来的HDFS中的文件还在HDFS中。

sqoop import --connectjdbc:mysql://hadoop5:3306/test --username root --password root

--table persons --fields-terminated-by ','-m 1 --append ;

 

★ Mysql到HIVE仓库

1:--没有用-m指定用一个Map。导出文件保存在了Hive仓库中。保存到仓库中几个分散的文件中。

sqoop import --connectjdbc:mysql://hadoop5:3306/test --username root --password root

--table persons --fields-terminated-by','  --hive-import;

 

2:--导入到一个文件中,-m指定用一个Map。导出文件保存在了Hive仓库中。每次执行都会把库中的所有数据保存到一个新的Hive仓库中的一个备份文件中。

sqoop import --connect jdbc:mysql://hadoop5:3306/test--username root --password root

--table persons --fields-terminated-by ','-m 1 --hive-import;

 

3:--导入到一个文件中,-m指定用一个Map。导出文件保存在了Hive仓库中。每次保存都会在数据仓库中保存一个新的备份。全部数据。

sqoop import --connectjdbc:mysql://hadoop5:3306/test --username root --password root

--table persons --fields-terminated-by ','-m 1 --hive-import --append;

 

4:--导入到一个文件中,-m指定用一个Map。导出文件保存在了Hive仓库中。每次导出都会保存到一个单独的文件中,保存的时候,只保存增量。如果没有增量,则生成一个新文件。里边没有内容。

sqoop import --connectjdbc:mysql://hadoop5:3306/test --username root --password root

--table persons --fields-terminated-by ','-m 1 --hive-import --append

--check-column 'id' --incremental append--last-value 6;

 

 

★ HDFS到Mysql

在数据库中建表:

/*DDL 信息*/------------

 

CREATE TABLE `people` (

 `id` int(10) NOT NULL,

 `name` varchar(20) DEFAULT NULL,

 `age` int(10) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=latin1

 

在HDFS中准备文件:

 

文件内容如下:

1,baidu,4

2,sohu,40

3,xiaomi,20

4,alibaba,108

5,taobao,29

6,tmall,32

 

导出数据到Mysql中刚才建的表中

[root@hadoop5 bin]# pwd

/usr/local/sqoop/bin

 

执行命令:

sqoop export --connectjdbc:mysql://hadoop5:3306/test --username root --password root --table people --fields-terminated-by',' --export-dir '/exppersons'

上句命令表示:把HDFS中的文件内容导入到Mysql中。

导入文件位于/exppersons文件夹中。

导入到test数据库中的people表中。要求表已经生成。

 

 

★ Sqoop的Job管理

创建一个新的Job:

sqoop job --create ajob -- import --connectjdbc:mysql://hadoop5:3306/test --username root --password root --table persons--fields-terminated-by ',' -m 1 --hive-import;

 

查看所有的可用的Job:

sqoop job --list

 

删除一个Job

sqoop job --delete

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章