日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hive问题-return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

發布時間:2023/12/8 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hive问题-return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

執行hive sql時遇到問題:
FAILED:Execution Error,return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask


這個其實一般是個hive內部錯誤,處理這個問題就需要找日志了;
找日志

  • hive.log(比較簡略)
    hive.log ===> 缺省情況下 /tmp/root/hive.log (不然就在你hive-site.conf配置的日志路徑里)
    我這里在/tmp/root目錄下

    去里面看了日志,沒有什么有價值的信息,只得去找MR日志了。
  • MR的日志(詳細些)
    看MR日志,需要啟動historyserver、日志聚合 + SQL運行在集群模式
    因為我在hive-site.conf中配置了本地模式

    所以我從歷史日志中沒有找到相關日志記錄,所以在運行sql前執行set hive.exec.mode.local.auto=false 然后再執行之前的sql

    再就可以從JobHistory頁面上看到對應的執行job,可以進去看詳細的錯誤日志


    進去就可以看到詳細的錯誤信息了

    解決方式:
    其實之前寫的sql沒有什么大的問題,不過考慮之后還是改寫一下sql
    改動之前:
  • #!/bin/bash source /etc/profile if [ -n "$1" ] ;thendo_date=$1 elsedo_date=`date -d "-1 day" +%F` fi sql=" insert overwrite table dws.dws_member_retention_day partition(dt='$do_date') (selectt2.device_id,t2.uid,t2.app_v,t2.os_type,t2.language,t2.channel,t2.area,t2.brand,t2.dt add_date,1fromdws.dws_member_start_day t1joindws.dws_member_add_day t2ont1.device_id=t2.device_idwheret2.dt=date_add('$do_date',-1)andt1.dt='$do_date' union allselectt2.device_id,t2.uid,t2.app_v,t2.os_type,t2.language,t2.channel,t2.area,t2.brand,t2.dt add_date,2fromdws.dws_member_start_day t1joindws.dws_member_add_day t2ont1.device_id=t2.device_idwheret2.dt=date_add('$do_date',-2)andt1.dt='$do_date' union allselectt2.device_id,t2.uid,t2.app_v,t2.os_type,t2.language,t2.channel,t2.area,t2.brand,t2.dt add_date,3fromdws.dws_member_start_day t1joindws.dws_member_add_day t2ont1.device_id=t2.device_idwheret2.dt=date_add('$do_date',-3)andt1.dt='$do_date' ); " hive -e "$sql"

    改動sql之后執行成功:(我這里是寫在腳本中的sql)

    #!/bin/bash source /etc/profile if [ -n "$1" ] ;thendo_date=$1 elsedo_date=`date -d "-1 day" +%F` fi sql=" create table tmp.tmp_member_retention as (selectt2.device_id,t2.uid,t2.app_v,t2.os_type,t2.language,t2.channel,t2.area,t2.brand,t2.dt add_date,1fromdws.dws_member_start_day t1joindws.dws_member_add_day t2ont1.device_id=t2.device_idwheret2.dt=date_add('$do_date',-1)andt1.dt='$do_date' union allselectt2.device_id,t2.uid,t2.app_v,t2.os_type,t2.language,t2.channel,t2.area,t2.brand,t2.dt add_date,2fromdws.dws_member_start_day t1joindws.dws_member_add_day t2ont1.device_id=t2.device_idwheret2.dt=date_add('$do_date',-2)andt1.dt='$do_date' union allselectt2.device_id,t2.uid,t2.app_v,t2.os_type,t2.language,t2.channel,t2.area,t2.brand,t2.dt add_date,3fromdws.dws_member_start_day t1joindws.dws_member_add_day t2ont1.device_id=t2.device_idwheret2.dt=date_add('$do_date',-3)andt1.dt='$do_date' );insert overwrite table dws.dws_member_retention_day partition(dt='$do_date') select * from tmp.tmp_member_retention; "hive -e "$sql"

    其實sql改動不大,無非是,改動后的是,創建一個臨時表,在插入到對應的表中

    總結

    以上是生活随笔為你收集整理的hive问题-return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。