Pydoop在AWS的Ubuntu上Segmentation fault 错误处理

标签: PydoopHadoopPythonAWS
250人阅读 评论(0) 收藏 举报
分类:

问题描述

平台用Python开发,使用pydoop对HDFS文件进行操作,当迁移到AWS时,出现Segmentation Fault,
通过排查,确定问题是因为调用了Pydoop对hdfs的初始化过程中出现的问题。
相关代码如下:

from pydoop.hdfs import fs;
print fs.hdfs()

通过gdb调试,错误信息如下:
这里写图片描述

问题原因

通过查阅资料,初步判断是由于堆栈溢出导致的异常,通过查看native_core_hdfs源码,发现该代码会从LIBHDFS_OPTS读取JVM配置信息,但是环境中缺少该变量的定义.通过添加该变量,问题得到解决

解决方案

1,在环境中增加下列变量的配置

export LIBHDFS_OPTS="-server -Xss2m -Xms2000m -Xmx2000m -Xmn800m -XX:PermSize=64m -XX:MaxPermSize=256m"

2,因为Spark中也有相关操作,所以还需要在spark/conf/spark-env.sh中增加该变量的配置:

export LIBHDFS_OPTS="-server -Xss2m -Xms2000m -Xmx2000m -Xmn800m -XX:PermSize=64m -XX:MaxPermSize=256m"
0
0

猜你在找
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:780406次
    • 积分:9957
    • 等级:
    • 排名:第1664名
    • 原创:224篇
    • 转载:95篇
    • 译文:6篇
    • 评论:164条
    博客专栏
    最新评论