DirectI/Oを使用した分散処理モードでの設定について

42 views
Skip to first unread message

Nakata Atsushi

unread,
Aug 19, 2015, 2:59:43 AM8/19/15
to Asakusa Frameworkメーリングリスト
お世話になります、中田と申します。
現在Hadoop分散処理環境を構築し終え、
その上でAsakusaサンプルアプリケーションを実行させようとしていますが、
以下のようなエラーが発生してしまっています。

asakusa-resources等の設定を十分理解できていないため、
誤り等ありましたらご教授頂ければと存じます。

入力データは HDFS上の

/target/testing/directio/master
/target/testing/directio/sales

に配置しています。

Asakusaバージョンは0.7.3です。


[YAESSエラーログ]

15/08/19 15:30:43 ERROR launcher.ApplicationLauncher: Exception occurred in launcher: com.example.batchapp.example.summarizeSales.byCategory.directio.prologue.StageClient[]
java.io.FileNotFoundException: File does not exist: hdfs://master:9000/home/hduser/asakusa/batchapps/example.summarizeSales/lib/jobflow-byCategory.jar
    at org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1122)
    at org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1114)
    at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
    at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1114)
    at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.getFileStatus(ClientDistributedCacheManager.java:288)
    at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.getFileStatus(ClientDistributedCacheManager.java:224)
    at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.determineTimestamps(ClientDistributedCacheManager.java:93)
    at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.determineTimestampsAndCacheVisibilities(ClientDistributedCacheManager.java:57)
    at org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:269)
    at org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:390)
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:483)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1296)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1293)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1293)
    at com.asakusafw.runtime.stage.AbstractStageClient$DefaultJobRunner.run(AbstractStageClient.java:498)
    at com.asakusafw.runtime.stage.AbstractStageClient.submit(AbstractStageClient.java:279)
    at com.asakusafw.runtime.stage.AbstractStageClient.execute(AbstractStageClient.java:234)
    at com.asakusafw.runtime.stage.BaseStageClient.run(BaseStageClient.java:126)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at com.asakusafw.runtime.stage.launcher.ApplicationLauncher.launch(ApplicationLauncher.java:166)
    at com.asakusafw.runtime.stage.launcher.ApplicationLauncher.exec(ApplicationLauncher.java:137)
    at com.asakusafw.runtime.stage.launcher.ApplicationLauncher.exec(ApplicationLauncher.java:98)
    at com.asakusafw.runtime.stage.ToolLauncher.main(ToolLauncher.java:56)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
YAESS Hadoop failed with exit code: 255


[asakusa-resorces.xml設定内容]

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--
Default Implementations (for Development)
-->
    <property>
       <name>com.asakusafw.runtime.core.Report.Delegate</name>
       <value>com.asakusafw.runtime.report.CommonsLoggingReport</value>
    </property>
       
    <property>
        <name>com.asakusafw.directio.root</name>
        <value>com.asakusafw.runtime.directio.hadoop.HadoopDataSource</value>
    </property>
    <property>
        <name>com.asakusafw.directio.root.path</name>
        <value>/</value>
    </property>
    <property>
        <name>com.asakusafw.directio.root.fs.path</name>
          <value>hdfs://master:9000/target/testing/directio</value>
    </property>

</configuration>


[Description記述]

getBasePath()

master
sales


以上です、よろしくお願い致します。

KAWAGUCHI, Akira

unread,
Aug 19, 2015, 4:42:33 AM8/19/15
to Asakusa Frameworkメーリングリスト
かわぐちです。

添付のasakusa-resorces.xmlは特に問題はないように思われます。

添付ログの以下の部分についてですが、

> java.io.FileNotFoundException: File does not exist: hdfs://master:9000/home/hduser/asakusa/batchapps/example.summarizeSales/lib/jobflow-byCategory.jar

hdfsのパスですが/home/... と続いているため、
ジョブ実行時に参照しているHadoopの設定が正しくないか、
意図しない設定が使われているように見えます。
(おそらくhdfs://master:9000/home/hduser というパスは環境に存在しないと思います)

添付の情報だけだと原因を推測するのが難しいのですが、
HadoopクラスタやYAESSを実行した環境に配置しているHadoopの設定、
利用するHadoopコマンドなどの設定が正しいか、
または意図した設定ファイルが参照されているか、
などを確認するとよいかもしれません。


2015年8月19日水曜日 15時59分43秒 UTC+9 Nakata Atsushi:

Nakata Atsushi

unread,
Aug 23, 2015, 9:35:17 PM8/23/15
to Asakusa Frameworkメーリングリスト
かわぐち様

中田です。
アドバイス頂き、ありがとうございます。

その後、Hadoopの設定やHadoopコマンド等見直したのですが、
原因となるような箇所が発見できず、

hdfs://master:9000/配下に/home/hduser/asakusaディレクトリを作成し、
ローカルに配置していたasakusaディレクトリをコピーしたところ、
無事動作するようになりました。

対処の仕方として正しいか判断ができないのですが、
一旦無事にAsakusaが動き出しましたのでご報告致します。

この度はありがとうございました。


2015年8月19日水曜日 17時42分33秒 UTC+9 KAWAGUCHI, Akira:
Reply all
Reply to author
Forward
0 new messages