2015-01-17 612 views
0

我有一個簡單的java程序來設置MR作業。我可以使用'hadoop jar'在Hadoop基礎架構(hadoop 2x)中成功執行此操作。但是我想用下面的java命令來實現同樣的功能。使用java命令運行hadoop作業

Java類名

  1. 如何我可以通過Hadoop配置這個類名?
  2. 我需要提供哪些額外參數?
  3. 任何鏈接/文檔將不勝感激。

回答

0

我不認爲你可以找到這方面的文檔。 hadoop命令是一個腳本,在那裏使用了很多類。用於訪問文件系統的類FsShell,當我們運行一個jar RunJar時使用的類。添加hadoop相關的庫,配置文件到classpath在hadoop命令本身中處理。

你最好看看hadoop腳本。

0

你怎麼能這樣做?任何jar文件執行都意味着,它必須在所有守護進程一起工作的分佈式環境中執行,以完成執行。 我們沒有在本地或本地文件系統上運行。所以,它需要按照hdfs的規範來執行,所以我不認爲我們可以像我們在本地文件系統中那樣執行。

0

Hadoop是一個簡化分佈式計算的框架。在hadoop之前,程序員也知道並行處理和多線程概念。但是,當你處理多臺機器,你需要知道

  • 如果一臺機器出現故障的機器之間如何

    1. 溝通
    2. 網絡處理?容錯 等等!這是一個巨大的,這是hadoop簡化你的工作。它負責所有運營級別的事情,並且可以專注於您的業務邏輯。

    所以在你的情況下,根據你的要求,沒有直接的答案。因爲通過傳遞參數你的程序不起作用。你需要編寫大量的庫來處理分佈式計算。如果你想探索它們,那麼我會建議繼續閱讀hadoop源代碼。

    http://hadoop.apache.org/version_control.html 
    
  • 1

    當您使用其他參數運行'hadoop jar'命令時,您可以使用java運行相同的方法。

    檢查,這個命令的計算結果爲Hadoop的類路徑

    $ hadoop classpath 
    

    那麼無論您的自定義罐子應該在類路徑中添加

    $ java -cp `hadoop classpath`:/my/tools/jar/tools.jar 
    

    我能夠得到我的這個工作,在我的hadoop羣集上