- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在读取目录中所有文件的第一行,在本地它工作正常,但在 EMR 上,此测试在卡在大约 200-300 个文件时失败。ps -eLF 还显示子项增加到 3000,甚至在第 200 行打印。
这是 EMR 读取最大字节数的一些错误吗?pydoop版本pydoop==0.12.0
import os
import sys
import shutil
import codecs
import pydoop.hdfs as hdfs
def prepare_data(hdfs_folder):
folder = "test_folder"
copies_count = 700
src_file = "file"
#1) create a folder
if os.path.exists(folder):
shutil.rmtree(folder)
os.makedirs(folder)
#2) create XXX copies of file in folder
for x in range(0, copies_count):
shutil.copyfile(src_file, folder+"/"+src_file+"_"+str(x))
#3) copy folder to hdfs
#hadoop fs -copyFromLocal test_folder/ /maaz/test_aa
remove_command = "hadoop fs -rmr "+ hdfs_folder
print remove_command
os.system(remove_command)
command = "hadoop fs -copyFromLocal "+folder+" "+ hdfs_folder
print command
os.system(command)
def main(hdfs_folder):
try:
conn_hdfs = hdfs.fs.hdfs()
if conn_hdfs.exists(hdfs_folder):
items_list = conn_hdfs.list_directory(hdfs_folder)
for item in items_list:
if not item["kind"] == "file":
continue
file_name = item["name"]
print "validating file : %s" % file_name
try:
file_handle = conn_hdfs.open_file(file_name)
file_line = file_handle.readline()
print file_line
file_handle.close()
except Exception as exp:
print '####Exception \'%s\' in reading file %s' % (str(exp), file_name)
file_handle.close()
continue
conn_hdfs.close()
except Exception as e:
print "####Exception \'%s\' in validating files!" % str(e)
if __name__ == '__main__':
hdfs_path = '/abc/xyz'
prepare_data(hdfs_path)
main(hdfs_path)
最佳答案
我建议使用 subprocess
模块来读取第一行,而不是 pydoop
的 conn_hdfs.open_file
import subprocess
cmd='hadoop fs -cat {f}|head -1'.format(f=file_name)
process=subprocess.Popen(cmd, shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
stdout, stderr=process.communicate()
if stderr!='':
file_line=stdout.split('\n')[0]
else:
print "####Exception '{e}' in reading file {f}".format(f=file_name,e=stdout)
continue
关于python - Pydoop 卡在 HDFS 文件的 readline 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28692535/
我是数据科学和大数据框架的新手。 可以说,我在 CSV 中有一个 DataSet 输入。 我从谷歌和其他资源中发现了关于数据分析师和数据科学家日常工作的信息, 一旦用户获得 DataSet,首先将在
我已经设置了一个单节点 Hadoop 1.2.1 集群并尝试运行此脚本: pydoop script transpose.py matrix.txt t_matrix 脚本不返回任何内容,作业处于挂起
我想在 Hadoop 平台上处理图像(最有可能是大尺寸的图像),但是我对于从上述2个界面中选择哪一个感到困惑,特别是对于仍然是Hadoop初学者的人。考虑到需要将图像分成块以在工作机之间分配处理并在处
当我在 Ubuntu 16.0.4 中安装 pydoop 时,出现如下错误: ~$ pip install pydoop Collecting pydoop Using cached pydoop
我一直在努力安装 pydoop。我按照此页面上的说明进行操作 http://crs4.github.io/pydoop/installation.html 。 当我运行 pip install pyd
我在同一台机器上安装了带有 HDP 和 iPython/Jupyter 的 Ubuntu O/S。我能够使用 Python2 内核通过 Jupyter notebook 运行各种命令。 但是我在 Ju
我将如何使用 Pydoop在 Amazon EMR 上? 我尝试用谷歌搜索这个主题但无济于事:有可能吗? 最佳答案 我终于搞定了。一切都发生在主节点上...作为用户 hadoop ssh 到该节点 你
我已经使用 Celery 为项目设置了两个文件和 Pydoop , tasks.py 和 HDFStorage.py # tasks.py from celery import Celery from
当我回显 $JAVA_HOME 时,我得到了 Java 的路径。 Hadoop 也在运行,但是 pydoop 安装由于这个错误而失败。 Traceback (most recent call last
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我看到的大多数设置说明都很冗长。是否有一组类似脚本的命令,我们只需执行这些命令即可在 Amazon EC2 上的 Ubuntu 实例上设置 Hadoop 和 Pydoop? 最佳答案 另一种解决方案是
我正在读取目录中所有文件的第一行,在本地它工作正常,但在 EMR 上,此测试在卡在大约 200-300 个文件时失败。ps -eLF 还显示子项增加到 3000,甚至在第 200 行打印。 这是 EM
我在同一个谷歌云平台上有 hdfs 集群和 python。我想从 python 访问 hdfs 集群中存在的文件。我发现使用 pydoop 可以做到这一点,但我可能正在努力为它提供正确的参数。以下是我
我正在使用 pydoop 在 pyspark 中读取和写入文件。我想以 gzip 格式编写作业输出。我当前的代码如下所示: def create_data_distributed(workerNum,
我正在尝试通过以下命令安装 pydoop pip3.4 install pydoop 安装因以下错误而中断 Complete output from command python setup.py e
我在安装 pydoop 包时遇到这个错误: root@ubuntu:~# pip install pydoop Downloading/unpacking pydoop Downloading p
我安装了 Pydoop 并正在尝试运行 MapReduce 作业。只是为了试运行,我尝试执行字数统计示例 wordcount_minimal.py 和 wordcount_full.py。他们都卡在
我写了一个将本地文件复制到 HDFS 的 python 脚本。 在集群的所有节点中将 python 版本 2.6 升级到 2.7。安装pydoop-1.0版本并使用CDH 5.4 如果我在命令行中运行
我正在尝试在运行 CDH 5.3.0 的 Linux 服务器上升级到 pydoop 1.0.0-rc1。我能够在另一个运行 CDH 5.1.2 的环境中完成安装。我运行命令“pip install -
目标:使用 pydoop 从我的笔记本电脑读取存储在 HDFS 中的远程文件。我用的是pycharm专业版。我正在使用 Cloudera CDH5.4 我的笔记本电脑上的 pyCharm 配置:在项目
我是一名优秀的程序员,十分优秀!