使用Sqoop2从SqlServer数据库导入数据到Hdfs,再导入Hive2表中

时间:2021-07-17 07:46:37

  前言   

       最近在使用Sqoop2从Mysql,Oracle, SqlServer导入数据到HDFS,Mysql和Oracle的导入还比较简单,但是SqlServer导入过程中遇到了几个小问题,跟大家分享下,希望对遇到类似问题的朋友有点小帮助:


Sqoop2创建Link

        关于Sqoop2与Sqoop1的区别,安装与部署,可以点击这里看看这篇文章,这位大牛写的非常详细。要使用sqoop2,首先要创建Link,每个数据库的link不一样,如下是各个数据库的link:

mysql-link

使用Sqoop2从SqlServer数据库导入数据到Hdfs,再导入Hive2表中


oracle-link

使用Sqoop2从SqlServer数据库导入数据到Hdfs,再导入Hive2表中


sqlserver-link

使用Sqoop2从SqlServer数据库导入数据到Hdfs,再导入Hive2表中


注意:创建sqlserver-link,需要外部引入驱动包,还与sqlserver版本有关,我的是2014年的,所以引入sqljdbc4.jar,若果你的sqlserve是2005,那就引入sqljdbc.jar,下载后放到sqoop2对于的包路径下:

使用Sqoop2从SqlServer数据库导入数据到Hdfs,再导入Hive2表中


Sqoop2创建Job

mysql-job

使用Sqoop2从SqlServer数据库导入数据到Hdfs,再导入Hive2表中


oracle-job

使用Sqoop2从SqlServer数据库导入数据到Hdfs,再导入Hive2表中


sqlserver-job

使用Sqoop2从SqlServer数据库导入数据到Hdfs,再导入Hive2表中

创建sqlserver-job时,需要选择dbo,压缩方式要选择GZIP,如果选择默认,会是.deflate结尾的文件。导入到HDFS上时,是以.GZIP为后缀名结尾,Hive能自动识别解压到对应的表中。

本人刚刚接触Sqoop2,若有不对的地方,还希望大家多多指教!