第10周 hadoop与关系型数据库交换数据

Sqoop

SQL-to-HDFS工具
利用JDBC连接关系型数据库
Sqoop的获取

Hadoop-0.20.2下使用Sqoop
SQOOP不支持此版本,可使用CDH3。也可以通过拷贝相应的包到sqoop-1.2.0-CDH3B4/lib下,依然可以使用。
CDH3和SQOOP 1.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中。

配置
修改SQOOP的文件configure-sqoop,注释掉hbase和zookeeper检查(除非你准备使用HABASE等HADOOP上的组件) 
#if [ ! -d "${HBASE_HOME}" ]; then
# echo “Error: $HBASE_HOME does not exist!”
# echo ‘Please set $HBASE_HOME to the root of your HBase installation.’
# exit 1
#fi
#if [ ! -d "${ZOOKEEPER_HOME}" ]; then
# echo “Error: $ZOOKEEPER_HOME does not exist!”
# echo ‘Please set $ZOOKEEPER_HOME to the root of your ZooKeeper installation.’
# exit 1
#fi
3、启动HADOOP,配置好相关环境变量(例如$HADOOP_HOME),就可以使用SQOOP了

从mysql导入数据到Hbase的命令

sqoop import --connect jdbc:mysql://mysqlserver_IP/databaseName --table datatable --hbase-create-table --hbase-table hbase_tablename --column-family col_fam_name --hbase-row-key key_col_name
其中 ,databaseName 和datatable 是mysql的数据库和表名,hbase_tablename是要导成hbase的表名,key_col_name可以指定datatable中哪一列作 为hbase新表的rowkey,col_fam_name是除rowkey之外的所有列的列族名

从Oracle导入数据

sqoop从oracle导入, 需要有ojdbc6.jar,放在$SQOOP_HOME/lib里,不用添加到classpath里,因为sqoop会自己遍历lib文件夹并添加里面 的所有jar包 --connect与mysql的不一样,如下(shell脚本中的主要部分)
#Oracle的连接字符串,其中包含了Oracle的地址,SID,和端口 CONNECTURL=jdbc:oracle:thin:@172.7.10.16:1521:orcl #使用的用户名 ORACLENAME=scott #使用的密码 ORACLEPASSWORD=wang123456 #需要从Oracle中导入的表名 oralceTableName=test #需要从Oracle中导入的表中的字段名 columns=ID,STATE #将Oracle中的数据导入到HDFS后的存放路径 #hdfsPath=/tmp/

从Oracle导入数据
#执行导入逻辑。将Oracle中的数据导入到HDFS中 sqoop import --append --connect $CONNECTURL --username $ORACLENAME --password $ORACLEPASSWORD --m 1 --table $oralceTableName --columns $columns --hbase-create-table --hbase-table or1 --hbase-row-key STATE --column-family or1

Oracle Big Data Connectors

Oracle HDFS直接连接器(ODCH)实验
实验 1: 直接访问单个 HDFS 文件
步骤1: 配置操作系统的目录和数据库的Directory对象
步骤2: 创建外部表
步骤3: 在Hadoop中放入示例文件
步骤4: 生成“位置文件”
步骤5: 检查结果
步骤6: 改动HDFS文件,检查结果.
Oracle的HDFS直接连接器允许从数据库中直接访问HDFS的数据文件。 支持的数据文件格式取决于ORACLE_LOADER的驱动程序。

Oracle Hadoop装载程序
实验: 装载Hadoop文件到数据库
步骤1: 创建目标表
步骤2: 在Hadoop中放入示例文件
步骤3: 运行Oracle Hadoop装载程序
步骤4: 验证结果
因为OLH需要从Hadoop文件系统中读取数据,所以我们先要在Hadoop中放入一个的数据文件。然后加载到oracle数据库中。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值