我有一個Mesos集羣設置 - 我已證實主人可以看到奴隸 - 但是當我嘗試要運行Hadoop作業,所有任務都處於狀態爲「丟失」狀態。同樣的錯誤出現在所有從屬stderr日誌中:Mesos上的Hadoop失敗,出現「無法找到或加載主類org.apache.hadoop.mapred.MesosExecutor」
Error: Could not find or load main class org.apache.hadoop.mapred.MesosExecutor
並且這是stderr日誌中的唯一行。
按照有關http://mesosphere.io/learn/run-hadoop-on-mesos/的說明,我在HDFS上放置了一個修改後的Hadoop發行版,每個從站都可以訪問它。 在Hadoop發行版的lib
目錄中,我添加了hadoop-mesos-0.0.4.jar
和mesos-0.14.2.jar
。
我已經驗證過,每個奴隸確實下載了這個Hadoop發行版,並且hadoop-mesos-0.0.4.jar
包含了類org.apache.hadoop.mapred.MesosExecutor
,所以我不知道爲什麼找不到類。
我使用CDH4.4.0和mesos-0.15.0-rc4的Hadoop。
有沒有人有什麼建議可能是什麼問題?我知道我總是會從CLASSPATH
問題開始,但在這種情況下,mesos-slave正在下載,解包並嘗試運行Hadoop任務跟蹤器,因此我想可以通過mesos-slave設置任何CLASSPATH
。
在從站日誌的標準輸出中打印環境。有一個空的MESOS_HADOOP_HOME
。這應該設置成什麼?如果應該將其設置爲下載的Hadoop發行版,則無法預先設置它,因爲Hadoop發行版每次都會下載到新的位置。
如果相關事件(可能是某些權限問題),當嘗試通過主UI瀏覽從屬日誌時,出現錯誤Error browsing path: ...
。 手動運行mesos-slave的用戶可以瀏覽到正確的目錄。