cdh4.1.2 hadoop和oozie整合問題

來源:互聯網
上載者:User

標籤:class   code   http   java   tar   ext   

1.異常資訊例如以下:

   Caused by: com.google.protobuf.ServiceException: java.net.ConnectException: Call From slave4/10.95.3.65 to 0.0.0.0:10020 failed on connection exception: java.net.ConnectException: 拒絕串連; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
後來通過調試和跟蹤hadoop源碼,發現oozie在提交任務後確實會去串連jobhistory,
開到debug模式後,在org.apache.hadoop.mapred.ClientCache,這個類的:
  protected MRClientProtocol instantiateHistoryProxy()
      throws IOException {
    final String serviceAddr = conf.get(JHAdminConfig.MR_HISTORY_ADDRESS);
    if (StringUtils.isEmpty(serviceAddr)) {
      return null;
    }
    LOG.debug("Connecting to HistoryServer at: " + serviceAddr);
    final YarnRPC rpc = YarnRPC.create(conf);
    LOG.debug("Connected to HistoryServer at: " + serviceAddr);
    UserGroupInformation currentUser = UserGroupInformation.getCurrentUser();
    return currentUser.doAs(new PrivilegedAction<MRClientProtocol>() {
      @Override
      public MRClientProtocol run() {
        return (MRClientProtocol) rpc.getProxy(HSClientProtocol.class,
            NetUtils.createSocketAddr(serviceAddr), conf);
      }
    });
  }
通過上面的代碼能夠知道確實串連了HistoryServer,因此我通過命令
mr-jobhistory-daemon.sh start historyserver 把這個服務啟動,這樣在NN上會啟動JobHistoryServer進程,這個進程的監聽port就是10020,本以為這樣這個問題就能攻克了,沒想到在oozie的log日誌裡還是報上面的錯,唯一可能的原因是oozie沒有讀取到 jobhistory的配置, 因此我把這個配置:
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>master:10020</value>
        </property>
又在oozie/conf/hadoop-conf/core-site.xml檔案裡又加入了一遍,上述錯誤就消失了,job也能正常跑起來了。


2. oozie安裝好了,提交任務的時候總是報Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Data truncation: Data too long for column ‘proto_action_conf‘ at row 1 {prepstmnt 184665592 INSERT INTO WF_JOBS (id, app_name, app_path, conf, group_name, parent_id, run, user_name, bean_type, auth_token, created_time, end_time, external_id, last_modified_time, log_token, proto_action_conf, sla_xml, start_time, status, wf_instance) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?]} [code=1406, state=22001]


    經過搜尋,wf_jobs中的proto_action_conf這個欄位儲存的是工作流程中workflow.xml的內容,預設oozie建立中繼資料表的時候此欄位類型為text(mysql),此種類型為最大長度為

    65536字元的text列,所以有時無法容納workflow.xml的內容,須要將其改為LONGTEXT類型,改後就好了。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.