使用sqoop工具从oracle导入数据
sqoop工具是hadoop下连接关系型数据库和Hadoop的桥梁,支持关系型数据库和hive、hdfs,hbase之间数据的相互导入,可以使用全表导入和增量导入
从RDBMS中抽取出的数据可以被MapReduce程序使用,也可以被类似Hive的工具使用;得到分析结果后sqoop可以将结果导回数据库,供其他客户端使用
sqoop安装
解压然后配置环境变量即可
从oracle向HDFS导入数据
原理:
1)在导入之前,sqoop使用jdbc来检查将要导入的表,检索出表中所有的列及数据类型,然后将这些类型映射为java类型,在mapreduce中将使用对应的java类型保存字段的值。sqoop的代码生成器使用这些信息来 创建对应的类,用于保存从表中抽取的记录
2)不需要每次都导入整张表,可以在查询中加入where子句,来限定需要导入的记录
导入:
遍历oracle的表:
sqoop list-tables --connect jdbc:oracle:thin:@192.168.**.**:**:**--username **--password=**
导入oracle中的表:
sqoop import --connect jdbc:oracle:thin:@192.168.**.**:**:**--username **--password **--table ENTERPRISE -m 1 --target-dir /user/root --direct-split-size 67108864
其中split-size指定导入的HDFS路径与导入的文件大小限制
注意:1. 默认情况下会使用4个map任务,每个任务都会将其所导入的数据写到一个单独的文件中,4个文件位于同一目录,本例中 -m1表示只使用一个map任务
2. 文本文件不能保存为二进制字段,并且不能区分null值和字符串值"null"
3. 执行上面的命令后会生成一个ENTERPRISE.java文件,可以通过ls ENTERPRISE.java查看,代码生成是sqoop导入过程的必要部分,sqoop在将源数据库中的数据写到HDFS前,首先会用生成的代码将其进行反序列化
在MapReduce下查看:
在namenode下查看:
查看VEHICLE表:
查看part-m-00000中数据
oralce中每条记录对应上面一行数据
数据导出
使用export可将hdfs中数据导入到远程数据库中
eg:
export --connect jdbc:oracle:thin:@192.168.**.**:**:**--username **--password=** -m1 table VEHICLE--export-dir /user/root/VEHICLE
向Hbase导入数据
eg:
sqoop import --connect jdbc:oracle:thin:
@192.168.**.**:**:**--username **--password=**--m 1 --table VEHICLE --hbase-create-table --hbase-table VEHICLE --hbase-row-key ID --column-family VEHICLEINFO --split-by ID
使用sqoop工具从oracle导入数据的更多相关文章
- sqoop工具从oracle导入数据2
sqoop工具从oracle导入数据 sqoop工具是hadoop下连接关系型数据库和Hadoop的桥梁,支持关系型数据库和hive.hdfs,hbase之间数据的相互导入,可以使用全表导入和增量导入 ...
- sqoop操作之ORACLE导入到HIVE
导入表的所有字段 sqoop import --connect jdbc:oracle:thin:@192.168.1.107:1521:ORCL \ --username SCOTT --passw ...
- oracle导入数据
oracle导入数据时候注意点: 1.imp system/admin@oracle9i file=E:\shujukuwenjian\2014-04-01.dmp fromuser=ptb_supe ...
- 使用SLT 工具从SAP导入数据到SAP HANA的监控
使用SLT工具从SAP导入数据到SAP HANA主要有两种方式监控, 一是在SAP SLT服务器上使用以下T-Code: IUUC_SYNC_MON MWBMON 二是在SAP HANA Studio ...
- sqoop操作之Oracle导入到HDFS
导入表的所有字段 sqoop import --connect jdbc:oracle:thin:@192.168.1.100:1521:ORCL \ --username SCOTT --passw ...
- 使用sqoop1.4.4从oracle导入数据到hive中错误记录及解决方案
在使用命令导数据过程中,出现如下错误 sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.29.16:1521/testdb ...
- 通过工具SQLyog进行导入数据
可以通过工具SQLyog进行图形化导入数据. 1.准备好Excel表格 2.将excel表格数据导入到mysql数据库 (1)打开准备好的excel表,选择格式 另存为csv. (2)如果准备的exc ...
- 使用MongoDB命令工具导出、导入数据
Windows 10家庭中文版,MongoDB 3.6.3, 前言 在前面的测试中,已经往MongoDB的数据库中写入了一些数据.现在要重新测试程序,数据库中的旧数据需要被清理掉,可是,又想保存之前写 ...
- 使用sqoop往hdfs中导入数据供hive使用
sqoop import -fs hdfs://x.x.x.x:8020 -jt local --connect "jdbc:oracle:thin:@x.x.x.x:1521:testdb ...
随机推荐
- poj2993 poj2669
扯淡题. 2993 #include <iostream> #include <stdio.h> #include <string> #include <st ...
- 从零开始写一个Tomcat(叁)--请求解析
挖坑挖了这么长时间也该继续填坑了,上文书讲到从零开始写一个Tomcat(贰)--建立动态服务器,讲了如何让服务器解析请求,分离servlet请求和静态资源请求,读取静态资源文件输出或是通过URLCla ...
- 鼠标双击范围基于Win7
TP鼠标双击范围主要是修改Registry中的HKEY_CURRENT_USER\Control Panel\Mouse里面的两个参数 DoubleClickHeight跟DoubleClickWid ...
- 176. [USACO Feb07] 奶牛聚会
#include<iostream> #include<cstdio> #include<cstring> #include<queue> #defin ...
- codevs 1242 布局(查分约束+SPFA)
/* 查分约束. 给出的约束既有>= 又有<= 这时统一化成一种 Sb-Sa>=x 建边 a到b 权值为x Sb-Sa<=y => Sa-Sb>=-y 建边 b到a ...
- noi 7221 拯救公主 (状态压缩+bfs)
/* 这题实在调糊了 借鉴的题解的一些判断方法 位运算大法好 - - 因为要集齐所有的宝石所以状态压缩一下 f[i][j][s]将s化为二进制 每一0表示该宝石没有 1表示该宝石有 有:到(i,j)这 ...
- Asp.Net操作WebServices
最近在看一些关于webServices的资料,做了一个下例子整理一下,主要包括.net平台下创建services服务.后台访问和前端Ajax访问三部分. 一.创建webServices服务. 1.打开 ...
- HTTP协议是什么?(及get和post请求的区别)
http://blog.csdn.net/xiemk2005/article/details/6108618 http://blog.csdn.net/mengleigaocong/article/d ...
- IOS开发常用的linux命令
pwd 在Linux层次结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录.然而,没有提示符来告知用户目前处于哪一个目录中.想要知道当前所处 ...
- Java中long和double的原子性
Java中long和double的原子性 java中基本类型中,long和double的长度都是8个字节,32位(4字节)处理器对其读写操作无法一次完成,那么,JVM,long和double是原子性的 ...