欢迎来到魔据教育大数据学院,专注大数据工程师培养!
当前位置:首页 > 学习资料 > 讲师博文 > Hive和ElasticSearch整合文档

Hive和ElasticSearch整合文档

时间:2017-08-16 09:06:57作者:孙孝凡

 

  • 下载elasticsearch-hadoop-vetsion.jar包,上传到hive的安装目录的lib目录下,注意
  • 版本一定要和相应的elasticsearch的版本一致
  • 切换到hive用户,执行$hive --auxpath=/path/lib/elasticsearch-hadoop.jar 或者修改hive-site.xml配置文件,如下:
<property>
          <name>hive.aux.jars.path</name>
          <value>/path/elasticsearch-hadoop.jar</value>
          <description>A comma separated list (with no spaces) of the jar files</description>
</property> 

  • 进入hive脚本界面中建表

1.首先你得告诉es这个表是ElasticSearch支持的:

建立view表是
CREATEEXTERNALTABLEuser(idBIGINT, nameSTRING) STOREDBY'org.elasticsearch.hadoop.hive.EsStorageHandler' TBLPROPERTIES('es.resource' = 'radio/artists','es.index.auto.create' = 'true');
如果无法插入数据请执行下面命令指定es端口和ip
CREATEEXTERNALTABLEuser(idBIGINT, nameSTRING) STOREDBY'org.elasticsearch.hadoop.hive.EsStorageHandler' TBLPROPERTIES('es.resource' = 'radio/artists','es.index.auto.create' = 'true','es.nodes'='192.168.1.88','es.port'='9200');
es.resourceradiott/artiststt分别是索引名和索引的类型,这个是在es访问数据时候使用的。

2.然后建立源数据表:

CREATETABLE user_source (idINT, nameSTRING) ROWFORMATDELIMITEDFIELDSTERMINATEDBY',';
将数据导入到user_source表中:
LOADDATALOCAL INPATH '/home/steven/data.txt' OVERWRITE INTOTABLE user_source;
  • 建立好表之后推出hive脚本,然后上传elasticsearch-hadoop.jarhdfs的一个目录下
hadoop fs -put /root/hive/lib/elasticsearch-hadoop-2.0.2.jar /tmp/elasticsearch-hadoop-2.0.2.jar加载到hdfs
  • 然后重新以以下命令进入hive
hive -hiveconf hive.aux.jars.path=/tmp/elasticsearch-hadoop-2.0.2.jar
  • 然后进入到相应的数据库下,向索引表中(view)中插入数据
INSERT OVERWRITE TABLEuserSELECT s.id, s.nameFROM user_source s;

到此整合完成


更多大数据相关资讯敬请关注魔据教育,为您分享最及时的大数据资讯。
学习大数据敬请关注魔据教育微信二维码。
魔据教育微信二维码

【版权与免责声明】如发现内容存在版权问题,烦请提供相关信息发邮件至kefu@mojuedu.com,我们将及时沟通与处理。本站内容除非来源注明魔据教育,否则均为网友转载,涉及言论、版权与本站无关。

全国咨询热线:18501996998,值班手机:18501996998(7*24小时)

在线咨询:张老师QQ 320169340

企业合作服务专线:010-82340234-821, 院校合作洽谈专线:010-82340234

Copyright 2001-2019 魔据教育 - 北京华育兴业科技有限公司 版权所有,京ICP备17018991号-2

免费在线咨询立即咨询

免费索取技术资料立即索取

大数据技术交流QQ:226594285

电话咨询010-82340234