duc*_*uck 9 java azure azure-storage-blobs apache-spark spark-streaming
我在通过火花流从天蓝色斑点中读取数据时遇到了问题
JavaDStream<String> lines = ssc.textFileStream("hdfs://ip:8020/directory");
Run Code Online (Sandbox Code Playgroud)
像上面的代码适用于HDFS,但无法从Azure blob读取文件
https://blobstorage.blob.core.windows.net/containerid/folder1/
Run Code Online (Sandbox Code Playgroud)
上面是天蓝色UI中显示的路径,但这不起作用,我错过了什么,我们如何访问它.
我知道Eventhub是流数据的理想选择,但我目前的情况要求使用存储而不是队列
Yuv*_*kov 15
为了从blob存储中读取数据,有两件事需要完成.首先,您需要告诉Spark在底层Hadoop配置中使用哪个本机文件系统.这意味着您还需要在类路径上使用Hadoop-Azure JAR(请注意,可能存在与Hadoop系列相关的更多JAR的运行时要求):
JavaSparkContext ct = new JavaSparkContext();
Configuration config = ct.hadoopConfiguration();
config.set("fs.azure", "org.apache.hadoop.fs.azure.NativeAzureFileSystem");
config.set("fs.azure.account.key.youraccount.blob.core.windows.net", "yourkey");
Run Code Online (Sandbox Code Playgroud)
现在,使用wasb://前缀调用文件(注意[s]是用于可选的安全连接):
ssc.textFileStream("wasb[s]://<BlobStorageContainerName>@<StorageAccountName>.blob.core.windows.net/<path>");
Run Code Online (Sandbox Code Playgroud)
不言而喻,您需要从查询位置设置适当的权限才能进行blob存储.
| 归档时间: |
|
| 查看次数: |
7687 次 |
| 最近记录: |