Sqoop安装、使用手册

1 Sqoop简介

Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如: MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

2 准备

2.1 环境说明

1 Sqoop安装采用tar包的方式.

2 Hadoop版本为hadoop-2.5.0-cdh5.3.3,Hive版本为hive-0.13.1-cdh5.3.3

3 Sqoop下载地址:

a)  CDH版

http://archive-primary.cloudera.com/cdh5/cdh/5/

b) Apache版

http://archive.apache.org/dist/sqoop/

2.1.1虚拟机里Linux系统版本

[root@localhost ranger-0.5.0-usersync]# cat /etc/issue | grep Linux

Red Hat Enterprise Linux Server release 6.5 (Santiago)

2.1.2 JDK版本

[root@localhost native]# java -version

java version "1.7.0_67"

Java(TM) SE RuntimeEnvironment (build 1.7.0_67-b01)

Java HotSpot(TM) 64-BitServer VM (build 24.65-b04, mixed mode)

2.1.3mysql版本

[root@localhost native]# mysql -uroot -proot-e"select version()";

Warning: Using a password onthe command line interface can be insecure.

+-----------+

| version() |

+-----------+

| 5.6.14    |

+-----------+

注:

1 Mysql 驱动为mysql-connector-java-5.1.31-bin.jar

2 Oracle驱动为ojdbc14.jar

3 安装

3.1安装Sqoop

1)安装mysql相关服务

rpm tar –zxvf sqoop-1.4.5-cdh5.3.3.tar.gz

vi ~/.bash_profile

#新增环境变量

exportSQOOP_HOME=/root/sqoop-1.4.5-cdh5.3.3

PATH=$PATH:$HADOOP_HOME/bin:$HIVE_HOME/bin:$SQOOP_HOME/bin

source ~/.bash_profile

2)配置数据库驱动

#拷贝mysql驱动到sqoop的lib内

cp mysql-connector-java-5.1.31-bin.jar $SQOOP_HOME/lib/

#拷贝oracle驱动到sqoop的lib内

cp ojdbc14.jar $SQOOP_HOME/lib/

3.2 安装Sqoop插件(Oraoop)

1)方法一) sqoop-site里配置参数

<property>

         <name>sqoop.connection.factories</name>

<value>org.apache.sqoop.manager.oracle.OraOopManagerFactory,com.cloudera.sqoop.manager.DefaultManagerFactory</value>

</property>

#测试sqoop import时不指定split-by 但m为2个以上时是否报错。

2) 方法二) 如果方法一未生效需要按照插件的方式安装。

tar -zxvf oraoop-1.6.0-cdh4.tgz

chmod +x install.sh

./install.sh

#按照提示完成sqoop安装

#测试通方法一

3.3 安装问题

暂无.

4 配置

4.1 Oraoop插件oralce侧配置

配置主要是在启用插件的sqoop。这里需要在oracle那边开启访问系统表的权限.

#oracle里给如下权限或则角色,推荐采用方法二

方法一)

createsession

selectany dictionary(权限)

方法二)

createsession

select_catalog_role(角色)

方法三)

selecton v_$instance

selecton dba_tables

selecton dba_tab_columns

selecton dba_objects

selecton dba_extents

selecton dba_segments — Required for Sqoop imports only

selecton v_$database — Required for Sqoop imports only

selecton v_$parameter — Required for Sqoop imports only

.

5 使用

5.1 Sqoop常用命令

1) 显示mysql数据库表的信息,一般sqoop安装测试用

sqoop list-databases --connect jdbc:mysql://192.168.56.10:3306/FenSheng_ling_test-username root --password 123456

 

2)sqoop import导入表到hdfs

sqoop import --verbose --fields-terminated-by ','--connect jdbc:mysql://192.168.56.10:3306/test --username root --password123456 --table test_shen --target-dir /home/hadoop/john/ --split-by'NAME'  -m 2

 

3)sqoop导入视图到hdfs

sqoop import --verbose --fields-terminated-by '~'--connect jdbc:mysql://192.168.56.10:3306/Test --username root --password123456

--query 'SELECT * FROM view_a WHERE $CONDITIONS' -m1 target-dir /home/hadoop/test --delete-target-dir

4)sqoop导入hbase

sqoop import --connect jdbc:oracle:thin:@192.56.56.10:1521:STBIGDB --username BIG --password 123456 --query "select ROWKEY, "a" from(select id||'_'||order_id as ROWKEY, area_id ||'^|'||cust_id '^|' || saler as "a" from BIG.TB_HB where \$CONDITIONS)" --split-by ROWKEY --hbase-create-table --hbase-table test_biguser2 --column-family f1 --hbase-row-key ROWKEY

5)sqoop rac方式导入表至hdfs

sqoop import -D oraoop.oracle.rac.service.name=ods.ahdx-Dmapred.child.java.opts="-Djava.security.egd=file:/dev/../dev/urandom"--connect jdbc:oracle:thin:@"(DESCRIPTION = (ADDRESS_LIST =  (ADDRESS= (PROTOCOL = TCP)(HOST = 192.168.56.11)(PORT = 1521)) (ADDRESS = (PROTOCOL =TCP)(HOST = 192.168.56.10)(PORT = 1521)) (LOAD_BALANCE = yes) (FAILOVER = on) )(CONNECT_DATA = (SERVICE_NAME = xman.orcl) (SRVR = DEDICATED) ))"--username INNER --password 123456 --table PUT.ORDER --delete-target-dir--target-dir /user/shenl/order --fetch-size 5000 --fields-terminated-by '|'--lines-terminated-by '\001' --null-string '\\N' --null-non-string '\\N' --direct-m 21;

 

6)sqoop oracle null值转义、特殊字符(\r,\n,\0)过滤

sqoop import --connectjdbc:oracle:thin:@192.168.56.10:1521:EDW --username EDA --password edwedaw--table SHENL -m 1 --warehouse-dir /user/hive/warehouse/ --hive-import--hive-table shenl --as-textfile --hive-drop-import-delims --null-string '\\N'--null-non-string '\\N'

7)sqoop export HDFS数据到oracle

sqoop export -Doraoop.nologging=true-Dsqoop.export.records.per.statement=10 -Dsqoop.export.statements.per.transaction=10--connect jdbc:oracle:thin:@192.168.56.10:1521:EDW --username INT --password123456 --table SHENL --export-dir /user/shenl/ --input-fields-terminated-by'\001' --lines-terminated-by '\006' --input-null-non-string '\\N' --input-null-string'\\N' -m 4

 

8)sqoop export部分字段到关系型数据库

 sqoop export --connect 'jdbc:sqlserver://192.168.56.10;username=sa;password=sasa;database=Test'--table test_shen --export-dir /home/hadoop/test/code.txt--input-fields-terminated-by '~' --columns date,NAME

 

9)sqoop eval验证工具,可执行SQL返回结果集

 sqoop eval --connect"jdbc:oracle:thin:@192.168.56.10:1521:orcl" --username shenl--password shenl -query "select count(*) from ORDER "

 

10)sqoop oraoop插件之指定oralce分区导入

 

sqoop import -Dmapred.child.java.opts="-Djava.security.egd=file:/dev/../dev/urandom"-Doraoop.import.partitions=T1,T2,T3 --connectjdbc:oracle:thin:@"(DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.56.10)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME= orcl)

    )

  )

" --username shenl --password shenl --table MYTEST--delete-target-dir --target-dir /sqoopTest2 --fields-terminated-by ','--lines-terminated-by '\n' --fetch-size 5000 --hive-drop-import-delims--null-string '\\N' --null-non-string '\\N' -m 2

 

            

6 总结

仔细跟踪log,具体问题具体分析.

Sqoop1使用手册相关推荐

  1. 分布式训练使用手册-paddle 数据并行

    分布式训练使用手册¶ 分布式训练基本思想¶ 分布式深度学习训练通常分为两种并行化方法:数据并行,模型并行,参考下图: 在模型并行方式下,模型的层和参数将被分布在多个节点上,模型在一个mini-batc ...

  2. 正则语法完全正则表达式手册_语法格式重点

    20211202 https://blog.csdn.net/lc11535/article/details/103266263 该表达式打开re.U(re.UNICODE)标志. python –& ...

  3. CUDA C++编程手册(总论)

    CUDA C++编程手册(总论) CUDA C++ Programming Guide The programming guide to the CUDA model and interface. C ...

  4. html iso标准文档,HTML ISO-8859-1 参考手册

    # HTML ISO-8859-1 参考手册 HTML 4.01 支持 ISO 8859-1 (Latin-1) 字符集. ISO-8859-1 的较低部分(从 1 到 127 之间的代码)是最初的 ...

  5. 最好的程序界面就是用户无需去阅读操作手册就知道该如何使用的界面

    最好的程序界面就是用户无需去阅读操作手册就知道该如何使用的界面. 原则 1.一致性  如果你可以在一个列表的项目上双击后能 够弹出对话框,那么应该在任何列表中双击都能弹出对话框.要有统一的字体写号.统 ...

  6. ffmpeg linux安装_ffmpeg命令中文手册

    功能 视频转换和编辑工具 示例 1.从mp4视频文件中提取音频并保存为mp3音频格式 [root@node_116 video]# ffmpeg -i video.mp4 -vn sound.mp3f ...

  7. java修炼手册3.8_Java修炼手册

    <Java修炼手册免费版>是一款专为想要自学JAVA的用户打造的全方位掌上学习软件,拥有各阶段的科学课程模块,从视频,资料,图片,演示等多种方面全面引导用户科学而快速的融入JAVA的世界中 ...

  8. android 设置setmultichoiceitems设置初始化勾选_阿里巴巴Java开发手册建议创建HashMap时设置初始化容量,但是多少合适呢?...

    集合是Java开发日常开发中经常会使用到的,而作为一种典型的K-V结构的数据结构,HashMap对于Java开发者一定不陌生. 关于HashMap,很多人都对他有一些基本的了解,比如他和hashtab ...

  9. 【radar】毫米波雷达相关资料(文献综述列表、顶会研讨会资料列表、顶会workshops资料列表、工具书、使用手册)(2)

    [radar]毫米波雷达相关资料(毫米波雷达文献综述列表.毫米波雷达顶会研讨会资料列表.毫米波雷达顶会workshops资料列表.毫米波雷达工具书.毫米波雷达使用手册)(2) Review Paper ...

最新文章

  1. 将调用密集型的 COM 组件迁移到托管代码
  2. python的数组和元组区别_python中数组,列表,元组的区别、定义、功能
  3. textarea 自适应窗口|IE、firefox 显示同样的效果
  4. 51nod 1138 连续整数的和(数学公式)
  5. 黑马程序员pink老师前端入门教程,零基础必看的JavaScript基础语法视频教程(jQuery1)
  6. boost::rational用法的测试程序
  7. 数据结构:哈希表(散列表)基础
  8. @SpringBootApplication(exclude={DataSourceAutoConfiguration.class})注解作用
  9. python到包快捷键_如何最简单、通俗地理解Python的包?
  10. In 2018, the release of Huawei‘s p20 pro
  11. CF119D(字符串-哈希求解(KMP求了半天,结果哈希更简单!))
  12. 【OpenCV学习笔记】【编程实例】一(VS2010/MFC+OPenCV2.4.7读取图片和摄像头)
  13. 优秀的代码是如何分层的?
  14. linux中文语音合成,Linux系统下高质量(微软)中、英文语音合成TTS的安装
  15. Word的样式库在 选项卡中_2分钟学会在Word中制作田字格 米字格 书法练字再也不用买本子了...
  16. ES文件浏览器局域网传输文件分析
  17. NVMe 2.0 Telemetry
  18. item_search_coupon - 优惠券查询(淘宝) 该接口的使用主要是查询商品是否有优惠券,例如满一百减50元,相似商品有优惠券的都会显示出来;
  19. 知行EDI系统如何通过中间数据库表方式集成金蝶ERP
  20. 高德地图手机端定位偏移问题

热门文章

  1. boost::utility::string_ref相关的测试程序
  2. boost::units模块测试元函数 is_unit, is_quantity, is_dimension_list ....
  3. boost::tti模块测试函数模板
  4. boost::rotate相关的测试程序
  5. boost::mpl模块实现logical相关的测试程序
  6. boost::math::nonfinite_num_facets用法的测试程序
  7. boost::hana::embedding用法的测试程序
  8. GDCM:gdcm::Rescaler的测试程序
  9. GDCM:gdcm::ImplicitDataElement的测试程序
  10. GDCM:gdcm::Attribute的测试程序