1. 程式人生 > >Hive資料倉庫--HiveUDF異常解析與其中的坑

Hive資料倉庫--HiveUDF異常解析與其中的坑

使用Hive進行分析的過程中遇到了這個異常的資訊,一開始看到比較驚訝,因為感覺程式碼並沒有什麼不太合理的地方,不過還是丟擲了一堆的異常資訊,我把日誌資訊讀了一下,發現導致最終異常的是FastJson在封裝的時候找不到無參建構函式,雖然最終原因不是Hive引起的,但是上面的一堆異常也的確是唬人的。

異常資訊

Error: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"sourceid":"4649475029B8","sourcelabelw":"[{\"Name\":\"XX\",\"Weight\":6},{\"Name\":\"XX\",\"Weight\":6}]"}
        at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:195)
        at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:430)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:342)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"sourceid":"4649475029B8","sourcelw":"[{\"Name\":\"XX\",\"Weight\":6},{\"Name\":\"XXX\",\"Weight\":6}]"}
        at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:550)
        at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:177)
        ... 8 more
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Unable to execute method public java.lang.String cn.siti.main.MergeUDF.evaluate(java.lang.String,java.lang.String)  on object 
[email protected]
of class cn.siti.main.MergeUDF with arguments {[{"Name":"XXX","Weight":6},{"Name":"XXX","Weight":6}]:java.lang.String, XXXX,7:java.lang.String} of size 2 at org.apache.hadoop.hive.ql.exec.FunctionRegistry.invoke(FunctionRegistry.java:1243) at org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge.evaluate(GenericUDFBridge.java:182) at org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator._evaluate(ExprNodeGenericFuncEvaluator.java:166) at org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator.evaluate(ExprNodeEvaluator.java:77) at org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator.evaluate(ExprNodeEvaluator.java:65) at org.apache.hadoop.hive.ql.exec.SelectOperator.processOp(SelectOperator.java:79) at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:793) 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:754) at org.apache.hadoop.hive.ql.exec.MapJoinOperator.processOp(MapJoinOperator.java:242) at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:793) at org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:92) at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:793) at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:540) ... 9 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.hadoop.hive.ql.exec.FunctionRegistry.invoke(FunctionRegistry.java:1219) ... 23 more Caused by: com.alibaba.fastjson.JSONException: default constructor not found. class cn.siti.domain.TagInfo at com.alibaba.fastjson.util.JavaBeanInfo.build(JavaBeanInfo.java:212) at com.alibaba.fastjson.parser.ParserConfig.createJavaBeanDeserializer(ParserConfig.java:486) at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:433) at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:288) at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:651) at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:630) at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:625) at com.alibaba.fastjson.JSON.parseArray(JSON.java:491) at cn.siti.main.MergeUDF.evaluate(MergeUDF.java:21) ... 28 more
在使用的過程中請注意這一點,Hive中報錯的時候,先看日誌,從上往下找最終導致異常的地方,然後進行解決。


此外有時候會遇到一個很無奈的問題

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 
 There are 3 datanode(s) running and no node(s) are excluded in this operation
本次執行中出現了這樣的問題,我這邊造成問題的主要原因是:nodemanager停止了,然後任務分發的時候出現問題。

重新啟動yarn即可

相關推薦

Hive資料倉庫--HiveUDF異常解析其中

使用Hive進行分析的過程中遇到了這個異常的資訊,一開始看到比較驚訝,因為感覺程式碼並沒有什麼不太合理的地方,不過還是丟擲了一堆的異常資訊,我把日誌資訊讀了一下,發現導致最終異常的是FastJson在封裝的時候找不到無參建構函式,雖然最終原因不是Hive引起的,但是上面的一堆

Hive資料倉庫工具安裝

一.Hive介紹 Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的資料檔案對映為一張資料庫表,並提供簡單SQL查詢功能,SQL語句轉換為MapReduce任務進行執行。 優點是可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合資料倉庫的統計分

5、Hive 資料倉庫技術

一、Hive 概念 Hive 是基於 Hadoop 的資料倉庫軟體,可以查詢和管理 PB 級別的分散式資料。資料倉庫已用多種方式定義,很難給出一種嚴格的定義。寬泛來講,資料倉庫是一種資料庫,他與單位的操作資料庫分別維護。資料倉庫系統允許將各種應用系統整合在一起,為統一的歷史資料分析提供堅實的

資料倉庫的詳細解析

原 資料倉庫的架構與設計 2017年04月01日 17:52:19 Trigl 閱讀數:37724 1. 什麼是資料倉庫 1.1 資料

scala jdbc遠端訪問hive資料倉庫

需求:         通過簡單的Scala程式碼遠端連線Hive,查詢Hive表資料並將資料轉存到本地。另外,用Scala查詢到資料後,我們還可以將查詢到的ResultSet集合轉化為RDD或者DataFrame進行scala的運算元運算  第一步:啟動伺服器以及需

Hive資料倉庫學習(一)之Hive初步認識

Hive,資料倉庫,是基於Hadoop的一個數據倉庫工具,它可以將結構化的資料檔案對映在一直資料庫表中,使用HQL(類SQL)開發,是一款很好的離線處理資料工具,在Hadoop中,用來進行離線批處理的事MapReduce,但是MapReduce比較難,新手不太好上手,所以利用

hive 資料倉庫過濾 非法字元,不可見字元,亂碼

接收到伺服器端傳回來的資料以後,入到了hive表當中,發現一些url 的傳參是亂碼的。這時候,需要進行過濾。 例如: select uri from table limit 10;   在ascii 碼錶中,可見字元的範圍是:32~126  

HIVE資料倉庫

1、 hive是什麼? Hive是基於 Hadoop 的一個數據倉庫工具: 1.       hive本身不提供資料儲存功能,使用HDFS做資料儲存; 2.       hive也不分

資料時代,OLAP解析發展方向

前言:資料分析領域自2010前後一直佔據了全球資訊科技的核心地位,OLAP的需求並未隨著Hadoop的流行而消亡,而是被越來越理智的認可——“資料再多也需要分析、分析的主要需求還是互動查詢”。本文概括了OLAP的本質原則、曾經的困境和當前的技術派系,希望能引起從業者的思考,共同促進行業進步與發展!

Scala遠端訪問Hive資料倉庫

  通過Hue等遠端WebUI介面訪問Hive,效率往往受到網路限制,並且不能將Hive資料倉庫的內容實現匯入匯出到本地,因此,今天筆者就通過簡單的Scala程式碼遠端連線Hive,查詢Hive表資料並

資料倉庫系統的實現使用(含OLAP重點講解)

前言         上一篇重點講解了資料倉庫建模,它是資料倉庫開發中最核心的部分。然而完整的資料倉庫系統還會涉及其他一些元件的開發,其中最主要的是ETL工程,線上分析處理工具(OLAP)和商務智慧(BI)應用等。         本文將對這些方面做一個總體性的介紹

dataframe操作hive資料倉庫【Java純程式碼】

package com.bjsxt; import org.apache.spark.SparkConf; import org.apache.spark.SparkContext; import org.apache.spark.api.java.JavaSparkCon

在Linux 中安裝hive資料倉庫

 hive正是實現了這個,hive是要類SQL語句(HiveQL)來實現對hadoop下的資料管理。hive屬於資料倉庫的範疇,那麼,資料庫和資料倉庫到底有什麼區別了,這裡簡單說明一下:資料庫側重於OLTP(線上事務處理),資料倉庫側重OLAP(線上分析處理); 首先確定

關係型資料庫和非關係型資料庫,以及hive資料倉庫的區別

關係型資料庫:Mysql,Oracle 非關係型資料庫:Redis,MongoDB,HBASE 類SQL資料庫:hive 具體地: 關係型資料庫(Mysql和Oracle) 1.表和表、表和欄位、資料和資料存在著關係 優點: 1.資料之間有關係,進行資料的增刪改

淺析資料庫(DB)、操作資料儲存(ODS)和資料倉庫(DW)的區別聯絡

文章背景: 相信大部分剛接觸上面三個概念的同學,都多多少少會有些迷惑,現在我就給大家簡單分析下這三者的關係,希望大家對這三者的概念理解有所幫助吧。 本文主要從下面兩類關係來敘述上面三者的關係: 資料庫(DB)和資料倉庫(DW)的區別與聯絡操作資料儲存(ODS)和資料倉庫(DW)的區別與聯絡 資料庫與資

hive的訪問:通過JDBC遠端連線hive資料倉庫

hive的訪問:終端訪問  遠端訪問 終端訪問:安裝hive,利用shell指令碼訪問 不可併發訪問 遠端訪問:通過JDBC連線資料倉庫 支援併發訪問 啟動hiveserver2服務:檢視該命令可知hiveserver2,等價於hive --service hive

快速查詢hive資料倉庫表中的總條數

Author: kwu 快速查詢hive資料倉庫中的條數,在查詢hive表的條數,通常使用count(*),但是資料量大的時候,mr跑count(*)往往需要幾分鐘的時間。 1、傳統方式獲得總條

物理隔離下的資料交換平臺難點解析實踐(一)

目錄 第零章、前言:為什麼?做什麼?怎麼做? 第一章、資料交換平臺的一些基本概念 目錄 第零章、前言:為什麼?做什麼?怎麼做? 最近帶隊做了公司的一個專案,叫資料交換平臺,旨在物理隔離的情況下對多端業務系統進行

雲端資料倉庫的模式選型建設

    資料,對一個企業的重要性不言而喻,如何利用好企業內部資料,發揮資料的更大價值,對於企業管理者而言尤為重要。作為最傳統的資料應用之一,資料倉庫在企業內部扮演著重要的角色,構建並正確配置好資料倉庫,對於資料分析工作至關重要。一個設計良好的資料倉庫,可以讓資料分析師們如魚得水;否則可能使

Hive資料倉庫你瞭解了嗎

在工作中我們經常使用的資料庫,資料庫一般存放的我們系統中常用的資料,一般為百萬級別。如果資料量龐大,達到千萬級、億級又需要對他們進行關聯運算,該怎麼辦呢? 前面我們已經介紹了HDFS和MapReduce了,它倆結合起來能夠進行各種運算,可是MapReduce的學習成本太高了,如果有一種工具可以直接使用sql