安装环境:Hive: hive-0.11.0Hadoop: Hadoop 1.2.1Sqoop: sqoop-1.4.4.bin__hadoop-1.0.0Oralce driver: ojdbc6.jar
软件下载:Hive: http://apache.dataguru.cn/hive/Hadoop: http://apache.dataguru.cn/hadoop/Sqoop: http://apache.dataguru.cn/sqoop/Ojdbc: http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html
操作步骤:前提确保hadoop已经启动
1. 安装sqoop--解压tar zvxf sqoop-1.4.4.bin__hadoop-1.0.0.tar.gzcp -r sqoop-1.4.4.bin__hadoop-1.0.0/app/hadoopchown -Rlicz:hadoop /app/hadoop/sqoop-1.4.4.bin__hadoop-1.0.0
2. 复制Oracle JDBC的驱动放到Sqoop的lib文件夹下cp ojdbc6.jar/app/hadoop/sqoop-1.4.4.bin__hadoop-1.0.0/lib
3. 修改环境变量[licz@nticket1~]$ vi .bash_profileexport HADOOP_HOME=/app/hadoop/hadoop-1.2.1export JAVA_HOME=/usr/java/jdk1.6.0_18export HIVE_HOME=/app/hadoop/hive-0.11.0
export SQOOP_HOME=/app/hadoop/sqoop-1.4.4.bin__hadoop-1.0.0PATH=$JAVA_HOME/bin:$PATH:$HOME/bin:$HADOOP_HOME/bin:$PIG_HOME/bin:$HIVE_HOME/bin:$SQOOP_HOME/binexport PATH
4. 导入oracle数据 --导入方法$ sqoop import--hive-import --connect jdbc:oracle:thin:@192.168.56.111:1521:DBNAME --username USERNAME --password PASSWORD --verbose -m 1 --table TABLENAME 说明:DBNAME:数据库实例名USERNAME:用户名PASSWORD:密码TABLENAME:表名-m:导入数据的进程的并发数,默认是4。如果导入的数据不大的话,不妨设置成1,这样导入更快。一般来说Sqoop会使用主键来平均地分割数据。并发导入的时候可以设置相关的分割列等等,具体的做法参考官方的文档。官方文档:http://sqoop.apache.org/docs/1.4.4/index.html参数说明参考:http://www.linuxidc.com/Linux/2014-02/96677.htm
注意:l
用户名和表名必需是大写的,除非它们在创建的时候是名字是放在引号中的大小写混合的形式。l Sqoop会把Oracle中的表自动在hive中创建,不用手工创建 --导入实例sqoop import--hive-import --connect jdbc:oracle:thin:@172.16.80.115:1521:CUSTOMER2--username WEBMEMBER --password webmem123 --verbose -m 1 --table MEMBERS
5. 增量导入另外一个问题,如果我们要导入某个表中的新加入的部分,可以使用--check-column、--incremental、--last-value三个参数,--check-column指定要检查的列,--incremental指定某种增加的模式,只有两个合法的值,append 和lastmodified。如果--incremental为append,则Sqoop会导入--check-column指定的列的值大于--last-value所指定的值的记录。如果--incremental为lastmodified,则Sqoop会导入--check-column指定的列的值(这是一个时间戳)近于--last-value所指定的时间戳的记录。 例如下面的命令可以导入列ID的值大于4的所有记录。 $ sqoop import--hive-import --connect jdbc:oracle:thin:@192.168.56.111:1521:DBNAME --usernameUSERNAME --password PASSWORD --verbose -m 1 --table TABLENAME --check-column ID--incremental append --last-value 4
遇到的问题:1.导入hive时报错ERROR tool.ImportTool:Imported Failed: Attempted to generate class with no columns 原因和解决办法:是因导入时表名或用户名没有大写所致sqoop import --hive-import --connectjdbc:oracle:thin:@172.16.80.115:1521:CUSTOMER2 --username WEBMEMBER --passwordwebmem123 --verbose -m 1 --tablemembers
Sqoop 的详细介绍:请点这里
Sqoop 的下载地址:请点这里
相关阅读:通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据 http://www.linuxidc.com/Linux/2013-06/85817.htm[Hadoop] Sqoop安装过程详解 http://www.linuxidc.com/Linux/2013-05/84082.htm用Sqoop进行MySQL和HDFS系统间的数据互导 http://www.linuxidc.com/Linux/2013-04/83447.htmHadoop Oozie学习笔记 Oozie不支持Sqoop问题解决 http://www.linuxidc.com/Linux/2012-08/67027.htmHadoop生态系统搭建(hadoop hive hbase zookeeper oozie Sqoop) http://www.linuxidc.com/Linux/2012-03/55721.htmHadoop学习全程记录——使用Sqoop将MySQL中数据导入到Hive中 http://www.linuxidc.com/Linux/2012-01/51993.htmPL/SQL中SELECT总结Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法相关资讯 Hive
- Hive 简明教程 PDF (今 09:40)
- Apache Hive v2.1.0-rc1 发布下载 (06月04日)
- 在 Apache Hive 中轻松生存的12个 (04月07日)
| - Apache Hive v2.1.0 发布下载 (06月22日)
- SparkSQL读取Hive中的数据 (05月20日)
- Apache Hive 2.0.0 发布下载,数据 (02月17日)
|
本文评论 查看全部评论 (0)