我有一个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内存是一种好的做法?
感谢您的帮助