文档章节

sqoop2安装

林远图raymond
 林远图raymond
发布于 2016/03/14 13:56
字数 1127
阅读 279
收藏 1
点赞 1
评论 0

参考网上的文档,以及源码内容

1、安装准备工作

    sqoop2下载地址:http://apache.fayea.com/sqoop/1.99.6/sqoop-1.99.6-bin-hadoop200.tar.gz

2、安装到工作目录

    tar -xvf sqoop-1.99.6-bin-hadoop200.tar.gz

    mv sqoop-1.99.6-bin-hadoop200 /usr/local/

3、修改环境变量,可以将sqoop安装到hadoop用户下,我就用root的作为示例了

    vi /etc/profile

    添加如下内容:

    export SQOOP_HOME=/usr/local/sqoop-1.99.6-bin-hadoop200

    export PATH=$SQOOP_HOME/bin:$PATH

    export CATALINA_BASE=$SQOOP_HOME/server

    export LOGDIR=$SQOOP_HOME/logs

    保存退出及时生效:

    source /etc/profile

4、修改sqoop配置

    vi /usr/local/sqoop-1.99.6-bin-hadoop200/server/conf

    

    #修改指向我的hadoop安装目录

    org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/usr/local/hadoop-2.7.1/

    #把hadoop目录下的jar包都引进来

    vi /usr/local/sqoop-1.99.6-bin-hadoop200/server/conf/catalina.properties

    common.loader=/usr/local/hadoop-2.7.1/share/hadoop/common/*.jar,/usr/local/hadoop-2.7.1/share/hadoop/common/lib/*.jar,/usr/local/hadoop-2.7.1/share/hadoop/hdfs/*.jar,/usr/local/hadoop-2.7.1/share/hadoop/hdfs/lib/*.jar,/usr/local/hadoop-2.7.1/share/hadoop/mapreduce/*.jar,/usr/local/hadoop-2.7.1/share/hadoop/mapreduce/lib/*.jar,/usr/local/hadoop-2.7.1/share/hadoop/tools/*.jar,/usr/local/hadoop-2.7.1/share/hadoop/tools/lib/*.jar,/usr/local/hadoop-2.7.1/share/hadoop/yarn/*.jar,/usr/local/hadoop-2.7.1/share/hadoop/yarn/lib/*.jar,/usr/local/hadoop-2.7.1/share/hadoop/httpfs/tomcat/lib/*.jar

    #因为和hadoop-2.7.1中的jar包冲突,需删除$SQOOP_HOME/server/webapps/sqoop/WEB-INFO/lib/中的log4j的jar

    #这里必须填写全路径,不能使用环境变量

    或者

    在$SQOOP_HOME中建个文件夹例如hadoop_lib,然后将这些jar包cp到此文件夹中,最后将此文件夹路径添加到common.loader属性中,这种方法更加直观些

5、下载mysql驱动包

    mysql-connector-java-5.1.29.jar

    并放到 $SQOOP_HOME/server/lib/ 目录下

    [注意:下载的是 mysql-xxx.tar.gz 只需要把里面的 mysql-connector-java.xxx-bin.jar 考出来即可,这是个坑啊]

6、启动/停止sqoop200

    /usr/local/sqoop-1.99.6-bin-hadoop200/bin/sqoop.sh server start/stop

    查看启动日志:

    vi /usr/local/sqoop-1.99.6-bin-hadoop200/server/logs/catalina.out

7、进入客户端交互目录

    $SQOOP_HOME/bin/sqoop.sh client

    sqoop:000>set server --host hadoopMaster --port 12000 --webapp sqoop 【红色部分为 本机hostname 主机名】

    sqoop:000> show version --all    【查看版本信息】

    sqoop:000> show connector --all 【查看现有连接类型信息】

创建数据库连接:

1、创建hadoop连接

    sqoop:000> create link --cid 3

    Creating link for connector with id 3

    Please fill following values to create new link object

    Name: hdfs --设置连接名称

    Link configuration

    HDFS URI: hdfs://hadoopMaster:8020/  --HDFS访问地址

    Hadoop conf directory:/usr/local/hadoop-2.7.1/etc/hadoop

    New link was successfully created with validation status OK and persistent id 1

2、创建mysql连接

    sqoop:000> create link --cid 4

    

    Creating link for connector with id 4

    Please fill following values to create new link object

    Name: mysqltest    --连接名称

    Link configuration

    JDBC Driver Class: com.mysql.jdbc.Driver --连接驱动类

    JDBC Connection String: jdbc:mysql://mysql.server/database --jdbc连接

    Username: sqoop    --数据库用户

    Password: ************    --数据库密码

    JDBC Connection Properties: 

    There are currently 0 values in the map:

    entry# protocol=tcp

    There are currently 1 values in the map:

    protocol = tcp

    entry#按回车

    New link was successfully created with validation status OK and persistent id 2

3、建立job(MySql 到 HDFS)

    sqoop:000>show link

    sqoop:000> create job -f 2 -t 1

    Creating job for links with from id 2 and to id 1

     Please fill following values to create new job object

     Name: Sqoopy  --设置 任务名称

    From database configuration

        Schema name: (Required)sqoop --库名:必填

        Table name:(Required)sqoop --表名:必填

        Table SQL statement:(Optional)  --查询sql用来替代表查询:选填

        Table column names:(Optional)    --查询结果的字段名集合:选填

        Partition column name:(Optional) id    --唯一键,需使用查询语句中的【别名.字段】格式:选填

        Null value allowed for the partition column:(Optional) --选填

        Boundary query:(Optional)  --过滤min(id)及max(id)的sql,过滤字段为checkColumn,会将lastValue传入作为第一个参数,第二个参数为获取的当前最大值【感觉第二个参数这样不好控制哈,想改源码了...】:选填

    Incremental read

        Check column:(Optional) --选填

        Last value:(Optional)--选填

    To HDFS configuration

        Null value: (Optional)--选填

        Output format:

            0 : TEXT_FILE

            1 : SEQUENCE_FILE

        Choose: 0   --选择文件压缩格式

        Compression format:

            0 : NONE

            1 : DEFAULT

            2 : DEFLATE

            3 : GZIP

            4 : BZIP2

            5 : LZO

            6 : LZ4

            7 : SNAPPY

            8 : CUSTOM

        Choose: 0  --选择压缩类型

        Custom compression format:(Optional)  --选填

        Output directory:(Required)/root/projects/sqoop  --HDFS存储目录(目的地)

        Append mode:(Optional)  --是否增量导入:选填

        Driver Config

        Extractors: 2  --提取器

        Loaders: 2     --加载器

        New job was successfully created with validation status OK  and persistent id 1

    #查看job

    sqoop:000> show job

    #执行任务用

    #start job命令去执行这个任务,用--jid来传入任务id

    sqoop:000> start job --jid 1

问题一:

要注意一下$SQOOP_HOME/server/conf/server.xml中的tomcat端口问题,确保这些端口不会和你其他tomcat服务器冲突。

问题二:

删除$SQOOP_HOME/server/sqoop/WEB-INFO/lib中的log4j-1.2.16.jar解决jar包冲突问题

问题三:

在sqoop客户端设置查看job详情:

set option --name verbose --value true




© 著作权归作者所有

共有 人打赏支持
林远图raymond
粉丝 0
博文 2
码字总数 1127
作品 0
杭州
高级程序员

暂无相关文章

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

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

老道士 ⋅ 24分钟前 ⋅ 0

HDFS原理学习

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

cjxcloud ⋅ 28分钟前 ⋅ 0

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

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

随风而浮沉 ⋅ 33分钟前 ⋅ 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 ⋅ 34分钟前 ⋅ 0

利用 ssh 传输文件

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

大灰狼时间 ⋅ 45分钟前 ⋅ 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部