首页 > 代码库 > Sqoop导入导出的几个例子

Sqoop导入导出的几个例子

 


Sqoop导入导出的几个例子

http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_importing_data_into_hive
 
node2
Sqoop参数介绍_其他命令_导入导出

导入

例一:从DBMS到HDFS
1.node4下启动mysql
service mysqld start
mysql -u root -p
输入密码:123
 
2.node4下创建test数据库
create database test;
创建psn表
技术分享
 
3.node2中创建sqoop_test,编辑sqoop1
技术分享
  1. import
  2. --connect
  3. jdbc:mysql://node4/test
  4. --username
  5. root
  6. --password
  7. 123
  8. --as-textfile
  9. --columns
  10. id,name,msg
  11. --table
  12. psn
  13. --delete-target-dir
  14. --target-dir
  15. /sqoop/data
  16. -m
  17. 1
 
4.执行命令--从DBMS导入到HDFS
  1. sqoop --options-file sqoop1//选项使用脚本
sqoop --options-file sqoop1
技术分享
技术分享
技术分享
 技术分享
 
 
 
 
例二:从DBMS到Hive
技术分享
注意!
$CONDITIONS规定
技术分享
--as-textfile  //以文本的方式进行存储
/sqoop/tmp先将数据导入hdfs的临时目录,再将数据导入hive的目录
 
1.node4下启动mysql
service mysqld start
mysql -u root -p
输入密码:123
 
2.node4下创建test数据库
create database test;
创建psn表
技术分享
 
3.node2中创建sqoop_test,编辑sqoop2
技术分享
-e,--query和--table两个选项是冲突的,因为一个是指定单表,一个是指定多表的导入;
--warehouse-dir指定导入到hive中的时候到底从哪个目录下面导入;这个选项和hive中的warehouse-dir
配置项很像;
--hive-home指定hive的安装目录,如果节点上面配置了环境变量,并且导入了需要的jar包,那么就不需要
指定了;
 
sqoop将关系型数据库中的数据导入到hive中去的话,首先需要将数据导入到hdfs上面,因此需要先指定
hdfs上面一个临时存储这些数据的目录,然后才会把hdfs上面的数据导入到hive中去;也就是首先使用mr
到hdfs上面,然后在创建hive的表;可以再打开一个终端,查看hive中的表创建的情况;创建的时候
首先在mysql通过查看表字段,然后在hive中创建;我们没有指定hive表存放在什么位置。这个位置是由
hive的配置文件指定的,需要在那个位置查看;
  1. import
  2. --connect
  3. jdbc:mysql://node4/test
  4. --username
  5. root
  6. --password
  7. 123
  8. --as-textfile
  9. --query
  10. ‘select id, name, msg from psn where id like "1%" and $CONDITIONS‘
  11. --delete-target-dir
  12. -target-dir
  13. /sqoop/tmp
  14. -m
  15. 1
  16. --hive-home
  17. /home/hive-1.2.1
  18. --hive-import
  19. --create-hive-table
  20. --hive-table
  21. t_test
 
4.执行命令--从DBMS导入到Hive
先启动hive服务端node2:    hive --service metastore
再启动hive客户端node1:
    hive
sqoop --options-file sqoop2
技术分享
技术分享
node1查看表t_test是否生成
技术分享
技术分享
 

导出

例三:从HDFS到DBMS
技术分享
指定HDFS中数据对应的目录
 
1.node4下启动mysql
service mysqld start
mysql -u root -p
输入密码:123
 
2.node4下创建test数据库
create database test;
创建h_psn表
技术分享
 
 
3.node2中创建sqoop_test,编辑sqoop3
技术分享
  1. export
  2. --connect
  3. jdbc:mysql://node4/test
  4. --username
  5. root
  6. --password
  7. 123
  8. -m
  9. 1
  10. --columns
  11. id,name,msg
  12. --export-dir
  13. /sqoop/data
  14. --table
  15. h_psn
4.执行sqoop命令
技术分享
技术分享
查看mysql中的表,看数据是否导入
技术分享
 
 
 
例四:从Hive到DBMS
技术分享
 
 
 

 
 

附件列表

 

Sqoop导入导出的几个例子