文档章节

Sqoop2 vs Sqoop

cwalet
 cwalet
发布于 2015/11/23 17:09
字数 793
阅读 958
收藏 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
粉丝 43
博文 110
码字总数 86709
作品 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
Sqoop1和Sqoop2简介

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

强子哥哥
2015/12/23
792
0
sqoop2基本架构、部署和个人使用感受

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

zengzhaozheng
07/02
0
0
sqoop——sqoop2使用

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

cjun1990
2016/11/17
33
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java并发备忘

不安全的“先检查后执行”,代码形式如下: if(条件满足){ //这里容易出现线程安全问题//doSomething}else{//doOther} 读取-修改-写入 原子操作:使用CAS技术,即首先从V中读取...

Funcy1122
今天
0
0
SpringBoot2.0 停机

最近新建了个SpringBoot2.0的项目,因为原来一直使用的是传统的Tomcat部署war包的形式,所以这次SpringBoot内置Tomcat部署jar包的时候遇到了很多问题。其中一个就是因为没有外置的Tomcat容器...

Canaan_
昨天
0
1
Confluence 6 外部参考

一个外部参考的意思是任何站点链接到你 Confluence 的实例。任何时候当 Confluence 的用户单击这个外部链接的时候,Confluence 可以记录这次单击为参考。 在默认的情况下,外部链接的参考链接...

honeymose
昨天
0
0
Android中的设计模式之抽象工厂模式

参考 《设计模式解析》 第十一章 Abstract Factory模式 《设计模式:可复用面向对象软件的基础 》3.1 Abstract Factory 抽象工厂 对象创建型模式 《Android源码设计模式解析与实战》第6章 创...

newtrek
昨天
0
0
Redis | 地理空间(GEO)的一个坑

Redis的地理空间(Geo)是个好东西,轻轻松松的就可以把地图描点的问题处理了, 最近却遇到一个坑...Redis采用的Msater-Slave模式, 运用GEORADIUS在salve读取对应的数据,新增了从节点但是从不返...

云迹
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部