亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 Go 從 MapR 集群中讀取文件?

如何使用 Go 從 MapR 集群中讀取文件?

Go
qq_笑_17 2022-10-31 15:49:42
我有一個運行在 Kubernetes 集群中的 Go 應用程序,它需要從大型 MapR 集群中讀取文件。兩個集群是分開的,Kubernetes 集群不允許我們使用 CSI 驅動。我所能做的就是在 Kubernetes pod 內的 Docker 容器中運行用戶空間應用程序,然后我maprticket可以連接到 MapR 集群。我可以使用com.mapr.hadoop maprfs jar編寫一個 Java 應用程序,該應用程序能夠使用maprticket.
查看完整描述

1 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

這是一個很好的問題,因為它突出了某些環境施加限制的方式,這些限制違反了外部軟件可能持有的假設。

僅供參考,MapR 已被 HPE 收購,因此 MapR 集群現在是 HPE Ezmeral Data Fabric 集群。我仍在訓練自己這么說。

無論如何,語言 X 中的通用程序與 Ezmeral Data Fabric(以前稱為 MapR FS 的文件系統)通信的公認方法是掛載文件系統并使用文件 API(如 open/read/write 等)與之通信. 這適用于 Go、Python、C、Julia 或其他任何東西。在 Kubernetes 內部,執行此掛載的常規方法是使用 CSI 驅動程序,該驅動程序有某種操作員在后臺工作。那個操作員并不是特別神奇......它只是做需要做的事情。對于 Data Fabric,操作員使用 NFS 或 FUSE 掛載 Data Fabric,然后將 mounts[1] 的一部分綁定到 Pod 的感知中。

但是這個問題很酷,因為它排除了所有這些。如果您無法安裝操作員,那么其他這些東西只是一紙空文。

有三種替代方法可能有效。

  1. 在 CSI 插件方法標準化之前,NFS 掛載作為原生功能包含在 Kubernetes 中。仍然可以在非常普通的 Kubernetes 集群上使用它,并且可以訪問數據集群。

  2. 可以將容器集成到您的 pod 中,以非特權方式執行必要的 FUSE 掛載。這會有點痛苦,因為您必須將 FUSE 驅動程序與數據結構安裝分開并讓它工作。這會讓您看到 pod 內的數據結構。即使那樣,也不能保證 Kubernetes 或操作系統會允許它工作。

  3. 有一個未發布的 Go 文件系統客戶端直接使用低級數據結構 API。我們還沒有單獨發布。有關這方面的更多信息,人們應該直接聯系我(我的聯系信息無處不在......發送電子郵件至 ted.dunning hpe.com 或 gmail.com 有效)

  4. 數據結構允許您通過 S3 訪問數據。隨著 Ezmeral Data Fabric 7.0 版本的發布,此功能得到了重大改進以提供強大的性能,特別是因為您可以基本上無限制地擴展網關的數量(我聽說每個無狀態連接到網關的速度為 3-5GB/s,但是YMMV)。這將需要最少的麻煩,并且應該提供足夠的性能。您甚至可以像訪問 S3 對象一樣訪問文件。

[1] https://unix.stackexchange.com/questions/198590/what-is-a-bind-mount#:~:text=A%20bind%20mount%20is%20an,the%20same%20as%20the% 20原創。


查看完整回答
反對 回復 2022-10-31
  • 1 回答
  • 0 關注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號