hive与es交互bug

一、hive数据写入es,hive查询报错(貌似不能查询)
Bad status for request TFetchResultsReq(fetchType=0, operationHandle=TOperationHandle(hasResultSet=True,modifiedRowCount=None, operationType=0, operationId=THandleIdentifier(secret='\x8d#e\x89\x0bhBg\xb9\xdb\xc7L\xe7lb\xb0', guid="X\xee.\x81\xd8'Hy\x983\xb7\x00\xcb\x85\x84\x91")), orientation=4, maxRows=100): TFetchResultsResp(status=TStatus(errorCode=None, errorMessage='java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.hadoop.util.Version', sqlState=None, infoMessages=['*java.lang.RuntimeException:java.lang.NoClassDefFoundError:Could not initialize class org.elasticsearch.hadoop.util.Version:19:18', 'org.apache.hive.service.cli.session.HiveSessionProxy:invoke:HiveSessionProxy.java:83', 'org.apache.hive.service.cli.session.HiveSessionProxy:access$000:HiveSessionProxy.java:36', 'org.apache.hive.service.cli.session.HiveSessionProxy$1:run:HiveSessionProxy.java:63', 'java.security.AccessController:doPrivileged:AccessController.java:-2', 'javax.security.auth.Subject:doAs:Subject.java:415','org.apache.hadoop.security.UserGroupInformation:doAs:UserGroupInformation.java:1783', 'org.apache.hive.service.cli.session.HiveSessionProxy:invoke:HiveSessionProxy.java:59', 'com.sun.proxy.$Proxy27:fetchResults::-1', 'org.apache.hive.service.cli.CLIService:fetchResults:CLIService.java:440', 'org.apache.hive.service.cli.thrift.ThriftCLIService:FetchResults:ThriftCLIService.java:686','org.apache.hive.service.cli.thrift.TCLIService$Processor$FetchResults:getResult:TCLIService.java:1553','org.apache.hive.service.cli.thrift.TCLIService$Processor$FetchResults:getResult:TCLIService.java:1538', 'org.apache.thrift.ProcessFunction:process:ProcessFunction.java:39', 'org.apache.thrift.TBaseProcessor:process:TBaseProcessor.java:39', 'org.apache.hive.service.auth.TSetIpAddressProcessor:process:TSetIpAddressProcessor.java:56','org.apache.thrift.server.TThreadPoolServer$WorkerProcess:run:TThreadPoolServer.java:286', 'java.util.concurrent.ThreadPoolExecutor:runWorker:ThreadPoolExecutor.java:1145', 'java.util.concurrent.ThreadPoolExecutor$Worker:run:ThreadPoolExecutor.java:615', 'java.lang.Thread:run:Thread.java:745', '*java.lang.NoClassDefFoundError:Could not initialize class org.elasticsearch.hadoop.util.Version:35:16', 'org.elasticsearch.hadoop.rest.RestService:findPartitions:RestService.java:225', 'org.elasticsearch.hadoop.mr.EsInputFormat:getSplits:EsInputFormat.java:457','org.elasticsearch.hadoop.hive.EsHiveInputFormat:getSplits:EsHiveInputFormat.java:111', 'org.elasticsearch.hadoop.hive.EsHiveInputFormat:getSplits:EsHiveInputFormat.java:50', 'org.apache.hadoop.hive.ql.exec.FetchOperator:getNextSplits:FetchOperator.java:363', 'org.apache.hadoop.hive.ql.exec.FetchOperator:getRecordReader:FetchOperator.java:295','org.apache.hadoop.hive.ql.exec.FetchOperator:getNextRow:FetchOperator.java:446','org.apache.hadoop.hive.ql.exec.FetchOperator:pushRow:FetchOperator.java:415', 'org.apache.hadoop.hive.ql.exec.FetchTask:fetch:FetchTask.java:138', 'org.apache.hadoop.hive.ql.Driver:getResults:Driver.java:1987','org.apache.hive.service.cli.operation.SQLOperation:getNextRowSet:SQLOperation.java:361','org.apache.hive.service.cli.operation.OperationManager:getOperationNextRowSet:OperationManager.java:277','org.apache.hive.service.cli.session.HiveSessionImpl:fetchResults:HiveSessionImpl.java:753', 'sun.reflect.GeneratedMethodAccessor12:invoke::-1','sun.reflect.DelegatingMethodAccessorImpl:invoke:DelegatingMethodAccessorImpl.java:43','java.lang.reflect.Method:invoke:Method.java:606','org.apache.hive.service.cli.session.HiveSessionProxy:invoke:HiveSessionProxy.java:78'], statusCode=3), results=None, hasMoreRows=None)
我以为是版本问题
应该是hive写入es之后不能进行查询,
映射es原本数据才可以查询
官网原话:As one can note, currently the reading and writing are treated separately but we're working on unifying the two and automatically translating HiveQL to Elasticsearch queries.

二、数据写入时报错

无法检测ES版本 - 通常情况下,如果网络/ Elasticsearch发生这种情况
集群不可访问,或者在没有正确设置“es.nodes.wan.only”的情况下定位WAN /云实例时
参数未设置??关于版本问题,我的 es-2.4.4 ,es-hadoop2.4.4.jar   hadoop 2.6.0(cdh版)。版本问题官网上,我只找到具体es哪个版本,es-hadoop哪个版本,却没有说明hadoop哪个版本对应es哪个版本,所以默认是没要求??
Error: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row
{"_col0":63818992,"_col1":"陶悦","_col2":"18716402326","_col3":"201710260063961961","_ccol29":"F","_col30":null8l}
at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:179) at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:453) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164) at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1783)at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"_col0":63818992,"_col1":"陶悦","_col2":"18716402326","_col3":"201710260063961961","_col6":"id"} at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:507)at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:170) ... 8 moreCaused by: org.apache.hadoop.hive.ql.metadata.HiveException: Unexpected exception: Unexpected exception:Unexpected exception: org.apache.hadoop.hive.ql.metadata.HiveException: org.elasticsearch.hadoop.EsHadoopIllegalArgumentException: Cannot detect ES version - typically this happens if the network/Elasticsearch cluster is not accessible or when targeting a WAN/Cloud instance without the proper setting 'es.nodes.wan.only' at org.apache.hadoop.hive.ql.exec.MapJoinOperator.processOp(MapJoinOperator.java:318)at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815)at org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:97) at org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.forward(MapOperator.java:157) at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:497) ... 9 more Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Unexpected exception: Unexpected exception: org.apache.hadoop.hive.ql.metadata.HiveException:org.elasticsearch.hadoop.EsHadoopIllegalArgumentException:Cannot detect ES version - typically this happens if the network/Elasticsearch cluster is not accessible or when targeting a WAN/Cloud instance without the proper setting 'es.nodes.wan.only' at org.apache.hadoop.hive.ql.exec.MapJoinOperator.processOp(MapJoinOperator.java:318) at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815) at org.apache.hadoop.hive.ql.exec.CommonJoinOperator.internalForward(CommonJoinOperator.java:638) at org.apache.hadoop.hive.ql.exec.CommonJoinOperator.genAllOneUniqueJoinObject(CommonJoinOperator.java:670)at org.apache.hadoop.hive.ql.exec.CommonJoinOperator.checkAndGenObject(CommonJoinOperator.java:748) at org.apache.hadoop.hive.ql.exec.MapJoinOperator.processOp(MapJoinOperator.java:306) ...13 moreCaused by: org.apache.hadoop.hive.ql.metadata.HiveException: Unexpected exception: org.apache.hadoop.hive.ql.metadata.HiveException: org.elasticsearch.hadoop.EsHadoopIllegalArgumentException: Cannot detect ES version - typically this happens if the network/Elasticsearch cluster is not accessible or when targeting a WAN/Cloud instance without the proper setting 'es.nodes.wan.only' at org.apache.hadoop.hive.ql.exec.MapJoinOperator.processOp(MapJoinOperator.java:318) at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815) at org.apache.hadoop.hive.ql.exec.CommonJoinOperator.internalForward(CommonJoinOperator.java:638) at org.apache.hadoop.hive.ql.exec.CommonJoinOperator.genAllOneUniqueJoinObject(CommonJoinOperator.java:670) at org.apache.hadoop.hive.ql.exec.CommonJoinOperator.checkAndGenObject(CommonJoinOperator.java:748)at org.apache.hadoop.hive.ql.exec.MapJoinOperator.processOp(MapJoinOperator.java:306) ... 18 moreCaused by: org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.hive.ql.metadata.HiveException:org.elasticsearch.hadoop.EsHadoopIllegalArgumentException:Cannot detect ES version - typically this happens if the network/Elasticsearchcluster is not accessible or when targeting a WAN/Cloud instance without the proper setting 'es.nodes.wan.only' at org.apache.hadoop.hive.ql.exec.FileSinkOperator.createBucketFiles(FileSinkOperator.java:525) at org.apache.hadoop.hive.ql.exec.FileSinkOperator.processOp(FileSinkOperator.java:623)at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815) at org.apache.hadoop.hive.ql.exec.SelectOperator.processOp(SelectOperator.java:84) at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815) at org.apache.hadoop.hive.ql.exec.CommonJoinOperator.internalForward(CommonJoinOperator.java:638) at org.apache.hadoop.hive.ql.exec.CommonJoinOperator.genAllOneUniqueJoinObject(CommonJoinOperator.java:670) at org.apache.hadoop.hive.ql.exec.CommonJoinOperator.checkAndGenObject(CommonJoinOperator.java:748) at org.apache.hadoop.hive.ql.exec.MapJoinOperator.processOp(MapJoinOperator.java:306) ... 23 more Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: org.elasticsearch.hadoop.EsHadoopIllegalArgumentException:Cannot detect ES version - typically this happens if the network/Elasticsearch cluster is not accessible or when targeting a WAN/Cloud instance without the proper setting 'es.nodes.wan.only'at org.apache.hadoop.hive.ql.io.HiveFileFormatUtils.getHiveRecordWriter(HiveFileFormatUtils.java:249) at org.apache.hadoop.hive.ql.exec.FileSinkOperator.createBucketForFileIdx(FileSinkOperator.java:570) at org.apache.hadoop.hive.ql.exec.FileSinkOperator.createBucketFiles(FileSinkOperator.java:514) ... 31 more 

建表时参数未指定

'es.nodes' = '192.68.20.10:9201,12.168.00.110:02,192.18.200.12:923',
'es.index.auto.create' = 'true',--自动创建es索引
'es.resource' = 'es_bigtable/bigtable_list', --索引名称及类型
'es.nodes.wan.only'='true',--连接器是否针对广域网上的云/受限环境(例如Amazon Web Services)中的Elasticsearch实例使用。在此模式下,连接器将禁用发现,并且只es.nodes在所有操作(包括读取和写入操作)期间通过声明进行连接。请注意,在这种模式下,性能受到很大 影响。
'es.mapping.names' =‘’--字段映射
参数参考官网:https://www.elastic.co/guide/en/elasticsearch/hadoop/current/configuration.html
三、hadoop与es写入速度不一致??
org.apache.hadoop.hive.ql.exec.MapJoinOperator.processOp(MapJoinOperator.java:318)
at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815)
at org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:97)
at org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.forward(MapOperator.java:157)
at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:497) ... 9 more
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Unexpected exception:
Unexpected exception: Could not write all entries [94/1047616] (maybe ES was overloaded?). Bailing out...
at org.apache.hadoop.hive.ql.exec.MapJoinOperator.processOp(MapJoinOperator.java:318)
at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815)
at org.apache.hadoop.hive.ql.exec.CommonJoinOperator.internalForward(CommonJoinOperator.java:638)
at org.apache.hadoop.hive.ql.exec.CommonJoinOperator.genAllOneUniqueJoinObject(CommonJoinOperator.java:670)
at org.apache.hadoop.hive.ql.exec.CommonJoinOperator.checkAndGenObject(CommonJoinOperator.java:748)
at org.apache.hadoop.hive.ql.exec.MapJoinOperator.processOp(MapJoinOperator.java:306) ... 13 more 
源码:
    public void flush() {BulkResponse bulk = tryFlush();if (!bulk.getLeftovers().isEmpty()) {String header = String.format("Could not write all entries [%s/%s] (Maybe ES was overloaded?). Error sample (first [%s] error messages):\n", bulk.getLeftovers().cardinality(), bulk.getTotalWrites(), bulk.getErrorExamples().size());StringBuilder message = new StringBuilder(header);for (String errors : bulk.getErrorExamples()) {message.append("\t").append(errors).append("\n");}message.append("Bailing out...");throw new EsHadoopException(message.toString());}}

If you configure your hive query to use a combined input format to lower the number of splits on the job then that would give ES larger and fewer batches of records, and fill up its task queue less frequently.

set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

这个链接更好的回复了这个问题:https://discuss.elastic.co/t/pushback-to-hadoop-from-es-on-bulk-load/1535/5

四、索引只能小写
 Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: org.elasticsearch.hadoop.rest.EsHadoopInvalidRequest: Found unrecoverable error [192.168.200.100:9201] returned Bad Request(400) - Invalid index name [Lots_scenic], must be lowercase; 

hive与es交互bug相关推荐

  1. hive读取es数据

    转自:https://www.iteblog.com/archives/1857.html 本文将介绍如何通过Hive来读取ElasticSearch中的数据,然后我们可以像操作其他正常Hive表一样 ...

  2. Ambari2.7.0 + HDP3.1.4.0安装,hdfs数据备份和恢复,hive数据备份和恢复,hbase数据备份和恢复,常见错误总结,Ambari卸载,hadoop-ha,hive和ES整合

    目录 1 Ambari + HDP离线安装 1.1 介绍 1.1.1 Ambari介绍 1.1.2 HDP 1.1.3 HDP-UTILS 1.2 登录ambari官网地址 1.3 Ambari和HD ...

  3. hadoop+hive+flink+hbase交互的版本兼容性

    与Hive兼容的Hadoop版本[3] Flink支持的Hive[1] 1.x.y, 2.x.y 1.0.0 1.0.1 1.x.y, 2.x.y 1.1.0 1.1.1 1.x.y, 2.x.y 1 ...

  4. 金融客户标签画像与客群查询使用HIVE+Hbase+Es实践(一)

    1.客户标签查询设计 ES实现HBase二级索引的方法与流程 ES存储检索信息查询 该设计是金融行业比较常见的带机构设计模式 rowkey value1 value2 value3 value4 RE ...

  5. swift - xcode10 - 点击事件交互BUG - (手势和button的addTarget方法)

    1. 现象 button 点击闪退:没有任何原因 ,在听云检测上,显示 BUG2: 手势 没有任何作用,哪怕设置  isUserInteractionEnabled 和isEnabled 为true ...

  6. hive join 时的bug,使用left join 可以规避

    问题背景: 使用 join on 1=1 拼接查询结果时,返回值是什么也没有; 原因是 join 左右的两张表的分区有空的. 查询历史数据时候容易遭遇. 使用 join on (1=1)时如果后面的表 ...

  7. ES读写原理详解和hive推送ES案例

    目录 一.ES使用场景 1.1 存储数据(基础) 1.2 搜索(核心能力) 1.3 数据分析和可视化(核心能力) 二.ES的原理 2.1 ES如何实现分布式? 2.2 ES读写数据的原理 2.2.1 ...

  8. 扩展:hive插入数据到ES

    Hive建表 加入hive和es的相关jar包(此例以es5.5.2为例,jar去官网下载) add jar file:///data/xj6500_data/lib/elasticsearch-ha ...

  9. hive操作总结DML

    Loading files into tables(将数据加载到表中) CREATE TABLE employee LIKE sensor.employee; LOAD DATA LOCAL INPA ...

  10. 【若泽大数据实战第十六天】Hive的安装部署 + 课程一个月总结

    前言: Hadoop的课程已经告一段落,基本上在零基础课程里不会再出现了,接下来的课程由若总来上,第一讲Have. 复习前一个月的课程内容: 1.Linux Linux: 文件(*****) 权限(* ...

最新文章

  1. 我是如何把微服务的这个模式落地的:一个服务一个数据库模式(中)
  2. BZOJ-1878: [SDOI2009]HH的项链(莫队算法)
  3. 【技术贴】解决 myeclipse打不开报错an error has occurred, see .
  4. JavaScript实现combine With Repetitions结合重复算法(附完整源码)
  5. 10个Linux 系统性能监控命令行工具
  6. 平面设计师和ui设计师_游戏设计师的平面设计
  7. 广义典型相关分析_重复测量数据分析及结果详解(之二)——广义估计方程
  8. 耶鲁大学计算机科学录取,耶鲁大学计算机科学研究生Offer及录取要求
  9. 聚类方法学习(三)亲和力传播算法AP
  10. 如何从Web浏览器远程监视Linux服务器和桌面
  11. VMware SDS 之一:什么是VSAN??
  12. linux ubuntu下网络调试助手(GUI)工具
  13. 掘金新石油:金融知识图谱数据建模实战分享
  14. TEM波以及TEM TE TM模的区别
  15. Spring Cloud Gateway Session
  16. Flatty Shadow图标自动产生器——在线生成各种扁平化 ICON
  17. 慧居科技在港交所上市状态“失效”,双良科技为控股股东
  18. openEuler Summit | 江大勇:凝聚创新力量 逐梦数字时代星辰大海
  19. vue3+heightchart实现3D饼图,echarts3D饼图,3D饼图引导线实现
  20. 简易计算器(C语言实现)

热门文章

  1. 蓝牙LMP剖析(二)
  2. 【Atheros】minstrel速率调整算法源码走读
  3. flutter中页面跳转之Navigator
  4. ahocorasick库的简单使用
  5. 2016微信数据报告 大数据展示微信生活
  6. 软件工程(C编码实践篇)学习总结
  7. getAddrInfo与DNS域名解析与ping
  8. Linux 修改hosts文件
  9. 2017中国开发者调查报告-云栖社区
  10. mac下使用自带的bash或Cyberduck软件链接服务器