Quantcast
Channel: IT社区推荐资讯 - ITIndex.net
Viewing all articles
Browse latest Browse all 11804

sqoop 常用写法

$
0
0

 

 

1 查看所有数据库:

 

sqoop list-databases --connect  jdbc:mysql://192.168.1.1:3306/ --username root --password 123456

 

2 查看具体数据库内的表

 

sqoop list-tables --connect jdbc:mysql://localhost:3306/kellte --username root --password 123456

 

3  将关系型数据表结构users复制到Hive默认库的表users中:

 

sqoop create-hive-table --connect jdbc:mysql://localhost:3306/test --table users 

--username root  --password 123456  --hive-table users

  --fields-terminated-by "\0001"  --lines-terminated-by "\n";

参数说明:  这两个参数可以不加

--fields-terminated-by "\0001"  是设置每列之间的分隔符,"\0001"是ASCII码中的1,

它也是hive的默认行内分隔符, 而sqoop的默认行内分隔符为"," 

--lines-terminated-by "\n"  设置的是每行之间的分隔符,此处为换行符,也是默认的分隔符;

 

 

 

4  将mysql表student数据拷贝到hive默认库的student表中:  这里使用一个mapreduce来执行

 

sqoop import --connect jdbc:mysql://192.168.1.1:3306/kettle --username root --passwd 123456

 --table  student  --hive-import --hive-table student -m 1;

 

5 根据列导入数据:   将kettle库下student表的name属性 写入到 hive表的student1中

 

 

 sqoop import --connect jdbc:mysql://192.168.1.1:3306/kettle --username root --password 123456

   --table student  --column 'name'  --hive-import --hive-table student1 -m1;

 

 

 5.1  column 和  where合用在 mysql导出到hive中:

 

 sqoop import  --connect jdbc:mysql://192.168.1.1:3306/kettle --username root --password 123456

    --table student --columns "id,age,name"  --where "id > 3 and (age = 88 or age = 80)"  -m 1 

    --target-dir /user/hive/warehouse/userinfos2 --fields-terminated-by ",";

 

注意:--target-dir /user/hive/warehouse/userinfos2   可以用  --hive-import --hive-table userinfos2 进行替换

 

 

  6  增量添加数据: 

 

 

 

 

http://www.cnblogs.com/cenyuhai/p/3306056.html   看这个链接

 

 

 

 



已有 0人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐




Viewing all articles
Browse latest Browse all 11804

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>