hadoop-16-sqoop导入oracle数据
sqoop = sql + hadoop
1,系统方面的准备
scp ./ojdbc6.jar root@server-1:/usr/hdp/2.6.0.3-8/sqoop/lib/
scp ./ojdbc6.jar root@server-2:/usr/hdp/2.6.0.3-8/sqoop/lib/
cd /usr/hdp/2.6.0.3-8/sqoop/lib/
chmod 755 ojdbc6.jar
学习了:https://www.cnblogs.com/jxhd1/p/6528574.html
su root
# usermod -a -G hadoop user001 '把user001用户添加到hadoop组中
# usermod -a -G hdfs user001 '把user001用户添加到hdfs组中
2,sqoop导入到hdfs中
学习了:http://blog.csdn.net/yu616568/article/details/45030739
'可行,识别--connection-manager,主要是-m 2进行并行导入
sqoop import --connect jdbc:Oracle:thin:@127.0.0.1:1521:ora --connection-manager org.apache.sqoop.manager.OracleManager --username admin --password admin -m 2 --split-by id --query 'SELECT t.* FROM tbl01 t where $CONDITIONS' --target-dir '/user/user001/tbl01'
'方法2 ,用--driver指定了类,-m 1 进行导入了
sqoop import --connect jdbc:Oracle:thin:@127.0.0.1:1521:ora --username admin --password admin -m 1 --driver oracle.jdbc.driver.OracleDriver --query 'SELECT * FROM tbl02 t where 1=1 and $CONDITIONS' --target-dir '/user/user001/tbl02'
‘方法3 , 查看源码之后org.apache.sqoop.manager.OracleManager.OracleManager(SqoopOptions),
'里面: } else if (scheme.startsWith("jdbc:oracle:")) {, 注意自己的连接串写的不规范
sqoop import --connect jdbc:oracle:thin:@127.0.0.1:1521:ddxt11 --username admin --password admin -m 2 --split-by id --query 'SELECT t.* FROM tbl01 t where $CONDITIONS' --target-dir '/user/user001/tbl01'
‘方法4, 表名(TBL01)、列名(--split-by ID)都要大写,不大写就报错给你看;
'主要是生成的sql语句:SELECT t.* FROM "TBL01" t WHERE 1=0,SELECT MIN("NAME1"), MAX("NAME1") FROM "TBL01"
sqoop import --connect jdbc:oracle:thin:@127:1521:ddxt11 --username admin --password admin -m 2 --split-by ID --table TBL01 --target-dir '/user/user001/tbl01'
3,数据库表从hdfs中导入到hive中
user001用户登录:
>hive
>show databases;
>create database admin;
>use admin;
>create table tbl01
(
id bigint comment '父id',
pid bigint comment '父id',
name1 VARCHAR(16) comment 'a',
name2 VARCHAR(64) comment 'b',
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
stored as textfile;
在hive中执行:
load data inpath '/user/user001/tbl01/part-m-00000' into table admin.tbl01;
在user001用户中执行:
必须先把表tbl01创建出来;
hive -e "load data inpath '/user/user001/tbl01/part-m-00000' into table admin.tbl01;"
或者
hive -f '/websoftware/tbl01_imp.sql'
不会报错了;需要把user001添加到hdfs组下面;
因为hadoop fs -ls /apps/hive/warehouse 输出:
drwxrwxrwx - user001 hdfs 0 2017-11-09 10:00 /apps/hive/warehouse/admin.db
drwxrwxrwx - user001 hdfs 0 2017-11-02 15:14 /apps/hive/warehouse/hive_test.db
hive存储文件的地方,需要使用hdfs组权限;
user001用户下面:直接从hdfs下面move到hive下面;
方法2,方法1是在hive下面使用load data 方法;
hadoop fs -mv /user/user001/d_zmzd/part-m-00000 /apps/hive/warehouse/admin.db/tbl02
hadoop-16-sqoop导入oracle数据的更多相关文章
- sqoop将oracle数据导入hdfs集群
使用sqoop将oracle数据导入hdfs集群 集群环境: hadoop1.0.0 hbase0.92.1 zookeeper3.4.3 hive0.8.1 sqoop-1.4.1-incubati ...
- Sqoop导入mysql数据到Hbase
sqoop import --driver com.mysql.jdbc.Driver --connect "jdbc:mysql://11.143.18.29:3306/db_1" ...
- sqoop导入增量数据
使用sqoop导入增量数据. 核心参数 --check-column 用来指定一些列,这些列在增量导入时用来检查这些数据是否作为增量数据进行导入,和关系行数据库中的自增字段及时间戳类似这些被指定的列的 ...
- Hive中导入Oracle数据错误:Listener refused the connection with the following error: ORA-12505
问题: 今天往Hive中导入Oracle数据的时候碰到了如下错误:Listener refused the connection with the following error: ORA-12505 ...
- sqoop导oracle数据到hive中并动态分区
静态分区: 在hive中创建表可以使用hql脚本: test.hql USE TEST; CREATE TABLE page_view(viewTime INT, userid BIGINT, pag ...
- sqoop 导入增量数据到hive
版本 hive:apache-hive-2.1.0 sqoop:sqoop-1.4.6 hadoop:hadoop-2.7.3 导入方式 1.append方式 2.lastmodified方式,必须要 ...
- Sqoop导入MySQL数据
导入所有表: sqoop import-all-tables –connect jdbc:mysql://ip:port/dbName --username userName --password p ...
- 使用MySQL Migration Toolkit快速导入Oracle数据
近来笔者有项目需要将原有的Oracle数据库中的数据导入到MySQL中,经过试用发现MySQL GUI Tools中的MySQL Migration Toolkit可以非常方便快捷的将Oracle数据 ...
- 解决sqoop 导入oracle表时 --split-by参数为日期类型时的报错:ORA-01861: literal does not match format string
报错栈: -- ::, INFO [main] org.apache.sqoop.mapreduce.db.DBRecordReader: Executing query: select " ...
随机推荐
- 聚类(Clustering)
简介 相对于决策树.朴素贝叶斯.SVM等有监督学习,聚类算法属于无监督学习. 有监督学习通常根据数据集的标签进行分类,而无监督学习中,数据集并没有相应的标签,算法仅根据数据集进行划分. 由于具有出色的 ...
- css实现透明的两种方式及其区别
一.opacity:0~1 值越高,透明度越低,下面为示例 选择器{ opacity:0.5 } 选择器匹配到的节点们,包括节点们的孩子节点,都会实现%50透明,另 0.5 可直接写成 .5 二.rg ...
- CORS与JSONP的区别
CORS与JSONP: a. JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求. b. 使用CORS,开发者可以使用普通的XMLHttpRequest发起请求和获得数据,比起JSON ...
- MgdDbg工具
ArxDbg是可以查看AutoCAD内部数据结构的工具,可惜是C++的.从网上找到了一个.NET版本的MgdDbg,实现的功能与C++版本的差不多. 1.运行程序,你只要右键点击AutoCAD窗口,在 ...
- idea 编辑器 光标问题!(insert键)
今天写代码不小心按了键盘的insert键,光标莫名闪退了 ,重新打开的时候发现 光标变成了 按了insert 的效果 ,简直无语的要命啊! 这敲代码太恶心了!怒搜资料 结果找到了解决办法! 1.打 ...
- Winserver服务器-AD字段对照简图
AD字段对照简图
- ASP.NET-优化websit
如何优化一个网站 1.如果是数据库的问题则尝试添加索引.优化SQL语句,如果是算法的问题,则优化算法. 2.如果对于一些不经常改动的页面可以使用静态页技术! 3.对于一些数据不需要及时更新的而且取数据 ...
- HDU 2879
利用x<n的信息,可以证得当n为素数时,he[n]=2;同时,若n 为素数,则有HE[N^K]=2;因为若等式成立则有n|x(x-1).抓住这个证即可. 至于符合积性函数,想了很久也没想出来,看 ...
- Kafka Consumer1
本文的代码基于kafka的0.10.1的版本. 重新设计的原因 0.9以前的consumer是通过zookeeper来进行状态管理里的. 羊群效应 任何Broker或者Consumer的增减都会触发所 ...
- swift语言点评十八-异常与错误
1.错误类型与枚举的结合 enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coinsNee ...