我有一个15节点的集群,我计划使用它来处理每天9000万行(配置单元表)/的数据。数据以配置单元表的形式存在于其中一个节点中,我使用的命令如下所示: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个多小时,以便将所有数据加载到python中。这是因为包接受所有数据并将其加载到特定节点的内存中。即使在加载之后,我甚至不能运行像count/EDA这样的基本命令。每个命令都要花很多时间。这是因为15节点集群中这个特定节点的128 GB RAM过载。在
我还想利用其他节点的内存来读取/处理/处理数据。有人能推荐一种在python中使用这些节点的方法吗?这样,命令运行得更快,我就可以使用所有节点了?我是分布式计算的初学者,我猜应该有一种方法可以利用所有的节点。另外,将所有数据读入python内存是否是一个好的实践?在
谢谢你的帮助