基于Sqoop2 实现关系型数据库到HDFS的数据传输

1、下载安装包

下载地址:

http://mirror.bit.edu.cn/apache/sqoop/1.99.7/

2、上传安装包,解压目录。我的安装目录为 /opt

tar -zxvf sqoop-1.99.7-bin-hadoop200.tar.gz
mv sqoop-1.99.7-bin-hadoop200 sqoop

3、配置环境变量

vim  /etc/profile 
export SQOOP_HOME=/opt/sqoop
export PATH=$PATH:$SQOOP_HOME/bin

刷新配置

source /etc/profile

4、配置Sqoop2

修改conf目录下的  sqoop.properties文件

# 设置日志文件的目录
0,%s/@LOGDIR@/\/opt\/sqoop\/logs/g
# 设置数据的存放目录
0,%s/@BASEDIR@/\/opt\/sqoop\/bin\/BASEDIR/g

因为如果不设置这两文件的话,会在bin目录下生成名为@LOGDIR、@BASEDIR文件,下次就启动失败,删除这两个文件后,上次运行的link、job就都没有啦。

还需要修改一个地方的配置,也就是现有hadoop集群的目录

org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/opt/hadoop/hadoop-2.7.7/etc/hadoop/

5、设置hadoop代理

修改hadoop的core-site.xml

添加代理:

   <property>
	<name>hadoop.proxyuser.root.hosts</name>
	<value>*</value>
    </property>	
    <property>
	<name>hadoop.proxyuser.root.groups</name>
	<value>*</value>
    </property>	

完整文件如下,另外hdfs://master:9000 这个目录需要记下,也就是后期创建link链接的地址。

<configuration>
    <property>
	<name>fs.defaultFS</name>
	<value>hdfs://master:9000</value>
    </property>
    <property>
	<name>io.file.buffer.size</name>
	<value>131072</value>
    </property>
    <property>
	<name>hadoop.tmp.dir</name>
	<value>/root/xdb/hadoop-2.7.7/tmp</value>
    </property>	
    <property>
	<name>hadoop.proxyuser.root.hosts</name>
	<value>*</value>
    </property>	
    <property>
	<name>hadoop.proxyuser.root.groups</name>
	<value>*</value>
    </property>	


</configuration>

6、添加mysql驱动包到 sqoop安装的 /server/lib 目录下

mysql-connector-java-5.1.38.jar

7、初始化sqoop2

bin目录下

sqoop2-tool upgrade
sqoop2-tool verify

如果出现下述结果,即表示验证成功。

Verification was Successful.
Tool class ...... has finished correctly

若出现,caused by java.lang.ClassNotFoundException:org.apache.hadoop.conf.Configuration    即表示sqoop找不到hadoop路径,这时配置下 sqoop.sh   文件。找到下面几行:

HADOOP_COMMON_HOME=${HADOOP_COMMON_HOME:-${HADOOP_HOME}/share/hadoop/common}
HADOOP_HDFS_HOME=${HADOOP_HDFS_HOME:-${HADOOP_HOME}/share/hadoop/hdfs}
HADOOP_MAPRED_HOME=${HADOOP_MAPRED_HOME:-${HADOOP_HOME}/share/hadoop/mapreduce}
HADOOP_YARN_HOME=${HADOOP_YARN_HOME:-${HADOOP_HOME}/share/hadoop/yarn}

将其修改为:

HADOOP_COMMON_HOME=${HADOOP_HOME}/share/hadoop/common
HADOOP_HDFS_HOME=${HADOOP_HOME}/share/hadoop/hdfs
HADOOP_MAPRED_HOME=${HADOOP_HOME}/share/hadoop/mapreduce
HADOOP_YARN_HOME=${HADOOP_HOME}/share/hadoop/yarn

然后重新验证。

8、启动sqoop server服务。

sqoop2-server start

启动成功后,可通过jps查看是否有下面的进程.

如果有,则sqoop2服务启动成功,服务关闭命令为 

sqoop2-server stop

通过shell命令就可创建任务。

sqoop2-shell

若sqoop2-shell启动时,出现Xmanager导致启动失败,运行下述命令即可.

export DISPLAY=:0

Sqoop2 shell命令的使用详见链接: Sqoop2 shell命令的使用

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值