sqoop 常用写法
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推荐