使用datax工具,进行hdfs和关系型数据库的导入导出操作
Datax目前已经有了比较全面的插件
Datax是一个异构数据源离线同步工具,可以实现包括关系型数据库(mysql、oracle等)和HDFS、hive、hbase、ftp等各种异构数据源之间稳定高效的数据同步功能。 Datax目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入。 安装配置Datax工具 创建/opt/software 文件夹,并且解压datax的压缩包到此处 mkdir -p /opt/software tar -zxvf datax.tar.gz -C /opt/software/ 运行datax自检程序 cd /opt/software/datax/ find /opt/software/datax/ -type f -name "._*er" | xargs rm -rf bin/datax.py job/job.json 出现下面的界面就说明datax没有问题 查看官方json配置模板 python /opt/software/datax/bin/datax.py -r streamreader -w streamw 根据模板编写 json 文件的内容 运行这个 json 文件的 job /opt/software/datax/bin/datax.py demo01.json mysql 数据导入到 HDFS 中 先看看官方的json配置模板文件怎么写的 reader里面的结构关键字解释: name:reader名称 column:需要同步的列名集合,使用json数组描述自带信息,* 表示所有列 jdbcUrl:对数据库的jdbc连接信息,使用json数组描述,支持多个连接地址 table:需要同步的表,支持多个 querySql:可选项,自定义sql语句,配置它后,mysqlreader直接忽略table,column 和 where password:数据库用户名和对应的密码 username:数据库用户名 where:筛选条件 splitPK:可选项,数据分片字段,一般是主键,仅支持整数 writer里面的结构关键字解释: name:writer名称 column:写入数据的字段,其中name指定字段名,type指定类型 compress:hdfs文件压缩类型,默认不填写意味着没有压缩 defaultFS:hdfs文件系统namenode节点地址mssql数据库导出,格式:hdfs://ip:端口号 fieldDelimiter:字段分隔符 fileName:写入文件名 fileType:文件的类型,目前只支持用户配置为"text"或"orc" path:存储到hadoop hdfs 文件系统的路径信息 writeMode:hdfswriter写入前数据清理处理模式: (1)append:写入前不做任何处理,DataX hdfswriter直接使用filename写入,并保证文件名不冲突 (2)nonConflict:如果目录下有fileName前缀的文件,直接报错 下面是官方模板的内容: 我们根据这个模板对内容进行修改 在hive数据库上创建一个对应的表 运行mysql到hdfs的json脚本 /opt/software/datax/bin/datax.py mysql_to_hdfs.json 可以看到运行成功之后的提示信息 这个时候再查看hive数据库,就可以看到数据被成功导入进去了 HDFS数据导入到oracle 先来看看hdfs数据到oracle数据库的模板是怎么写的 python /opt/software/datax/bin/datax.py -r hdfsreader -w oraclewriter 尝试对这个模板文件的内容进行修改 在 oracle 数据库上创建对应的表格 通过datax运行这个json文件 python /opt/software/datax/bin/datax.py hdfs_to_oracle.json 导入成功后到oracle数据库查看结果 oracle表格就有相对应的内容了。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |