如何使用 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.查看结果,应该是没有问题的