采用Python来访问Hadoop HSFS存储达成文件的操作
发布时间:2021-11-21 15:30:40 所属栏目:教程 来源:互联网
导读:用python访问hdfs是个很头疼的事情。 这个是pyhdfs的库 import pyhdfs fs = pyhdfs.connect(192.168.1.1, 9000) pyhdfs.get(fs, /rui/111, /var/111) f = pyhdfs.open(fs, /test/xxx, w) pyhdfs.write(fs, f, fuck gfwn) pyhdfs.close(fs, f) pyhdfs.disco
用python访问hdfs是个很头疼的事情。 这个是pyhdfs的库 import pyhdfs fs = pyhdfs.connect("192.168.1.1", 9000) pyhdfs.get(fs, "/rui/111", "/var/111") f = pyhdfs.open(fs, "/test/xxx", "w") pyhdfs.write(fs, f, "fuck gfwn") pyhdfs.close(fs, f) pyhdfs.disconnect(fs) pyhdfs的安装过程很吐血 svn checkout http://libpyhdfs.googlecode.com/svn/trunk/ libpyhdfs cd libpyhdfs cp /usr/lib/Hadoop-0.20/hadoop-core-0.20.2-cdh3u0.jar lib/hadoop-0.20.1-core.jar cp /usr/lib/hadoop-0.20/lib/commons-logging-1.0.4.jar lib/ cp /usr/lib/libhdfs.so.0 lib/ ln –s lib/libhdfs.so.0 lib/libhdfs.so python setup.py install --prefix="/usr/local" 还有是把 selinux也给关了 不然会出现莫名的问题 如果出现 /usr/lib/jvm/java-6-sun/include/jni.h:27:20: error: jni_md.h: No such file or directory 搜下find / -name jni.h 然后修改#include "jni_md.h" 为 #include "linux/jni_md.h" 这个是用pydoop的库 import pydoop.hdfs as hdfs with hdfs.open('/user/myuser/filename') as f: for line in f: print(line) 我现在使用的方法是用subprocess 也挺行~ 需要把很多自己常用的指定都封装成库 cat = subprocess.Popen(["hadoop", "fs", "-cat", "/path/to/myfile"], stdout=subprocess.PIPE) for line in cat.stdout: print line ![]() (编辑:我爱故事小小网_铜陵站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |