文件名是否應包含tetFileStream的數字?只有當文件名包含一個數字時,我的程序纔會提取新文件。忽略所有其他文件,即使它們是新的。是否有任何設置需要更改以提取所有文件?請幫助S3上的spark textFileStream
回答
它會掃描目錄中顯示窗口內出現的新文件。如果你正在寫S3,直接寫你的代碼,因爲直到最後的close() - 不需要重命名爲止,文件纔會出現。相反,如果您正在使用針對正常文件系統的文件流源,則應該從掃描的目錄中創建並在最後重命名 - 否則可能會讀取正在工作的文件。一旦閱讀:從不重讀。
謝謝史蒂夫。跑到另一個問題。當我在我的VM中本地提交它時,我的Spark流代碼工作正常。它從S3讀取文件並將輸出寫入ELK。但是,當我將jar提交到EMR集羣時,它會發出警告,提示「讀取文件時出錯」,並且根本不讀取。這是一種權限問題嗎?我爲我的S3存儲桶提供了所有必需的密鑰。任何意見? – Vamsi
就是這麼說的?沒有堆棧跟蹤? –
當我在YARN模式下使用EMR控制檯提交時,我沒有太多的信息。它說運行,但沒有讀取S3中的任何內容。如果我在EMR Master Instance終端上手動提交,以下是堆棧跟蹤。 FileInputDStream:查找新文件時出錯 java.lang.NullPointerException \t at scala.collection.mutable.ArrayOps $ ofRef $ .length $ extension(ArrayOps.scala:192)等等等等 – Vamsi
花了幾個小時來分析堆棧跟蹤,我發現問題是S3地址。我提供了「s3:// mybucket」,這是爲Spark 1.6和Scala 2.10.5工作的。在Spark 2.0(和Scala 2.11)上,它必須提供爲「s3:// mybucket /」。可能是一些正則表達式相關的東西。現在工作正常。感謝所有的幫助。
哦,所以你使用了一個短路徑的「s3://桶」沒有路徑?這可能被解釋爲對主目錄的引用,因此將被限定爲bucket/users/$ USER的路徑,其中$ USER = you。這發生在命令行上,是一個真正的痛苦。我個人喜歡解決這個問題(https://issues.apache.org/jira/browse/HADOOP-13648),但是擔心什麼壞處 –
- 1. Spark Streaming textFileStream COPYING
- 2. 從Apache Spark讀取文件textFileStream
- 3. apache spark Streaming textFileStream - 讀取gzip文件
- 4. textFileStream中的混淆
- 5. Spark 1.6.1 S3 MultiObjectDeleteException
- 6. Apache Spark向S3上傳性能問題
- 7. Spark 2.2.0 S3性能
- 8. 星火流textFileStream不支持通配符
- 9. Spark Streaming checkpoint to amazon s3
- 10. spark saveAsTextFile到s3失敗
- 11. Spark RDD foreach Partition to S3
- 12. 使用EMR上的Spark寫入S3中的文件
- 13. S3上帶有美元符號的Junk Spark輸出文件
- 14. 使用Spark通過REST API訪問AWS S3上的文件
- 15. 如何在S3上測量Spark中的IO時間
- 16. 從Apache Spark將分段上傳到Amazon S3
- 17. 在Spark Beeline上從S3創建外部表
- 18. Spark:讀取S3文件異常與Spark 1.5.2預建hadoop-2.6
- 19. Spark S3 I/O - [S3ServiceException] S3 HEAD請求失敗
- 20. Spark Streaming檢查點引發S3異常
- 21. 使用S3(法蘭克福)和Spark
- 22. 並行加載S3文件Spark
- 23. Spark寫入S3 V4 SignatureDoesNotMatch錯誤
- 24. Spark EC2-S3端點Scala未解決
- 25. Spark將熊貓df轉換爲S3
- 26. Spark Redshift保存爲s3拼圖
- 27. 星火流 - 加入JavaDStream飼料(textFileStream)與基準數據文件
- 28. 使用Spark在EMR上使用Spark進行ETL的S3的最佳文件格式
- 29. Python中Spark Spark RDD上的列操作
- 30. Spark Spark RDD上的列操作
不,它取得特定目錄中的所有文件。你可以粘貼一些代碼以獲得更好的幫助! –
謝謝Srinivas。跑到另一個問題。當我在我的VM中本地提交它時,我的Spark流代碼工作正常。它從S3讀取文件並將輸出寫入ELK。但是,當我將jar提交到EMR集羣時,它會發出警告,提示「讀取文件時出錯」,並且根本不讀取。這是一種權限問題嗎?我爲我的S3存儲桶提供了所有必需的密鑰。任何意見? – Vamsi