使用最新的DSE 6.0.1。
所有7个节点的RAM为64G,并且配置为使用32G的MAX。当我们运行top
时,cassandra进程将占用大约61%的RAM。
我们启动pyspark shell并针对cassandra表运行简单计数查询。
几秒钟后,我们得到了很多:
警告2018-07-19 10:52:47,983 org.apache.spark.scheduler.TaskSetManager:在阶段0.0中丢失任务2.0 (TID 1,10.5.7.56,执行者3):ExecutorLostFailure(执行者3退出 由正在运行的任务之一引起)原因:命令已退出,代码为1 警告2018-07-19 10:52:47,984 org.apache.spark.scheduler.TaskSetManager:在阶段0.0中丢失任务69.0 (TID 78,10.5.7.56,执行者3):ExecutorLostFailure(执行者3 由正在运行的任务之一导致退出)原因:命令退出 代码1 WARN 2018-07-19 10:52:47,984 org.apache.spark.scheduler.TaskSetManager:在阶段0.0中丢失任务82.0 (TID 99,10.5.7.56,执行者3):ExecutorLostFailure(执行者3 由正在运行的任务之一导致退出)原因:命令退出 代码1 WARN 2018-07-19 10:52:47,984 org.apache.spark.scheduler.TaskSetManager:在阶段0.0中丢失任务36.0 (TID 36,10.5.7.56,执行者3):ExecutorLostFailure(执行者3 由正在运行的任务之一导致退出)原因:命令退出 代码1 WARN 2018-07-19 10:52:47,984 org.apache.spark.scheduler.TaskSetManager:在阶段0.0中丢失任务59.0 (TID 57,10.5.7.56,执行者3):ExecutorLostFailure(执行者3 由正在运行的任务之一导致退出)原因:命令退出 代码1 WARN 2018-07-19 10:52:47,985 org.apache.spark.scheduler.TaskSetManager:在阶段0.0中丢失任务22.0 (TID 15,10.5.7.56,执行者3):ExecutorLostFailure(执行者3 由正在运行的任务之一导致退出)原因:命令退出 代码1 [阶段 0:================================================ ===>(1406 + 19)/ 1425]错误2018-07-19 10:53:18,165 org.apache.spark.scheduler.TaskSchedulerImpl:执行器7丢失 10.5.7.56:命令退出,代码为137 WARN 2018-07-19 10:53:18,166 org.apache.spark.scheduler.TaskSetManager:阶段丢失了任务908.0 0.0(TID 932、10.5.7.56,执行程序7):ExecutorLostFailure(由于正在运行的任务之一导致执行程序7退出)原因:命令退出 代码137 WARN 2018-07-19 10:53:18,166 org.apache.spark.scheduler.TaskSetManager:阶段丢失任务1377.0 0.0(TID 1240、10.5.7.56,执行程序7):ExecutorLostFailure(由于正在运行的任务之一导致执行程序7退出)原因:命令退出 代码137 WARN 2018-07-19 10:53:18,167 org.apache.spark.scheduler.TaskSetManager:阶段中丢失任务1378.0 0.0(TID 1243、10.5.7.56,执行程序7):ExecutorLostFailure(由于正在运行的任务之一而导致执行程序7退出)原因:命令退出 代码137 WARN 2018-07-19 10:53:18,167 org.apache.spark.scheduler.TaskSetManager:阶段丢失任务940.0 0.0(TID 965、10.5.7.56,执行程序7):ExecutorLostFailure(由于正在运行的任务之一而导致执行程序7退出)原因:使用以下命令退出了命令 代码137 WARN 2018-07-19 10:53:18,167 org.apache.spark.scheduler.TaskSetManager:阶段丢失任务864.0 0.0(TID 911、10.5.7.56,执行程序7):ExecutorLostFailure(由于正在运行的任务之一而导致执行程序7退出)原因:使用以下命令退出了命令 代码137
那时pyspark作业失败,并且所有节点上的所有cassandra进程的ram消耗都上升到大约85%,并且即使从pyspark shell退出后也永远不会下降。
释放RAM的唯一方法是重新启动每个进程。
更新:
nodetool状态输出:
Datacenter: Cassandra
=====================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 10.5.7.53 2.1 TiB 32 ? 8c441d54-c5ae-42c0-819a-6d6b597c9903 rack1
UN 10.5.7.52 1.79 TiB 32 ? efdc8d20-72a2-4b99-a88c-4a8c5ed6be93 rack1
UN 10.5.7.55 1.5 TiB 32 ? 3d72fb6b-a45f-46af-abdd-b8b7b13873cf rack1
UN 10.5.7.54 2.02 TiB 32 ? 886849ff-90ac-4ed0-940e-92d92a54cc49 rack1
UN 10.5.7.51 1.99 TiB 32 ? 7834b960-f074-4139-82de-9444320130d1 rack1
UN 10.5.7.57 1.72 TiB 32 ? bc195dbd-4449-423b-8527-5cf9669c1bd3 rack1
UN 10.5.7.56 1.89 TiB 32 ? 51e2ad43-fb44-4729-a55f-437ce5b1f505 rack1