EMRを動かしても、以下のエラーで原因が全くつかめないので、エラー原因を詳しく見るために、リソースマネージャーへアクセスする方法
Exception in thread "main" org.apache.spark.SparkException: Application finished with failed status...
環境
- PCが会社などのProxy環境下に存在
- mac利用
やること
だいたい、以下の流れとなります。
-
FoxyProxyをFireFoxにインストール
-
FoxyProxyの設定
-
コンソール上から、EMRのマスターのIPに対して、ダイナミックフォワーディングを行う
-
FoxyProxyをONにする
-
FoxyProxyをインストール
下記より
- FoxyProxyの設定
こちらを参考にさせていただきました。
http://qiita.com/pyr_revs/items/5e7212581b536fd436fb
プロキシの新規追加を行う
インポートでファイルを選べるので、以下の内容のxmlを作って読み込ませる
<?xml version="1.0" encoding="UTF-8"?>
<foxyproxy>
<proxies>
<proxy name="emr-socks-proxy" id="2322596116" notes="" fromSubscription="false" enabled="true" mode="manual" selectedTabIndex="2" lastresort="false" animatedIcons="true" includeInCycle="true" color="#0055E5" proxyDNS="true" noInternalIPs="false" autoconfMode="pac" clearCacheBeforeUse="false" disableCache="false" clearCookiesBeforeUse="false" rejectCookies="false">
<matches>
<match enabled="true" name="*ec2*.amazonaws.com*" pattern="*ec2*.amazonaws.com*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" />
<match enabled="true" name="*ec2*.compute*" pattern="*ec2*.compute*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" />
<match enabled="true" name="10.*" pattern="http://10.*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" />
<match enabled="true" name="*10*.amazonaws.com*" pattern="*10*.amazonaws.com*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" />
<match enabled="true" name="*10*.compute*" pattern="*10*.compute*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" />
</matches>
<manualconf host="localhost" port="8157" socksversion="5" isSocks="true" username="" password="" domain="" />
</proxy>
</proxies>
</foxyproxy>
- ダイナミックフォワーディングをする
起動しているEMRのマスターIPを確認
コンソールを立ち上げて、以下を入力
ssh -i ~/.ssh/hogehoge.pem -N -D 8157 hadoop@xxx.xxx.xxx.xxx
port:8157なのは、FoxyProxyにデフォルトで設定している値?
- FoxyProxyのON
「モードを選択」で、先ほどの設定を施したものを選ぶ
接続
EMRにアクセスして、リソースマネージャーのリンクを踏めば
以下のようにアクセスができると思います