2016-06-16 1 views
1

나는 Flink on YARN's setup documentation을 따랐다. 커버 로스에 인증되는 동안은, ./bin/yarn-session.sh -n 2 -jm 1024 -tm 2048 실행할 때, 나는 다음과 같은 오류가 발생합니다 :원사에 플린 크 : 아마존 S3가 HDFS 대신 잘못 사용됨

2016-06-16 17:46:47,760 WARN org.apache.hadoop.util.NativeCodeLoader      - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
2016-06-16 17:46:48,518 INFO org.apache.hadoop.yarn.client.api.impl.TimelineClientImpl  - Timeline service address: https://**host**:8190/ws/v1/timeline/ 
2016-06-16 17:46:48,814 INFO org.apache.flink.yarn.FlinkYarnClient       - Using values: 
2016-06-16 17:46:48,815 INFO org.apache.flink.yarn.FlinkYarnClient       - TaskManager count = 2 
2016-06-16 17:46:48,815 INFO org.apache.flink.yarn.FlinkYarnClient       - JobManager memory = 1024 
2016-06-16 17:46:48,815 INFO org.apache.flink.yarn.FlinkYarnClient       - TaskManager memory = 2048 
Exception in thread "main" java.util.ServiceConfigurationError: org.apache.hadoop.fs.FileSystem: Provider org.apache.hadoop.fs.s3a.S3AFileSystem could not be instantiated 
    at java.util.ServiceLoader.fail(ServiceLoader.java:224) 
    at java.util.ServiceLoader.access$100(ServiceLoader.java:181) 
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:377) 
    at java.util.ServiceLoader$1.next(ServiceLoader.java:445) 
    at org.apache.hadoop.fs.FileSystem.loadFileSystems(FileSystem.java:2623) 
    at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2634) 
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2651) 
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:92) 
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2687) 
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2669) 
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:371) 
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:170) 
    at org.apache.flink.yarn.FlinkYarnClientBase.deployInternal(FlinkYarnClientBase.java:531) 
    at org.apache.flink.yarn.FlinkYarnClientBase$1.run(FlinkYarnClientBase.java:342) 
    at org.apache.flink.yarn.FlinkYarnClientBase$1.run(FlinkYarnClientBase.java:339) 
    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:1657) 
    at org.apache.flink.yarn.FlinkYarnClientBase.deploy(FlinkYarnClientBase.java:339) 
    at org.apache.flink.client.FlinkYarnSessionCli.run(FlinkYarnSessionCli.java:419) 
    at org.apache.flink.client.FlinkYarnSessionCli.main(FlinkYarnSessionCli.java:362) 
Caused by: java.lang.NoClassDefFoundError: com/amazonaws/AmazonServiceException 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2532) 
    at java.lang.Class.getConstructor0(Class.java:2842) 
    at java.lang.Class.newInstance(Class.java:345) 
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:373) 
    ... 18 more 
Caused by: java.lang.ClassNotFoundException: com.amazonaws.AmazonServiceException 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    ... 23 more 

난에서 다음 속성을 설정 내 ./flink-1.0.3/conf/flink-conf.yaml

fs.hdfs.hadoopconf: /etc/hadoop/conf/ 
fs.hdfs.hdfssite: /etc/hadoop/conf/hdfs-site.xml 

어떻게 HDFS는 아마존의 S3 대신 사용할 수 있습니까?

감사합니다.

답변

1

실제로 삭제 된 대답에 제안 된대로 env var HADOOP_CLASSPATH를 설정해야했습니다.

@rmetzger : fs.defaultFS이 설정됩니다.

결과 명령

HADOOP_CLASSPATH=... ./bin/yarn-session.sh -n 2 -jm 1024 -tm 2048 
1

Flink가 구성 파일을 선택하지 않는 것이 문제라고 생각합니다.

구성에서 fs.hdfs.hdfssite으로 시작하는 줄을 제거 할 수 있습니까? fs.hdfs.hadoopconf이 설정되면 필요하지 않습니다.

또한 core-site.xmlfs.defaultFs 설정이 hdfs://으로 시작하는 것으로 설정되어 있는지 확인할 수 있습니까?

+0

감사 팁을위한 (hdfssite 유용하지 않음). fs.defaultFs는 hdfs : // ***로 설정됩니다. –

관련 문제