文档章节

Sqoop2 vs Sqoop

cwalet
 cwalet
发布于 2015/11/23 17:09
字数 793
阅读 947
收藏 1
点赞 0
评论 0

以下文字内容部分译自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
博文 92
码字总数 86709
作品 0
其他
Apache Sqoop 1.99.4 发布,Hadoop 数据迁移

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

oschina ⋅ 2014/11/27 ⋅ 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 ⋅ 0

sqoop2基本架构、部署和个人使用感受

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

zengzhaozheng ⋅ 2014/06/28 ⋅ 0

Sqoop1和Sqoop2简介

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

强子哥哥 ⋅ 2015/12/23 ⋅ 0

安装sqoop1.99.7

sqoop2和sqoop1有较大的区别。将整体的ETL过程分割成server和client两部分执行,sqoop2是交互式的操作。 解压安装 [hadoop@fa01 ~]$ tar -zxvf sqoop-1.99.7-bin-hadoop200.tar.gz -C ./ 重命...

白话 ⋅ 2017/08/25 ⋅ 0

sqoop——sqoop2使用

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

cjun1990 ⋅ 2016/11/17 ⋅ 0

Sqoop1配置过程

注:sqoop官网提供sqoop1和sqoop2两个版本,sqoop2不支持hive、hbase等。 配置过程 1、解压sqoop tar包,本例解压到/usr/local/sqoop-1.4.6目录。 2、复制/usr/local/sqoop-1.4.6/conf下的s...

源子 ⋅ 2016/10/13 ⋅ 0

sqoop的安装与使用,sqoop安装使用

sqoop的安装与使用,sqoop安装使用 1.什么是Sqoop Sqoop即 SQL to Hadoop ,是一款方便的在传统型数据库与Hadoop之间进行数据迁移的工具,充分利用MapReduce并行特点以批处理的方式加快数据传...

Zero零_度 ⋅ 2016/06/06 ⋅ 0

基于Hadoop生态圈的数据仓库实践 —— ETL(一)

一、使用Sqoop抽取数据 1. Sqoop简介 Sqoop是一个在Hadoop与结构化数据存储(如关系数据库)之间高效传输大批量数据的工具。它在2012年3月被成功孵化,现在已是Apache的顶级项目。Sqoop有Sqo...

wzy0623 ⋅ 2016/07/01 ⋅ 0

Apache Sqoop 1.99.6 发布,Hadoop 数据迁移

Apache Sqoop 1.99.6 发布,这是 Sqoop2 的第六个版本。 此版本现已提供下载:http://www.apache.org/dyn/closer.cgi/sqoop/1.99.6 Sqoop 1.99.6 包括一些新特性:通过 Kite 连接器和 Role B...

oschina ⋅ 2015/05/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对于程序员的招聘问题,作为软件人的一些吐槽和建议

作为软件人,找工作有时候似乎挺苦逼的。 说真的,让我去掉前面这句中“似乎”二字吧。就是苦逼!很多人都曾抱怨处在招聘的一方很糟糕——我们没有任何可靠的方式来甄别会写代码并且写得好的...

老道士 ⋅ 36分钟前 ⋅ 0

HDFS原理学习

一、概述 1、 Hadoop整合了众多的文件系统,首先提供了一个高层的文件系统抽象org.apache.hadoop.fs.FileSystem。然后有各个文件系统的实现类。 2、Hadoop是JAVA编写的,不同文件系统之间的交...

cjxcloud ⋅ 40分钟前 ⋅ 0

Linux下MySQL表名不区分大小写的设置方法(抄袭别人的)

Linux下MySQL表名不区分大小写的设置方法 MySQL表名不区分大小写的设置方法 在用centox安装mysql后,把项目的数据库移植了过去,发现一些表的数据查不到,排查了一下问题,最后发现是表名的大...

随风而浮沉 ⋅ 45分钟前 ⋅ 0

ubuntu下安装宋体simsun

sudo cp simsun.ttc /usr/share/fonts cd /usr/share/fonts sudo chmod 644 simsun.ttc 更新字体缓存: 代码: sudo mkfontscale 代码: sudo mkfontdir 代码: sudo fc-cache -fsv 安装chrome扩......

wangxuwei ⋅ 46分钟前 ⋅ 0

利用 ssh 传输文件

Linux 下一般可以用 scp 命令通过 ssh 传送文件: #把服务器上的 /home/user/a.txt 发送到本机的 /var/www/local_dir 目录下scp username@servername:/home/user/a.txt /var/www/local_dir...

大灰狼时间 ⋅ 56分钟前 ⋅ 0

web3j教程:android和java程序员如何使用web3j开发区块链以太坊

如何使用web3j为Java应用或Android App增加以太坊区块链支持,本教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤...

智能合约 ⋅ 今天 ⋅ 0

web3j开发java或android以太坊智能合约快速入门

web3j简介 web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 可以通过它进行以太坊区块链...

笔阁 ⋅ 今天 ⋅ 0

一起读书《深入浅出nodejs》-异步I/O

异步I/O “异步”这个名词其实很早就诞生了,但它大规模流行却是在Web 2.0浪潮中,它伴随着AJAX的第一个A(Asynchronous)席卷了Web。 为什么要异步I/O 关于异步I/O为何在Node里如此重要,这与...

小草先森 ⋅ 今天 ⋅ 0

JVM各种问题

1、如果启动什么都不设,会怎样? 先来看一个命令 [root@localhost bin]# java -XX:+PrintCommandLineFlags -version -XX:InitialHeapSize=29899008 -XX:MaxHeapSize=478384128 -XX:+PrintCo......

算法之名 ⋅ 今天 ⋅ 0

SAS笔记-宏2

宏是一种文本,一般来说其编译是在程序执行之前。 宏变量的创建 %let语句 %let macro_variables = text; %let是常见的宏变量建立方式,其编译就在执行前。如下例中,想要宏变量test等于数据集...

tonorth123 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部