CentOS部署Splicemachine社区版运行Demo遇ERROR 08006求助
排查SpliceMachine Demo数据导入失败的问题
我帮你拆解一下你遇到的问题,从日志里的核心报错Yarn application has already ended来看,这是导致后续网络连接错误的根源——Yarn上的Spark作业直接崩溃了,才引发了后续的通信中断。咱们从这几个方向逐步排查:
1. 先查Yarn和Spark的资源配置
SpliceMachine的导入任务依赖Spark on Yarn,资源不够是这类问题的高发原因:
- 打开Yarn的配置文件
yarn-site.xml,确认yarn.nodemanager.resource.memory-mb(NodeManager可用内存)和yarn.scheduler.maximum-allocation-mb(单任务最大可申请内存)的设置,建议至少给NodeManager分配4G以上内存,且后者要大于Spark作业申请的内存值 - 再看Spark的
spark-defaults.conf,检查spark.driver.memory和spark.executor.memory,别让它们超过Yarn允许的上限,比如服务器只有8G内存的话,别把executor内存设成6G,留足系统和其他服务的空间
2. 深挖日志找具体崩溃原因
你提到derby.log和yarn.log有错误,这两个日志是关键:
- 在
derby.log里搜完整的SparkException栈信息,能找到Yarn应用启动失败的具体诱因——比如内存溢出、依赖包缺失、文件权限不对都有可能 - 用Yarn命令直接拉取失败应用的日志:
yarn logs -applicationId <你的应用ID>,如果不知道应用ID,先跑yarn application -list -appStates FAILED看最近失败的任务列表,重点看Application Master的启动日志,有没有权限报错或者内存不足的提示
3. 验证导入文件的合法性和权限
你的导入命令用了/vagrant/splicemachine/demodata/data/theader.csv,要确认:
- 运行SpliceMachine的用户(比如部署时用的
splice用户)对这个路径和文件有读权限,可以用sudo -u splice cat /vagrant/splicemachine/demodata/data/theader.csv测试一下 - 打开文件看看有没有损坏,确认分隔符确实是逗号
,,日期格式也符合yyyy-MM-dd的要求,别出现格式错乱的行
4. 重启服务清理残留状态
有时候服务启动时的异常会留下残留进程,导致后续任务失败:
- 先停掉所有SpliceMachine服务:
splice stop - 清理Yarn上的残留应用:
yarn application -kill <残留的应用ID>(从之前的FAILED列表里找) - 重新启动服务:
splice start,等所有服务(尤其是Yarn ResourceManager和Spark)完全就绪后,再重新执行导入脚本
5. 调整导入命令的资源参数
如果确实是内存不足导致的,可以直接在IMPORT_DATA调用里指定Spark资源配置:
call SYSCS_UTIL.IMPORT_DATA( 'SPLICE' , 'T_HEADER' , null , '/vagrant/splicemachine/demodata/data/theader.csv' , ',' , null , null , 'yyyy-MM-dd' , null , 0 , null , 'spark.executor.memory=2G,spark.driver.memory=1G' , null );
根据你的服务器实际配置调整内存数值,别超过Yarn允许的范围就行。
内容的提问来源于stack exchange,提问作者Ekan
相关产品推荐
相关产品推荐

