0

아파치 빔이 푸른 창문 BLOB 파일 (와) IO를 지원하는지 궁금합니다. 아직 지원이 있니?Apache Beam에서 Azure Blob을 지원합니까?

Azure Spark 클러스터에서 작업을 실행하기 위해 Apache Beam 응용 프로그램을 배포했기 때문에 기본적으로 해당 스파크 클러스터가있는 관련 저장소 컨테이너의 IO wasb 파일은 불가능합니다. 다른 해결책이 있습니까?

컨텍스트 : Azure Spark Cluster에서 WordCount example을 실행하려고합니다. 이미 말한대로 일부 구성 요소를 설정했는데 here 믿음은 나를 도울 것입니다.

final SparkPipelineOptions options = PipelineOptionsFactory.create().as(SparkPipelineOptions.class); 

options.setAppName("WordCountExample"); 
options.setRunner(SparkRunner.class); 
options.setSparkMaster("yarn"); 
JavaSparkContext context = new JavaSparkContext(); 
Configuration conf = context.hadoopConfiguration(); 
conf.set("fs.azure", "org.apache.hadoop.fs.azure.NativeAzureFileSystem"); 
conf.set("fs.azure.account.key.<storage-account>.blob.core.windows.net", 
     "<key>"); 
options.setProvidedSparkContext(context); 
Pipeline pipeline = Pipeline.create(options); 

그러나 불행하게도 나는 다음과 같은 오류로 끝나는 계속 : 아래는 내가 하둡 구성을 설정하고있어 내 코드의 일부이다

java.lang.IllegalStateException: Failed to validate wasb://<storage-container>@<storage-account>.blob.core.windows.net/user/spark/kinglear.txt 
at org.apache.beam.sdk.io.TextIO$Read$Bound.apply(TextIO.java:288) 
at org.apache.beam.sdk.io.TextIO$Read$Bound.apply(TextIO.java:195) 
at org.apache.beam.sdk.runners.PipelineRunner.apply(PipelineRunner.java:76) 
at org.apache.beam.runners.spark.SparkRunner.apply(SparkRunner.java:129) 
at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:400) 
at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:323) 
at org.apache.beam.sdk.values.PBegin.apply(PBegin.java:58) 
at org.apache.beam.sdk.Pipeline.apply(Pipeline.java:173) 
at spark.example.WordCount.main(WordCount.java:47) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:627) 
Caused by: java.io.IOException: Unable to find handler for wasb://<storage-container>@<storage-account>.blob.core.windows.net/user/spark/kinglear.txt 
at org.apache.beam.sdk.util.IOChannelUtils.getFactory(IOChannelUtils.java:187) 
at org.apache.beam.sdk.io.TextIO$Read$Bound.apply(TextIO.java:283) 
... 13 more 

제가 아파치에 대한 사용자 정의 IO를 구현하는 방법에 대한 생각 Azure Storage Blob의 경우이 경우 빔을 솔루션으로 사용하려면 대체 솔루션인지 여부를 커뮤니티에 문의하십시오.

답변

2

Apache Beam에는 현재 Windows Azure 저장소 블롭 (WASB) 에 대한 커넥터가 내장되어 있지 않습니다..

HadoopFileSystem에 대한 지원을 추가하기 위해 Apache Beam 프로젝트에 적극적으로 노력하고 있습니다. 나는 WASB가 hadoop-azure module 안에 HadoopFileSystem을위한 연결 관을 가지고 있다고 믿는다. 이렇게하면 WASB가 간접적으로 Beam과 함께 사용할 수있게됩니다. 이것은 가장 쉬운 경로 일 가능성이 높으며 조속히 준비되어야합니다.

이제 빔에서 WASB를 기본적으로 지원하는 것이 좋습니다. 그것은 아마도 다른 수준의 성능을 가능하게 할 것이고 구현하기가 상대적으로 간단해야합니다. 내가 아는 한 아무도 적극적으로 프로젝트를 진행하고 있지는 않지만 프로젝트에 큰 도움이 될 것입니다. (개인적으로 기여에 관심이 있으시면 연락 주시기 바랍니다.)

+2

Apache Beam의 [개발자 메일 링리스트] (https://beam.apache.org/get-started/support/)를 사용해 보겠습니다. 그리고 내가 물을 수 있다면 위의 귀하의 의견에서 내 이메일 주소를 제거하십시오 - 아시다시피 크롤러 등 .-) 감사합니다. –

관련 문제