[总结]----sqoop 同 MySQL 和 HDFS,Hive 导入导出

来源:互联网 发布:js select disabled 编辑:程序博客网 时间:2024/05/18 06:25
1)从mysql导入到HDFS
全量导入例如:
bin/sqoop import \(输入命令)
--connect jdbc:mysql://bigdata.ibeifeng.com:3306/testdb \(指定连接jdbc端口和数据库名称)
--username root \(数据库用户名)
--password root123 \(密码 若不适用明文指定数据库密码 则可以用-P)
--table user \(指定数据库中的一张表)
--target-dir /input/import \(指定数据导入到HDFS上的目录)
--delete-target-dir \//如果目标目录已存在,则先删除
--num-mappers 1 \(指定使用导入数据的map个数,mapreduce(V1)中的方式可以用-m 1 代替(过时))
--fields-terminated-by ","(目标文件的分隔符, 默认情况下,导入HDFS的每行数据分隔符是逗号)


2)从Hdfs导出到Mysql
由于hive表的数据库和表其实就是HDFS上的目录,表数据是HDFS上的文件,所以从Hive表导出数据就是从HDFS对应的目录导出数据

先在mysql中创建表接收导出数据
create table hive2mysql(
deptno int,
deptname varchar(20),
address varchar(20)
);

bin/sqoop export \
--connect jdbc:mysql://bigdata.ibeifeng.com:3306/testdb \
--username root \
--password root123 \
--table hive2mysql \前面4个部分和导入HDFS一样, 包含jdbc url , username,password,table
--num-mappers 1 \
--export-dir /user/hive/warehouse/db01.db/dept \指定需要导出的文件路径
--fields-terminated-by "\t"

3)从mysql导入到hive中
数据是由MySQL先导入到当前用户在HDFS的用户主目录下,然后再加载到hive表中
bin/sqoop import \
--connect jdbc:mysql://bigdata.ibeifeng.com:3306/testdb \
--username root \
--password root123 \
--table user \前面4个部分和导入HDFS一样, 包含jdbc url , username,password,table
-m 1 \
--delete-target-dir\ sqoop 把MySQL表导入到hive过程中,会在hdfs上创建一个文件(/user/taojiamin/user/success...)存放这个表,再剪切到HIVE 仓库目录下,不加这个命令会报错 目录已存在
--fields-terminated-by "\t" \
--hive-import \
--hive-overwrite \覆盖已经存在的数据
--hive-database db01 \hive 里需要提前创建database
--hive-table user执行是 这个表格会在hive中自动创建


4)将hive中的表数据导入到mysql中,在进行导入之前,mysql中的表
必须已经提起创建好了。

同2)


5)MySQL 导入 Hbase。
$ bin/sqoop import \
--connect jdbc:mysql://192.168.134.101:3306/my_db \
--username root \
--password 123456 \
--table so_detail \前面4个部分和导入HDFS一样, 包含jdbc url , username,password,table
--columns "id,product_id,price" \
--hbase-table "sqoop" \
--hbase-create-table \
--column-family "info" \
--hbase-row-key"id" \
--num-mappers 1

注意:hbase-row-key指定的是哪个列做为hbase表的rowkey,该列必须存在于--columns参数中

> scan 'sqoop' ,{LIMIT=>20}














阅读全文
0 0