如何使用 Sqoop 导出 sql server 的数据

1.下载Sqoop 1.4.7

到清华镜像去下载sqoop-1.4.7就行了

2.连接sqlserver用的jar包

使用 sqoop 导出 sql server 的数据,需要使用对应的 sqljdbc.jar 包,这里用到的是 sqljdbc4.jar点我下载

3.安装sqoop

将下载好的压缩包解压到指定安装目录,如/opt

tar -zxvf sqoop-1.4.7_hadoop-bin.tar.gz -C /opt

4.配置

修改安装目录下的sqoop-env-template.sh文件

vim /opt/sqoop-1.4.7/conf/sqoop-env-template.sh

将配置好如下三个就行了

export HADOOP_COMMON_HOME=/opt/hadoop-2.7.7
export HADOOP_MAPRED_HOME=/opt/hadoop-2.7.7
export HIVE_HOME=/opt/hive-1.2.2

然后将下载好的sqljdbc4.jar放到sqoop/lib下就行了

5.测试

尝试一下Scorecard数据库中的Autoscore

sqoop import --driver com.microsoft.sqlserver.jdbc.SQLServerDriver --connect jdbc:sqlserver://10.62.160.116:3000/Scorecard --username scr --password Scorecard2017! --table AutoScore --target-dir /user/hive/warehouse/scorecard

可以将上述中命令以以下方法完成

1.将密码放到/usr/local/password 中,并且将其上传到hdfs上

#这里使用单引号并且-n选项是必须的,不然会默认在password文件后追加些奇奇怪怪的字符
echo -n 'Scorecard2017!' >> password
hdfs dfs -put /usr/local/password /user/hive

2.将配置放到 config.im 文件中,注意配置项及配置值各单独占一行并且前后不能有空格,如下

import
--driver
com.microsoft.sqlserver.jdbc.SQLServerDriver
--connect
jdbc:sqlserver://10.62.160.116:3000;database=Scorecard
--username
scr
--password-file
/user/hive/password
--table
AutoScore
--target-dir
/user/hive/warehouse/scorecard

3.然后使用如下命令进行数据抽取

```sh
#先切换到config.im所在的目录下头
sqoop --options-file config.im
```

4.查看结果,应该是没有问题的

posted on 2019-05-10 21:55  hwang126  阅读(850)  评论(0编辑  收藏  举报