如何使用集群中的多个节点处理海量数据python

2024-04-19 05:25:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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内存是否是一个好的实践?在

谢谢你的帮助


Tags: 数据方法内存命令利用节点aswith
1条回答
网友
1楼 · 发布于 2024-04-19 05:25:03

分布式系统是一个大而复杂的主题,最好留给专家来处理。你用的是Pyhon,熊猫和蜂巢。您应该切换到Spark,它有自己的DataFrame抽象,类似于Pandas,支持从配置单元表中读取数据,但它将为您处理跨服务器的数据分发。你应该能够很容易地把你在熊猫身上做的任何操作直接翻译成Spark。在

相关问题 更多 >