目录
一、环境
二、创建hive测试表
三、Es写入插件包
四、配置json
五、数据同步
1、执行命令
2、查看es结果
一、环境
DataX:windows安装
Es版本:7.9.0
二、创建hive测试表
CREATE TABLE teacher(
 name string,
 age int
)row format delimited fields terminated by ','
stored as orc;insert into teacher(name,age) values("zhangsn",22);
insert into teacher(name,age) values("lisi",30);
insert into teacher(name,age) values("wangwu",66);
insert into teacher(name,age) values("lihua",15);三、Es写入插件包
下载地址

将es写入插件包放进plugin\writer文件夹下。
四、配置json
hive_es.json:
{
    "job": {
        "setting": {
            "speed": {
                "channel": 1
            }
        },
        "content": [
            {
                "reader": {
                    "name": "hdfsreader",
                    "parameter": {
                        "path": "/user/hive/warehouse/teacher/*",
                        "defaultFS": "hdfs://192.168.xx.xx:8020",
                        "column": [
                               {"index": 0,   "type": "string" },
                               {"index": 1,   "type": "long" }
                        ],
                        "fileType": "orc",
                        "encoding": "UTF-8",
                        "fieldDelimiter": ","
                    }
                },
                "writer": {
                  "name": "elasticsearchwriter",
                  "parameter": {
                    "endpoint": "http://192.168.xx.xx:9200/",
                    "accessId": "123",
                    "accessKey": "123",
                    "cleanup": true,
                    "index":"teacher",
                    "type":"_doc",
                    "settings": {
                        "settings":{
                            "index":{
                                "mapping":{"total_fields":{"limit":2000}},
                                "number_of_replicas":2,
                                "number_of_shards":10
                            }
                        }
                    },
                    "batchSize": 1000,
                    "splitter": ",",
                    "column": [
                      {"name":"name","type":"string"},
                      {"name":"age","type":"long"}
                    ]
                  }
                }
            }
        ]
    }
}
注意:
1、将配置好的hive_es.json文件放到job文件夹下;
2、hive的读取配置是hdfsreader,在hive中使用show create table teacher命令可以查看teacher表在hdfs中的位置,得到这个位置可以配置hdfsreader的defaultFs和path;
3、hive表的int类型对应hdfsreader字段配置的long,否则数据同步失败;ES也是对应为long;
4、可以使用下面命令查找读取、写入的标准模板(前提是对应reader和writer文件夹中的插件文件夹中要有plugin_job_template.json文件模板):
D:\workSoftWare\datax\datax\bin>datax.py -r mysqlreader -w elasticsearchwriter五、数据同步
1、执行命令
D:\workSoftWare\datax\datax\bin>python  datax.py  ../job/hive_es.json2、查看es结果
这里使用kibana查询:
GET /teacher/_search{
  "took" : 3,
  "timed_out" : false,
  "_shards" : {
    "total" : 10,
    "successful" : 10,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 4,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "teacher",
        "_type" : "_doc",
        "_id" : "pnhlI4gBUNFFJN_x_IxO",
        "_score" : 1.0,
        "_source" : {
          "name" : "wangwu",
          "age" : 66
        }
      },
      {
        "_index" : "teacher",
        "_type" : "_doc",
        "_id" : "o3hlI4gBUNFFJN_x9Yw7",
        "_score" : 1.0,
        "_source" : {
          "name" : "zhangsn",
          "age" : 22
        }
      },
      {
        "_index" : "teacher",
        "_type" : "_doc",
        "_id" : "onhlI4gBUNFFJN_x74zU",
        "_score" : 1.0,
        "_source" : {
          "name" : "lisi",
          "age" : 30
        }
      },
      {
        "_index" : "teacher",
        "_type" : "_doc",
        "_id" : "pHhlI4gBUNFFJN_x-IyH",
        "_score" : 1.0,
        "_source" : {
          "name" : "lihua",
          "age" : 15
        }
      }
    ]
  }
}
同步成功!!!





![[OOD设计] - 电梯系统设计](https://img-blog.csdnimg.cn/696c3dab2a584c27872af573b4278a6f.png)













