0
我有一個四節點spark羣集。一個節點既是主站又是從站,其他三個從站節點。我寫了一個示例應用程序,它載入文件並創建一個數據框並運行一些Spark SQL。當我從主節點提交申請類似下面,它正在生產輸出: -在獨立羣集中的spark中加載文件
./spark-submit /root/sample.py
,但是當我與主像下面提交,提示「文件不存在錯誤
./spark-submit --master spark://<IP>:PORTNO /root/sample.py
。
我創建的示例文本文件的RDD: - 。
lines = sc.textFile("/root/testsql.txt");
我是否需要將文件複製到所有節點?它是如何將生產系統的工作,例如,如果要處理一些CDRS,哪裏我應該收到這些CDRS。
..我有點困惑..如果我有一個1000行的文件,我會將它複製到所有位置..所有的奴隸工作在同一個文件?他們之間的負載如何平衡......另外,如果我有一個共享的位置,我將保留100個CDR文件..如何將這些文件分發給奴隸? –
那麼,我從來沒有複製過一個文件到每個節點,理想情況下,你應該讓所有節點都可以訪問同一個文件,通過我之前解釋過的方式。關於分配,它適用於分區。基本上這樣認爲,如果文件中有1000行,並且你明確地說lines.repartition(10)。它將創建10個並行分區,每個分區100行,4個工作人員一次處理4個分區。如果您不指定分區,則使用它的內部算法來計算分區數量。 –
..感謝您的解釋.. –