与关系型数据库交换数据
1. 与关系型数据库交换数据
文本转换方案
自写Java程序
Sqoop
厂商提供的解决方案
2. Sqoop简介
SQL-to-HDFS工具
利用JDBC连接关系型数据库
3. Hadoop-0.20.2下使用Sqoop
Sqoop不支持次版本,可使用CDH3,也可以通过拷贝相应的包到sqoop-1.2.0-CDH3/lib下,依然可以使用
CDH3和sqoop1.2.0的下载
http://archive.cloudera.com/cdh/3/hadoop-0.20.2-CDH3B4.tar.gz
http://archive.cloudera.com/cdh/3/sqoop-1.2.0-CDH3B4.tar.gz
其中sqoop-1.2.0-CDH3B4依赖hadoop-core-0.20.2-CDH3B4.jar,所以你需要下载hadoop-0.20.2-CDH3B4.tar.gz,解压缩后将hadoop-0.20.2-CDH3B4/hadoop-core-0.20.2-CDH3B4.jar复制到sqoop-1.2.0-CDH3B4/lib中
另外,sqoop导入mysql数据运行过程中依赖mysql-connector-java-*.jar,所以你需要下载mysql-connector-java-*.jar并复制到sqoop-1.2.0-CDH3B4/lib中
4. 配置
5. 启动hadoop,配置好相关环境变量(例如$HADOOP_HOME),就可以使用sqoop了
6. sqoop命令选项
Import
(1)从mysql导入数据的例子(权威指南)
导入到Hbase的命令
(2)从oracle导入数据
Sqoop从oracle导入,需要有ojdbc6.jar,放在$SQOOP_HOME/lib里,不用添加到classpath里,因为sqoop会自己遍历lib文件夹并添加里面的所有jar包—connect与mysql的不一样,如下(shell脚本中的主要部分)
orcl oracle实例
7. Oracle Big Data Connectors
(1) Oracle HDFS直接连接器(ODCH)实验
实验环境
实验1:直接访问HDFS数据文件
Oracle的HDFS直接连接器允许从数据库中直接访问HDFS的数据文件。支持的数据文件格式取决于ORACLE_LOADER的驱动程序
在实验1里,我们将会直接访问HDFS上的几个带分隔符的文本文件,我们可以在数据库中用sql来查询该文件
(2)Oracle Hadoop 装载程序(OLH实验)
8. 应用与Hbase的对接:通过Thrift
Thrift是一个跨语言的服务部署框架,最初由facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL,接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,Cocoa,Smalltalk和Ocaml),并由生成的代码负责RPC协议层和传输层的实现。
参考资料
博客资料
Thrift框架介绍:http://dongxicheng.org/search-engine/thrift-framework-intro/
Thrift使用指南:http://dongxicheng.org/search-engine/thrift-guide/
(1) PHP通过Thrift链接Hbase的主要步骤
C++,c#与Hbase连接的步骤,方法与PHP类似