我有一個15節點羣集,我計劃用它來處理9000萬行(Hive表)/每天範圍內的數據。該數據是存在於節點作爲一個蜂房表的一個,我使用類似下面的命令,如何使用羣集中的多個節點來處理大量數據 - python
with hive.connect(host = 'hostname of that node', port= 10000, authMechanism='LDAP', user='username', password='pass') as conn:
with conn.cursor() as cur:
cur.execute('select * from tablename')
do_not_touch_this_data = pd.DataFrame(cur.fetch())
這裏的問題是查詢運行時間超過8小時,加載所有的數據到蟒蛇。這是因爲程序包會獲取所有數據並將其加載到此特定節點的內存中。即使加載後,我也無法運行count/EDA等基本命令。每個命令花費很多時間。這是因爲15節點羣集中的此特定節點的128 GB RAM會過載。
我想利用其他節點的內存以及讀取/處理/執行數據的EDA。任何人都可以提出一種在python中使用這些節點的方法,這樣,命令運行得更快,我可以使用所有節點?我是分佈式計算的初學者,我猜應該有一種方法來利用所有的節點。另外,是否將所有數據讀入python內存是一種好的做法?
感謝您的幫助