Oracle Big Data Connectors:ODCH
下载地址:
<a href="http://www.oracle.com/technetwork/bdc/big-data-connectors/downloads/index.html">http://www.oracle.com/technetwork/bdc/big-data-connectors/downloads/index.html</a>

Jave SE 下载地址:
<a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk6u38-downloads-1877406.html">http://www.oracle.com/technetwork/java/javase/downloads/jdk6u38-downloads-1877406.html</a>
Oracle11g下载地址:
Oracle Enterprise Linux下载地址:需要注册oracle帐号才能下载:
<a href="https://edelivery.oracle.com/linux">https://edelivery.oracle.com/linux</a>
在虚拟机或者物理机下安装都可以:
基本上就是一顿下一步。
然后安装oracle11g,这个真是折腾了好几天
最后按照这篇文章操作,安装成功。
<a href="http://wenku.baidu.com/view/fc804254be23482fb4da4c63.html">http://wenku.baidu.com/view/fc804254be23482fb4da4c63.html</a>
我觉得这块最好的文章就是oracle的官方给的教程:
<a href="http://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm">http://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm</a>
安装hadoop
<a href="http://blog.csdn.net/lichangzai/article/details/8206834">http://blog.csdn.net/lichangzai/article/details/8206834</a>
遇到问题1:
ssh 免密码登录设置后还是提示需要输入密码
解决方法如下:
遇到的问题2:
Agent admitted failure to sign using the key
解決办法:
机器部署情况:
主机名
IP
系统版本
Oracle node
Hadoop node
hadoop进程名
Master
192.168.74.153
OEL6.4
Oracle11.2.0.2
master
namenode,jobtracker
Node1
192.168.2.147
Ubuntu12.04
无
slave
datanode,tasktracker
Node2
192.168.2.148
主要环境变量:
变量名
变量值
ORACLE_HOME
/oracle/11g
ORACLE_SID
orcl
HADOOP_HOME
/home/hadoop/hadoop-1.2
HADOOP_CONF_DIR
$HADOOP_HOME/conf
OSCH_HOME
/opt/odch/orahdfs-2.2.0
ORAHDFS_JAR
$OSCH_HOME/jlib/orahdfs.jar
HDFS_BIN_PATH
HADOOP_CLASSPATH
$OSCH_HOME/jlib/*
按照以上配置。
在opt下建立文件夹odch,将文件传到这个目录下解压缩。
/opt/odch
解压缩:
unzip orahdfs-2.2.0.zip
然后添加hadoop\oracle\ODCH主要要环境变量
进入hadoop用户主目录,vi .bash_profile
我的配置如下(可参考):
修改用户组属性:
说明:因为之前的hadoop安装在hadoop系统用户下,而oracle安装在了oracle系统用户下,为了操作方便,使hadoop用户有操作oracle操作库的权限,现在修改hadoop系统用户属组,添加到和oracle同样的用户组下。
--查看之前的用户属组
--修改用户属组
然后重启一下计算机。
连接oracle启动数据库
然后启动oracle的listener
进入目录/opt/odch/orahdfs-2.2.0/bin,用vi打开hdfs_stream文件,加入如下配置:
确保oracle用户对$ODCH_LOG_DIR/logs目录有读写权限
因为Oracle用户需要在 {$ODCH_LOG_DIR} 目录中创建log/bad文件,所以要确保oracle用户对$ODCH_LOG_DIR/log目录有读写权限
--修改目录权限,测试读写文件
配置操作系统目录和数据库的Directory对象
--创建所用的系统目录
--创建oracle Directory对象
--目录对象说明
HDFS_BIN_PATH::hdfs_stream脚本所在目录.
HDFS_DATA_DIR:用来存放“位置文件”(location files)的目录。“位置文件”(location files) 是一个配置文件,里面包含HDFS的文件路径/文件名以及文件编码格式。
ODCH_LOG_DIR:Oracle用来存放外部表的log/bad等文件的目录.
创建oracle外部表:
连上之后然后创建表:
--示例文件内容
在附件中Tmpdata.csv
文件的准备过程:
Tmpdata.csv文件是我们通过all_objects生成的,SQL脚本为:select rownum,owner,object_name,created,data_object_id from all_objects
其中路径文件名等可根据实际情况修改。
启动hadoop
--先在Hadoop中建立一个目录,然后把empxt*.dat放入该目录中
--执行下面的命令
参数说明:
ExternalTable:使用hadoop ExternalTable命令工具
-D:指定相关参数
tableName:外部表名字
datasetPaths:源数据存放路径(HDFS)
datasetRegex:数据源格式
connection.url:oracle数据库连接串
connection.user:数据库用户名scott
命令执行后还要输入用户名密码:oracle
修改参数:
进入extdir目录:
可以看出上面有了到hadoop的指向信息。
查看外链到hadoop表信息:
在scott用户查看:
这些就是查询到的hadoop中的数据信息。