目录
背景:
在网上查了很多,都是关于MongoDB导入至Hive仓库的,很少有从Hive导出至MongDB的文章。最近因为兄弟部门在做【用户画像】,使用的存储介质是MongoDB(便于字段扩展),现在要用到数仓里面某些表的数据,这样问题就出现了:“怎么将Hive表的数据导出至MongoDB?”。
因为MySQL导入到HDFS用的是Sqoop,网上查了Sqoop对关系型的数据库比较友好,对MongoDB这样的NoSQL不是太支持,所以想到了用【阿里的DataX】。经过调研,dataX确实可以解决此场景。
需要解决的问题:
【使用DataX将Hive表数据导出至MongoDB】
安装DataX
1)前置条件
- Linux
- JDK(1.8以上,推荐1.8)
- Python(推荐Python2.6.X)
2)下载地址
http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
3)上传jar包
cd /opt/software
--上传jar包
4)解压
tar -zxvf datax.tar.gz -C /opt/module/
5)自动检测脚本
cd datax/bin/
python datax.py /opt/module/datax/job/job.json

说明安装
配置环境变量
#DATAX_HOME
export DATAX_HOME=/opt/module/datax
export PATH=$PATH:$DATAX_HOME/bin
使用
1. 读取hdfs数据写入mongodb
1)查看官方模板
python bin/datax.py -r hdfsreader -w mongodbwriter
DataX (DATAX-OPENSOURCE-3.0), From Alibaba !
Copyright (C) 2010-2017, Alibaba Group. All Rights Reserved.
Please refer to the hdfsreader document:
https://github.com/alibaba/DataX/blob/master/hdfsreader/doc/hdfsreader.md
Please refer to the mongodbwriter document:
https://github.com/alibaba/DataX/blob/master/mongodbwriter/doc/mongodbwriter.md
Please save the following configuration as a json file and use
python {DATAX_HOME}/bin/datax.py {JSON_FILE_NAME}.json
to run the job.
{
"job": {
"content": [
{
"reader": {
"name": "hdfsreader",
"parameter": {
"column": [],
"defaultFS": "",
"encoding": "UTF-8",
"fieldDelimiter": ",",
"fileType": "orc",
"path": ""
}
},
"writer": {
"name": "mongodbwriter",
"parameter": {

本文详细记录了使用阿里云DataX将Hive表数据导出到MongoDB的过程,包括DataX的安装、配置、环境变量设置、配置文件编写及错误排查。通过修改配置文件中`writeMode`参数解决了数据导入时的错误问题,成功实现了数据迁移。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



