Sqoop安装测试、连接Sqlserver使用
Sqoop是一个开源的工具,它允许用户将数据从关系型数据库抽取到Hadoop中,用于进一步的处理。抽取出来的数据可以被Mapreduce程序使用。也可以被其他类似于Hive的工具使用。一旦形成分析结果,Sqoop便可以将这些结果导回数据库,以供其他客户端使用。
安装测试步骤
1、安装Sqoop的前提是已经具备Java和Hadoop的环境。在系统环境变量中设置HADOOP_HOME变量
2、下载地址:链接:http://mirrors.hust.edu.cn/apache/sqoop/1.4.6/
3、解压sqoop安装包到指定目录
$ tar -zxf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/module/
4、重命名:
`mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop-1.4.6`
5、重命名:
`mv sqoop-env-template.sh sqoop-env.sh`
6、修改配置文件:
vim sqoop-env.sh
export HADOOP_COMMON_HOME=/opt/module/hadoop-2.7.2
export HADOOP_MAPRED_HOME=/opt/module/hadoop-2.7.2
export HIVE_HOME=/opt/module/hive-1.2.1
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.10
export ZOOCFGDIR=/opt/module/zookeeper-3.4.10
7、下载JDBC驱动
Sqoop安装包中并不包含jdbc的SqlServer驱动,所以想在HDFS和SqlServer数据库之间导入导出数据,则需要先下载jdbc的SqlServer驱动。
(mssql-jdbc-7.4.1.jre8.jar 附上)
8、拷贝jdbc驱动到sqoop的lib目录下
Cp mssql-jdbc-7.4.1.jre8.jar /opt/module/sqoop-1.4.6/lib/
9、验证Sqoop
通过command来验证sqoop配置是否正确
bin/sqoop help
10、测试连接
连接sqlserver数据库检验是否成功 :显示所有数据库名称
bin/sqoop list-databases --connect 'jdbc:sqlserver://IP;username=;password='
11、除了jdbc中SqlServer的驱动 、还需要下载SQL Server-Hadoop Connector,用来支持HDFS与SqlServer数据库之间数据的传输;
下载地址为http://www.microsoft.com/download/en/details.aspx?id=27584
sqoop-sqlserver-1.0.tar.gz(附上)
12、解压sqoop-sqlserver-1.0.tar.gz到指定目录
tar -zxvf sqoop-sqlserver-1.0.tar -C /opt/module/
13、添加并在系统中添加环境变量MSSQL_CONNECTOR_HOME
让它指向sqoop-sqlserver-1.0.tar.gz目录
vim /etc/profile/
export MSSQL_CONNECTOR_HOME=/opt/module/sqoop-sqlserver-1.0
14、让配置文件生效
source /etc/profile/
15、执行sqoop-sqlserver-1.0目录下的install.sh
16、此时可以利用Sqoop将sqlserver中的数据导入到HDFS了。
17、导入测试
bin/sqoop import --connect 'jdbc:sqlserver://IP:端口号;username=;password=;database= ' --table= --target-dir /ods_data/gmall/db/test/2020-05-26 -m 1 --fields-terminated-by "\t"
18、Sqoop导入导出Null存储一致性问题:Hive中的Null在底层是以“\N”来存储,而MySQL中的Null在底层就是Null,为了保证数据两端的一致性。在导出数据时采用–input-null-string和–input-null-non-string两个参数。导入数据时采用–null-string和–null-non-string。
ENDING