文档章节

Sqoop2 vs Sqoop

cwalet
 cwalet
发布于 2015/11/23 17:09
字数 793
阅读 999
收藏 1

以下文字内容部分译自Sqoop2 vs Sqoop

Sqoop1是一个客户端程序,用户只需在客户端添加驱动或者连接器到Sqoop中即可使用,

Sqoop2是一个基于服务的模型,新一代Sqoop,所有配置以及驱动都必须在服务端配置好。

从MapReduce的观点看,Sqoop1仅仅提交Map程序给集群,而Sqoop2会提交MR任务,

通过Mappper来从源头获取数据,再使用Reducer来转换数据。这相比Sqoop1更加清晰。

另一个主要区别是安全层面。管理员设置好来源和目标的连接,用户无需也不能获取到该连接的信息,只能使用它。这可以进一步做权限控制。

除了传统的CLI之外,Sqoop2也会提供Web UI,它们都使用Sqoop2服务器提供的REST服务。注意一点,Sqoop2的Web UI是Hue的一部分,而非属于Apache基金会。该REST接口可以方便的整合到其它框架中,例如Oozie的工作流中。

Sqoop2目前还是一个半成品亟待完善,且不支持Hadoop1。不多说了,看文档、看图说话:

接下来安装Sqoop2:

wget -q http://mirror.bit.edu.cn/apache/sqoop/1.99.6/sqoop-1.99.6-bin-hadoop200.tar.gz
tar xf sqoop-1.99.6-bin-hadoop200.tar.gz
sqoop2=/usr/local/sqoop2
mv sqoop-1.99.6-bin-hadoop200 $sqoop2
cd $sqoop2
sed -i 's/@LOGDIR@/logs/g' server/conf/sqoop.properties
./bin/sqoop2-server start

由于我的Hadoop位置单独安装,因此还需要修改:

#catalina.properties
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/../lib/*.jar,/usr/local/hadoop/share/hadoop/common/*.jar,/usr/local/hadoop/share/hadoop/common/lib/*.jar,/usr/local/hadoop/share/hadoop/hdfs/*.jar,/usr/local/hadoop/share/hadoop/hdfs/lib/*.jar,/usr/local/hadoop/share/hadoop/mapreduce/*.jar,/usr/local/hadoop/share/hadoop/mapreduce/lib/*.jar,/usr/local/hadoop/share/hadoop/yarn/lib/*.jar,/usr/local/hadoop/share/hadoop/yarn/*.jar,/usr/local/hive/lib/*.jar

#sqoop.properties
org.apache.sqoop.repository.jdbc.url=jdbc:derby:sqoop;create=true
org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/usr/local/hadoop/etc/hadoop/


报错及解决:

  • java.sql.SQLException: No suitable driver found for jdbc:derby:sqoop;create=true

$sqoop2/server/webapps/sqoop.war中包含derby驱动包,但是tomcat(sqoop2是基于tomcat的web接口)

启动时需要创建连接池,因此要将derby.jar加入到$sqoop2/server/lib中即可。

Sqoop2将元数据及配置信息保存在数据库中,目前最新的1.99.6版本支持Derby及Postgresql数据库,

对于MySQL的支持将在1.99.7中加入,目前可以通过补丁的形式实现:Sqoop2: Add MySQL support for the metadata repository


  • java.lang.SecurityException: sealing violation: package org.apache.derby.impl.jdbc.authentication is sealed

由于tomcat启动时的classpath包含了Hive的lib,而Hive自带了derby的驱动包,因此会产生类冲突,删除掉Hive中的derby包即可。


java.lang.IllegalStateException: Class invariant violation at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:199) at org.apache.log4j.LogManager.getLogger(LogManager.java:228) at org.apache.log4j.Logger.getLogger(Logger.java:117) 这个是log4j的一个已知bug。 由org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES这个属性引起。它默认是TRUE,将其设置成FALSE就可以规避这个错误。 这个问题在TOMCAT和Glassfish两个容器里都会出现,不知道其他的会不会。 原因当这个属性为TRUE的时候,会在应用停止的时候会试图将所有为NULL的静态或不可修改字段(final)从已加载类里清除。
echo 'org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false' >> $sqoop2/server/conf/catalina.properties

eof.

本文参考:Sqoop1.9.x安装Derby JDBC database connection URL

© 著作权归作者所有

共有 人打赏支持
cwalet
粉丝 44
博文 111
码字总数 87663
作品 0
其他
私信 提问
Apache Sqoop 1.99.4 发布,Hadoop 数据迁移

Apache Sqoop 1.99.4 发布,这是 Sqoop2 的第四个里程碑版本,是非常重要的一个里程碑。 Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : ...

oschina
2014/11/27
2.2K
0
Apache Sqoop 1.99.2 发布,Hadoop 数据迁移

Apache Sqoop 团队很高兴的宣布 Sqoop 1.99.2 发布,这是 Sqoop 2 的一个重要里程碑,详细改进请看发行说明。 其中新特性包括: [SQOOP-643] - Sqoop2: Implement simple listings for conn...

红薯
2013/04/26
2K
0
sqoop2基本架构、部署和个人使用感受

一、概述 随着公司集群升级到2.x,hadoop周边的一些工具也进行了版本的更新。这次主要说说sqoop2的升级和部署,其中sqoop1和sqoop2基本框架和用法发生翻天覆地的改变,其对版本的向下兼容做的...

zengzhaozheng
07/02
0
0
Sqoop1和Sqoop2简介

主要来源: http://www.linuxidc.com/Linux/2014-10/108337.htm 1.什么是Sqoop Sqoop即 SQL to Hadoop ,是一款方便的在传统型数据库与Hadoop之间进行数据迁移的工具,充分利用MapReduce并行特...

强子哥哥
2015/12/23
792
0
sqoop——sqoop2使用

启动sqoop2 client后,就可以在sqoop2的命令行下执行各种命令了。sqoop官方的文档很全很好很简单,所有不清楚的先去官网找到官网的参考文档: User Guide 启动sqoop client:sqoop2,如果配置...

cjun1990
2016/11/17
33
0

没有更多内容

加载失败,请刷新页面

加载更多

ArrayList的实现原理以及实现线程安全

一、ArrayList概述 ArrayList是基于数组实现的,是一个动态的数字,可以自动扩容。 ArrayList不是线程安全的,效率比较高,只能用于单线程的环境中,在多线程环境中可以使用Collections.syn...

一看就喷亏的小猿
19分钟前
0
0
Netty 备录 (一)

入职新公司不久,修修补补1个月的bug,来了点实战性的技术---基于netty即时通信 还好之前对socket有所使用及了解,入手netty应该不是很难吧,好吧,的确有点难,刚看这玩意的时候,可能都不知道哪里...

_大侠__
昨天
4
0
Django简单介绍和用户访问流程

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 Django遵守BSD版权,初...

枫叶云
昨天
8
0
EOS错误代码及中文释义

本文集汇总了EOS区块链常见错误代码及其含义,完整错误代码集请查看 EOS错误代码集 - 汇智网 EOS错误代码列表如下, <table class="table table-striped"> <thead> <tr><th>错误代码</th><t......

汇智网教程
昨天
5
0
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试...

程序猿DD
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部