利用Sqoop把SqlServer数据库中的表导入导出到HDFS

在系统环境变量中设置HADOOP_HOME变量:

vi /etc/environment

然后在文件中添加HADOOP_HOME变量,并使其指向系统中Hadoop的根目录。

Sqoop安装包中并不包含jdbc的SqlServer驱动,所以想在HDFS和SqlServer数据库之间导入导出数据,则需要先下载jdbc的SqlServer驱动。到 上 下载jdbc驱动1033\sqljdbc_3.0.1301.101_enu.tar.gz,解压,把sqljdbc4.jar包拷贝到Sqoop安装 目录下的lib目录下,但是这个只是jdbc中SqlServer的驱动,它并不支持HDFS与SqlServer数据库之间数据的传输,还需要下载 SQL Server-Hadoop Connector 解压得到sqoop-sqlserver-1.0目录,并在系统中添加环境变量MSSQL_CONNECTOR_HOME,让它指向sqoop- sqlserver-1.0目录。然后执行sqoop-sqlserver-1.0目录下的install.sh。这个命令会将连接的jar文件和配置文 件拷贝的Sqoop目录中。至此就可以用Sqoop连接SqlServer和HDFS了。

以上插件下载路径:链接: https://pan.baidu.com/s/1QFQCdV-vq0LE0bVUd1iO1Q 密码: 4pcf

在使用Sqoop之前要把Hadoop的进程打开。然后切换到Sqoop目录下,就可以执行数据的导入和导出了。

导入:

$bin/sqoop import --connect 'jdbc:sqlserver://192.168.4.155;username=sa;password=sa;database=pi' --table=pi_item_master --target-dir /user/cloudcomputing/output -m 3

便可以把IP地址为192.168.1.123机器上的test数据库中的test表导入到HDFS上的/user/cloudcomputing/output目录下。

导出:

$bin/sqoop export --connect 'jdbc:sqlserver://192.168.1.123;username=test;password=123;database=test' --table test --export-dir /user/cloudcomputing/output

便可以把/user/cloudcomputing/output目录下的数据导入到192.168.1.123机器上的test数据库中的test数据表中。

猜你喜欢

转载自www.cnblogs.com/lerio/p/9258767.html