通过Hive将数据写入到ElasticSearch

Similar documents
使用Hive读取ElasticSearch中的数据

Apache CarbonData集群模式使用指南

如何在 Apache Hive 中解析 Json 数组

使用Cassandra和Spark 2.0实现Rest API服务

使用MapReduce读取XML文件

Hive几种数据导入方式

使用Spark SQL读取Hive上的数据

Guava学习之Resources

Hive:用Java代码通过JDBC连接Hiveserver

韶关:神奇丹霞

Flume-ng与Mysql整合开发

Hadoop&Spark解决二次排序问题(Hadoop篇)

Spark读取Hbase中的数据

在Spring中使用Kafka:Producer篇

Guava学习之CharSequenceReader

三种方法实现Hadoop(MapReduce)全局排序(1)

SparkR(R on Spark)编程指南

Kafka客户端是如何找到 leader 分区的

Hadoop 2.2.0安装和配置lzo

使用Apache Beam读写HDFS上的文件

Hadoop元数据合并异常及解决方法

哼, 你 們 不 回 答 又 怎 麼 樣? 不 管 是 多 大 來 頭, 現 在 都 被 血 魔 吞 噬 無 蹤 了 你 們 幾 個 真 是 太 過 分, 我 不 犯 你 們, 你 們 卻 一 天 到 晚 來 挑 釁 我 教 尊 冷 笑 著 說 道 嗚, 大 人 土 地 大 姐 跪 下 來, 流 下

伊春:醉人林都

江门:中国第一侨乡

3.1 num = 3 ch = 'C' 2

CC213

Flink快速上手(QuickStart)

关林:武圣陵寝

泰山:五岳独尊

使用Apache Spark将数据写入ElasticSearch

国内26省市新能源汽车推广规划已出台

Apache Spark 2.4 新增内置函数和高阶函数使用介绍

北戴河:海阔天空

Flink on YARN部署快速入门指南


西岭雪山滑雪场

在Fedora上部署Hadoop2.2.0伪分布式平台

( Version 0.4 ) 1

untitled

六种使用Linux命令发送带附件的邮件

CHAPTER 1

C/C++ - 函数

「人名權威檔」資料庫欄位建置表

untitled

Oracle高级复制冲突解决机制的研究

C/C++ - 文件IO

基于ECO的UML模型驱动的数据库应用开发1.doc

RUN_PC連載_12_.doc

Ubuntu和CentOS如何配置SSH使得无密码登陆

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

将 MySQL 的全量数据导入到 Apache Solr 中

关于规范区委、区委办公室发文

Microsoft Word - ??山

Microsoft Word - 助理人員教育訓練-會計室.docx

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

PowerPoint 演示文稿

是 喔, 就 是 那 個 在 BBS 醫 療 版 跟 你 嗆 聲, 自 稱 有 三 十 多 年 推 拿 經 驗 的 大 叔 嗎? 一 個 看 來 頗 為 清 秀 的 女 生 問 道, 她 語 氣 中 略 感 訝 異 是 啊, 什 麼 推 拿 按 摩 有 多 好, 還 要 人 生 病 盡 量 不 要

教育扩张能改善收入分配差距吗?——来自CHNS2006年数据的证据

山水文化,市井人家——以湖州邱城小镇的概念性规划为例

一步一步教你搞网站同步镜像!|动易Cms

Microsoft Word - 01.DOC

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘


今天 年春季号 总 92 期

*

( ) / / / / / / /

(Microsoft Word - 8\244T\244\362\277\337\272]\244W\265L\246W.doc)

Microsoft Word - 專家本色 doc


但, 你 应 该 听 过 我 们 走 在 大 路 上 这 首 歌, 或 许 还 知 道 革 命 人 永 远 是 年 轻 那 支 歌 ; 并 且, 几 乎 可 以 肯 定, 你 在 戴 红 领 巾 的 那 阵, 必 然 唱 过 牛 儿 还 在 山 坡 吃 草, 放 牛 的 却 不 知 道 哪 儿 去

2 临 终 助 念 答 问 序 临 终 关 怀, 由 佛 门 净 宗 古 来 祖 师 大 德 提 倡 助 念 往 生, 现 今 已 渐 为 社 会 大 众 所 重 视, 在 台 湾, 台 大 长 庚 等 各 大 医 院, 也 都 设 有 助 念 室 ; 大 陆 上 许 多 道 场, 也 有 专 为

校园之星

Microsoft Word - 澎湖田調報告-宏達組9804.doc

<4D F736F F F696E74202D FA8BEA861B8EAB7BDBEE3A658BB50C0B3A5CE28B773A6CBA5AB29>

之 原 則 及 國 防 部 訂 頒 國 軍 列 管 國 有 不 動 產 提 供 非 軍 方 單 位 使 用 處 理 原 則 規 定 不 符, 仍 應 以 出 租 方 式 辦 理 惟 可 就 偏 遠 地 區 提 供 官 兵 金 融 水 電 服 務 使 用 部 分, 研 議 降 低 租 金 標 準, 報

chineseall

釋禪波羅蜜次第法門

证券代码: 证券简称:锦江股份 公告编号:【】

1700 装 卸 搬 运 7645 装 卸 搬 运 服 务 2100 建 筑 7410 工 程 服 务 11% 装 卸 搬 运 服 务, 是 指 使 用 装 卸 搬 运 工 具 或 者 人 力 畜 力 将 货 物 在 运 输 工 具 之 间 装 卸 现 场 之 间 或 者 运 输 工 具 与 装 卸

前 言 教 育 无 小 事, 它 成 就 着 学 生 的 未 来 作 为 教 师, 他 们 无 时 无 刻 不 在 关 注 着 学 生 的 成 长 学 生 的 未 来 学 生 就 像 一 朵 含 苞 待 放 的 花 朵, 需 要 老 师 们 的 细 心 呵 护, 给 学 生 需 要 的 东 西, 而

《盗墓笔记》 南派三叔/著

平 凡 足 迹 李 本 川 作 者 为 中 国 科 学 院 海 洋 研 究 所 研 究 员,1935 年 生, 山 东 荣 成 人 我 今 年 63 岁 了 大 前 年 丈 夫 和 儿 子 在 一 个 月 内 先 后 离 开 了 人 世, 女 儿 又 已 出 嫁, 现 在 是 孑 然 一 身 我 是

<CFFBB7D1D5DFD0D0CEAAD1A72E6D7073>

独立学院建设与发展


HBase 中加盐(Salting)之后的表如何读取:协处理器篇

行 业 市 场 研 究 属 于 企 业 战 略 研 究 范 畴, 作 为 当 前 应 用 最 为 广 泛 的 咨 询 服 务, 其 研 究 报 告 形 式 呈 现, 通 常 包 含 以 下 内 容 : 一 份 专 业 的 行 业 研 究 报 告, 注 重 指 导 企 业 或 投 资 者 了 解 该

行 业 市 场 研 究 属 于 企 业 战 略 研 究 范 畴, 作 为 当 前 应 用 最 为 广 泛 的 咨 询 服 务, 其 研 究 报 告 形 式 呈 现, 通 常 包 含 以 下 内 容 : 一 份 专 业 的 行 业 研 究 报 告, 注 重 指 导 企 业 或 投 资 者 了 解 该

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

01

行 业 市 场 研 究 属 于 企 业 战 略 研 究 范 畴, 作 为 当 前 应 用 最 为 广 泛 的 咨 询 服 务, 其 研 究 报 告 形 式 呈 现, 通 常 包 含 以 下 内 容 : 一 份 专 业 的 行 业 研 究 报 告, 注 重 指 导 企 业 或 投 资 者 了 解 该

三种方法实现Hadoop(MapReduce)全局排序(2)

untitled

CDWA Mapping. 22 Dublin Core Mapping

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

Microsoft Word - 第3章.doc

行 业 市 场 研 究 属 于 企 业 战 略 研 究 范 畴, 作 为 当 前 应 用 最 为 广 泛 的 咨 询 服 务, 其 研 究 报 告 形 式 呈 现, 通 常 包 含 以 下 内 容 : 一 份 专 业 的 行 业 研 究 报 告, 注 重 指 导 企 业 或 投 资 者 了 解 该

行 业 市 场 研 究 属 于 企 业 战 略 研 究 范 畴, 作 为 当 前 应 用 最 为 广 泛 的 咨 询 服 务, 其 研 究 报 告 形 式 呈 现, 通 常 包 含 以 下 内 容 : 一 份 专 业 的 行 业 研 究 报 告, 注 重 指 导 企 业 或 投 资 者 了 解 该

C/C++ 语言 - 循环

Transcription:

我在 使用 Hive 读取 ElasticSearch 中的数据 文章中介绍了如何使用 Hive 读取 ElasticSearch 中的数据, 本文将接着上文继续介绍如何使用 Hive 将数据写入到 ElasticSearch 中 在使用前同样需要加入 elasticsearch-hadoop-2.3.4.jar 依赖, 具体请参见前文介绍 我们先在 Hive 里面建个名为 iteblog 的表, 如下 : id bigint, name STRING) TBLPROPERTIES('es.resource' = 'iteblog/iteblog', 'es.nodes'='www.iteblog.com','es.port'='9003') ; 建完表之后我们可以看下 Hive 是怎么存储这样的表格 : hive> show create table iteblog; OK CREATE EXTERNAL TABLE `iteblog`( `id` bigint COMMENT 'from deserializer', `name` COMMENT 'from deserializer') 1 / 6

ROW FORMAT SERDE 'org.elasticsearch.hadoop.hive.esserde' STORED BY 'org.elasticsearch.hadoop.hive.esstoragehandler' WITH SERDEPROPERTIES ( 'serialization.format'='1') LOCATION 'hdfs://user/iteblog/hive/warehouse/iteblog.db/iteblog' TBLPROPERTIES ( 'COLUMN_STATS_ACCURATE'='false', 'es.nodes'='www.iteblog.com', 'es.port'='9003', 'es.resource'='iteblog/iteblog', 'numfiles'='0', 'numrows'='-1', 'rawdatasize'='-1', 'totalsize'='0', 'transient_lastddltime'='1478248148') Time taken: 0.148 seconds, Fetched: 21 row(s) 我们可以看到 Hive 对里面的字段注释是 from deserializer, 如果是正常的 Hive 表将没有这些信息 ; 而且我们可以发现 ROW FORMAT SERDE 已经变成了 org.elasticsearch.hadoop.hive.esserde, 在 TBLPROPERTIES 里面记录了一些链接 Ela sticsearch 需要的参数配置 好了, 现在我们在这个表里面导一些数据 : hive> insert into table iteblog select * from test limit 100; 上面的 SQL 运行完之后我们可以看到表所在的 HDFS 目录是没有数据的 : hive > dfs -ls /user/iteblog/hive/warehouse/iteblog.db/iteblog; hive > 我们到 ElasticSearch 里面可以发现已经多了一个 index 和 type, 就是我们在建表时指定的 es.resource, 而且 ElasticSearch 为我们生成 type 的 mapping 如下 : { "iteblog": { 2 / 6

"properties": { "name": {, "id": { "type": "long" 这就 Hive 表里面的字段, 类型都对应了 但是我们发现 ElasticSearch 中的 iteblog/iteblog 每行数据对应的 id 都是随机生成的, 不过我们可以在建 Hive 表的时候加上 es.mapping.id 参数来指定我们自定义的 id 如下 : id bigint, name STRING) TBLPROPERTIES('es.resource' = 'iteblog/iteblog', 'es.nodes'='www.iteblog.com','es.port'='9003',' es.mapping.id' = 'id'); 这样 ElasticSearch 中的 iteblog/iteblog 对应的 id 将会和 Hive 中的 id 字段一一对应 当然其他的字段也可以设置相应的 mapping, 可以通过 es.mapping.names 参数实现 如何存 Json 数据 如果我们 Hive 里面的字段是 Json 数据, 我们希望在 ElasticSearch 中解析这个 json 数据, 然后在 Elas ticsearch 中将解析的数据存起来, 比如我们的 Json 数据格式为 :{"id":"123","name":"iteblog", 我们可以在建 Hive 表的时候加上 es.input.json 参数, 这样 ElasticSearch 会解析这个 json 数据, 如下 : json STRING) TBLPROPERTIES('es.resource' = 'iteblog/iteblog', 'es.nodes'='www.iteblog.com','es.port'='9003',' es.input.json' = 'yes'); 3 / 6

这样 ElasticSearch 为我们生成的 mapping 为 : { "iteblog": { "properties": { "name": {, "id": { 而不是 { "iteblog": { "properties": { "json": { 如果 Hive 中的数据是 Json 字段, 但是在写 ElasticSearch 的时候使用了 es.input.json 配置, 这时候在 Hive 里面查数会发现数据都是 : hive > select * from iteblog limit 10; OK 4 / 6

Time taken: 0.057 seconds, Fetched: 10 row(s) 数据为 json 的时候我们同样可以指定 ElasticSearch 的 id 生成的规则, 如下 : json STRING) TBLPROPERTIES('es.resource' = 'iteblog/iteblog', 'es.nodes'='www.iteblog.com','es.port'='9003',' es.input.json' = 'yes','es.mapping.id' = 'id'); 这样就会把 Json 里面的 id 当作 ElasticSearch 中的 id 动态处理 type 有时候我们可能希望根据数据的类别不一样来将数据存放到 ElasticSearch 中不同的 type 中, 我们可以通过如下设置实现 id bigint, name STRING, type STRING) TBLPROPERTIES('es.resource' = 'iteblog/{type', 'es.nodes'='www.iteblog.com','es.port'='9003'); 这样 ElasticSearch 会自动获取 Hive 中的 type 字段的值, 然后将不同 type 的数据存放到 ElasticSearc h 中不同的 type 中 如果 Hive 中的字段是 json 格式, 比如 {"id":"123","name":"iteblog","type":"a", 我们同样可以通过下面设置实现 : json STRING) TBLPROPERTIES('es.resource' = 'iteblog/{type', 'es.nodes'='www.iteblog.com','es.port'='9003',' es.input.json' = 'yes'); 5 / 6

Powered by TCPDF (www.tcpdf.org) 这样 ElasticSearch 会自动为我们解析 json 中的 type 字段的值, 然后决定将这条记录放到 ElasticSear ch 中对应的 type 中 Hive 类型和 ElasticSearch 类型映射 Hive 类型 Elasticsearch 类型 void null boolean boolean tinyint byte smallint short int int bigint long double double float float binary binary timestamp date struct map map map array array union 目前不支持 decimal date date varchar char 本博客文章除特别声明, 全部都是原创! 转载本文请加上 : 转载自过往记忆 (https://www.iteblog.com/) 本文链接 : () 6 / 6