2015-06-08 82 views
1

我剛剛安裝了Google Cloud platform進行免費試用。爲了與DataStore運行MapReduce任務時,docs說運行是datastore mapreduce不贊成

./bdutil --upload_files "samples/*" run_command ./test-mr-datastore.sh 

但我不能讓我的本地文件,並有一個很好的理由,這種方式運行MapReduce工作似乎被棄用請參閱github。是的,是否有另一種方法可以從本地命令行創建MapReduce任務,而不需要BigQuery

回答

1

注意:谷歌團隊removed DataStore connectorbdutil V1.3.0(2015年5月27日)前進,所以你可能需要使用舊版本或使用GCS或作爲的BigQuery代理,以在數據存儲訪問您的數據。

我儘量覆蓋儘可能多的,因爲我可以,但bdutil是需要很多更詳細的,這是很難在這個答案記錄它,但我希望這可以給你足夠的開始:

  • 設置谷歌雲SDK - detail

    # Download SDK 
    curl https://sdk.cloud.google.com | bash 
    # Restart your shell 
    exec -l $SHELL 
    # Authenticate to GCP 
    gcloud auth login 
    # Select Project 
    gcloud config set project PROJECT_NAME 
    
  • 下載並解壓縮包含數據存儲連接器bdutil源代碼。

    # Download source which contains DataStore connector 
    wget https://github.com/GoogleCloudPlatform/bdutil/archive/1.2.1.tar.gz -O bdutil.tar.gz 
    # Extract source 
    tar -xvzf bdutil.tar.gz 
    cd bdutil-*/ 
    
  • 創建bdutil自定義環境變量文件。請參考bdutil configuration documentation有關創建正確的配置文件,因爲你需要指定項目,服務器的數量,GCS鬥,機型等..

  • 使用部署您的Hadoop實例(Full documentationdatastore_env.sh

    ./bdutil deploy -e YOUR_ENV_FILE.sh,datastore_env.sh 
    
  • 連接到Hadoop的主節點

    ./bdutil shell 
    
  • 現在,在主節點,你可以運行你的MapReduce工作,將有機會獲得數據存儲中的脹。

  • 調低Hadoop集羣

    ./bdutil delete 
    
+0

謝謝,但不再有任何'datastore_env。sh'文件 - 看看你何時解開bdutil文件 – Newben

+0

@Newben,你是絕對正確的。他們在v1.3.0(1.3.0 - 2015-05-27 - 12天前)中刪除了它 - 更詳細信息:https://github.com/GoogleCloudPlatform/bdutil/blob/master/CHANGES.txt – Qorbani

+0

是的,我的確看到那);) – Newben

1

的數據存儲連接器連接器確實已經過時了。

對於你的問題「是否有另一種從本地命令行創建MapReduce任務的方法」,一種選擇是使用Google Cloud Dataflow。它本身不是MapReduce,但它是用於並行數據處理的編程模型,它已經取代了Google的MapReduce。 Dataflow SDK包含support for Datastore access

與Hadoop不同,您不必設置羣集。您只需編寫代碼(使用Dataflow SDK)並從CLI提交作業。數據存儲服務將立即創建所需的工作人員來處理您的工作,然後終止它們。