有一個以ruby編寫的用作標準的命令行客戶端。但是,它不能在1.9中運行。對於ruby,也有非常好的aws-sdk,但它不支持EMR。有很好的選擇嗎?您是否可以輕鬆地以編程方式控制Elastic Mapreduce作業?
0
A
回答
2
UPDATE 2012年6月22日:亞馬遜正在評審@ nkadwa的拉請求(請參閱上文)。留意這一點。
我一直在使用Ruby命令行客戶端,但有一些基於Ruby/Rails的工具構建,需要ruby 1.9.3。我的解決方法是RVM。
比方說,你有$HOME/projects/elastic-mapreduce
,你有EMR紅寶石客戶 比方說,你也有$HOME/projects/myproj
你可以告訴你的系統使用的紅寶石1.8.7 EMR有:
echo 'rvm use ruby-1.8.7' > $HOME/projects/elastic-mapreduce/.rvmrc
echo 'rvm use [email protected]' > $HOME/projects/myproj/.rvmrc
如果您需要從某處調用彈性map-reduce腳本,則可以像下面那樣調整RVM。默認情況下,elastic-mapreduce在其同一目錄中使用credentials.json文件。請注意,第一次進入目錄時,系統將驗證您是否願意信任.rvmrc文件。
# cd'ing into the directory will output stuff to stdout when it changes
cd $HOME/elastic-mapreduce > /dev/null && rvm ruby-1.8.7; ./elastic-mapreduce [args]
或者,如果你想跳過「CD」的業務,你可以這樣做:
# Again, redirect output after 'rvm use' so you don't get the green output
system("rvm use ruby-1.8.7 > /dev/null; /path/to/elastic-mapreduce -c /path/to/elastic-mapreduce/credentials.json --list")
您將需要遵循RVM網站上的說明來得到它安裝(相當直接向前)。但是,當您需要運行多個Ruby版本時,這是一個完美的解決方案。我已經將它運行在EC2的生產環境中。
希望有所幫助。
0
UPDATE
羽翼豐滿EMR支持現在包括在AWS SDK爲Ruby的V1.6 +。 https://github.com/amazonwebservices/aws-sdk-for-ruby
PREVIOUS
我已經在一個叉加入EMR支持與客戶端行爲適合於一般用途:
https://github.com/kadwanev/aws-sdk-for-ruby/tree/add-emr
實例應用:
AWS.config({:access_key_id => '', :secret_access_key => '',
:emr_key_pair => '', :emr_key_pair_file => ''})
emr = AWS::EMR.new
job = emr.jobs(:active => true).first
job.short_desc
=> {:id=>"j-2N8V9X1RWH1QJ", :state=>"WAITING", :name=>"job name", :instance_count=>"1", :instance_hours=>"2", :steps=>[{:name=>"step name", :state=>"COMPLETED", :last_change=>nil}]}
job = job.create({name: 'job name', instances: {keep_job_flow_alive_when_no_steps: true,
instance_count: 1, master_instance_type: 'm1.small', slave_instance_type: 'm1.small'}})
=> #<AWS::EMR::JobFlow:j-XXXXXXXXXXXXJ>
job.ssh_command
=> "ssh -o ServerAliveInterval=10 -o StrictHostKeyChecking=no -i key-pair-file.pem [email protected]"
job.terminate
希望他們採取拉。
相關問題
- 1. 是否可以輕鬆地從其他程序控制mplayer?
- 2. 是否可以使用.NET爲Amazon Elastic MapReduce編寫map/reduce作業?
- 3. 是否可以輕鬆地在單個打印作業中打印多個cfreport?
- 4. 是否可以輕鬆地對C++ .Net程序集進行反編譯?
- 5. 是否可以通過編程方式控制Office消息欄
- 6. 是否可以通過REST API以編程方式刪除哈德森作業?
- 7. 是否可以使用Blackboard WebServices以編程方式向Blackboard提交作業
- 8. 我可以從AWS Elastic Mapreduce作業訪問zookeeper嗎
- 9. 移動設備的MAC地址是否可以輕鬆確定?
- 10. iPhone:是否有可能以編程方式製作視頻
- 11. 是否可以以編程方式控制Windows Phone中的網絡狀態?
- 12. 遠程啓動Amazon Elastic MapReduce作業?
- 13. 是否可以輕鬆調試iPhone串口應用程序?
- 14. 可以Haskell [輕鬆]做COM?
- 15. 以編程方式重建jenkins作業
- 16. 以編程方式創建SQL作業
- 17. 以編程方式停止PlayFramework作業
- 18. 以編程方式終止Spark作業
- 19. 是否可以輕鬆完全反編譯python編譯(* .pyc)文件?
- 20. 以編程方式控制Grunt.js
- 21. 是否有可能以編程方式抑制MessageBoxes?
- 22. 以編程方式控制ListView CSS
- 23. 有沒有方法可以更輕鬆地移除偵聽器?
- 24. 您可以控制多個Amazon Elastic Load Balancer實例嗎?
- 25. 在monotouch.dialog中,RootElement可以輕鬆地設置樣式嗎?
- 26. 以編程方式控制鼠標
- 27. 是否可以在vim中輕鬆插入單個單詞
- 28. 如何輕鬆判斷Ninject是否可以解析一個類
- 29. 是否可以在事件期間以編程方式更改控件的UpdatePanel?
- 30. 您可以輕鬆更改Materialise中的芯片顏色嗎?