7

Sto avendo problema nella lettura dei dati dal blob azzurre tramite scintilla in streaming codicelettura dei dati da Azure Blob con Spark

JavaDStream<String> lines = ssc.textFileStream("hdfs://ip:8020/directory"); 

come sopra funziona per HDFS, ma non è in grado di leggere file da Azure blob

https://blobstorage.blob.core.windows.net/containerid/folder1/ 

Sopra è il percorso che viene mostrato nell'interfaccia utente azzurro, ma questo non funziona, mi manca qualcosa e come possiamo accedervi.

So Eventhub sono la scelta ideale per lo streaming di dati, ma le mie attuali esigenze situazione di utilizzare stoccaggio piuttosto che accoda

risposta

7

Per poter leggere i dati dalla memoria blob, ci sono due cose che devono essere fatte. Per prima cosa, devi dire a Spark quale file system nativo usare nella configurazione di Hadoop sottostante. Questo significa che è necessario anche il Hadoop-Azure JAR ad essere disponibili sul classpath (notare che i requisiti forse runtime per più JAR relativi alla famiglia Hadoop):

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"); 

Ora, chiamare sul file utilizzando il prefisso wasb:// (notare il [s] è per facoltativo connessione sicura):

ssc.textFileStream("wasb[s]://<BlobStorageContainerName>@<StorageAccountName>.blob.core.windows.net/<path>"); 

questo va da sé che è necessario avere autorizzazioni appropriate stabilite dalla posizione rendendo la query per archiviazione blob.

+0

Grazie, ho provato ma penso che un problema si stia ancora verificando, è possibile puntare un collegamento ad un esempio funzionante – duck

+0

Non ho un tutorial di lavoro. Quale eccezione si sta verificando? –

+0

Ha funzionato, era un problema di dipendenza. – duck

1

Come ulteriore, è disponibile un'esercitazione sull'archiviazione BLOB Azure compatibile con HDFS con Hadoop che è molto utile, vedere https://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-use-blob-storage.

Nel frattempo, c'è un ufficiale sample su GitHub per lo streaming Spark su Azure. Sfortunatamente, l'esempio è scritto per Scala, ma penso che sia ancora utile per te.

+2

Non vedo nulla relativo alla lettura dalla memoria BLOB nell'esempio. Ho anche letto il primo link e non c'è nulla che io veda direttamente spiegando come fornire un 'NativeAzureFileSystem' a Spark. Penso che sarebbe un bene se voi forniate un esempio concreto dell'utilizzo dello storage BLOB come directory di checkpoint sottostante per Spark. –

Problemi correlati