Sqoop2 从MySQL导入数据到Hadoop HDFS

本文介绍了如何使用Sqoop2将数据从MySQL数据库高效地导入到Hadoop HDFS。涉及的环境包括Debian 8.7、Hadoop 2.6.5和Sqoop 1.99.7。配置步骤包括设置Hadoop的proxyuser,配置Sqoop2的classpath,添加MySQL JDBC驱动,并详细解释了如何创建链接、Job以及启动导入过程。
摘要由CSDN通过智能技术生成

前言

Apache Sqoop(TM) is a tool designed for efficiently transferring bulk data between Apache Hadoop and structured datastores such as relational databases.
Sqoop是一个在Hadoop与关系数据库之间进行高效传输大量数据的工具。也即是可进行导入和导出操作。
翻译的不太好见谅哈。
而Sqoop2是最新版本,但并不兼容Sqoop1。Sqoop2相比之前的版本添加了很多新的东西。具体的可参看官方文档,这里不过多介绍了。
对了,Sqoop2还可以在非关系数据库之间进行导入和导出,如:HBase等

环境

这里除了Hadoop和Sqoop版本需要注意一下,其他的都差不多就行。

配置

关于Hadoop的集群基本配置,我会在另外一篇文章再介绍。这里只说下跟Sqoop2有关的配置。

Hadoop相关配置

因为sqoop访问Hadoop的MapReduce使用的是代理的方式,必须在Hadoop中配置所接受的proxy用户和组。
编辑hadoop-2.6.5/etc/hadoop/core-site.xml文件。
在里面添加如下内容:

      <!-- sqoop2 -->
      <property>
          <name>hadoop.proxyuser.hadoop.hosts</name>
          <value>*</value>
     </property>
     <property>
          <name>hadoop.proxyuser.hadoop.groups</name>
          <value>*</value>
      </property>

其中hadoop.proxyuser.hadoop.hosts(groups)的格式应该是:hadoop.proxyuser.${SYSTEM_USER}.hosts表示运行hadoop的系统用户名,这里我就是使用hadoop用户运行的,所以就这样配置。

Sqoop2相关配置

  • 修改sqoop classpath配置,编辑sqoop-1.99.7-bin-hadoop200/bin/sqoop.sh文件
    找到sqoop_server_classpath_set函数,修改内容如下:
function sqoop_server_classpath_set {

    #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=${
   </
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值