天道酬勤,学无止境

distribute

Spark 中的 Hadoop DistributedCache 功能(Hadoop DistributedCache functionality in Spark)

问题 我正在寻找类似于 Spark 中 Hadoop 的分布式缓存的功能。 我需要一个相对较小的数据文件(带有一些索引值)存在于所有节点中,以便进行一些计算。 是否有任何方法可以在 Spark 中实现这一点? 到目前为止,我的解决方法是将索引文件作为正常处理进行分发和减少,这在我的应用程序中大约需要 10 秒。 之后,我将指示它作为广播变量的文件持久化,如下所示: JavaRDD<String> indexFile = ctx.textFile("s3n://mybucket/input/indexFile.txt",1); ArrayList<String> localIndex = (ArrayList<String>) indexFile.collect(); final Broadcast<ArrayList<String>> globalIndex = ctx.broadcast(indexVar); 这使程序能够理解变量globalIndex包含的内容。 到目前为止,它是一个对我来说可能没问题的补丁,但我认为它不是最好的解决方案。 对于相当大的数据集或大量变量,它仍然有效吗? 注意:我使用的是在位于多个 EC2 实例的独立集群上运行的 Spark 1.0.0。 回答1 请查看SparkContext.addFile()方法。 猜猜这就是你要找的。 回答2

2021-11-28 16:14:54    分类:技术分享    hadoop   apache-spark   distribute   distributed-cache

Hadoop DistributedCache functionality in Spark

I am looking for a functionality similar to the distributed cache of Hadoop in Spark. I need a relatively small data file (with some index values) to be present in all nodes in order to make some calculations. Is there any approach that makes this possible in Spark? My workaround so far consists on distributing and reducing the index file as a normal processing, which takes around 10 seconds in my application. After that, I persist the file indicating it as a broadcast variable, as follows: JavaRDD<String> indexFile = ctx.textFile("s3n://mybucket/input/indexFile.txt",1); ArrayList<String>

2021-11-23 16:14:32    分类:问答    hadoop   apache-spark   distribute   distributed-cache

我应该为 zlib 模块重新安装 python 吗? [复制](should I re-install python again for zlib module? [duplicate])

问题 这个问题在这里已经有了答案: 在 Python 3.3 Ubuntu 中安装分发(2 个回答) 8 年前关闭。 在Ubuntu系统中用python3.3.2安装distribute-0.6.49时,遇到错误 ....blablabla 然后是... "Compression requires the (missing) zlib module") RuntimeError: Compression requires the (missing) zlib module 我已经检查了以前需要安装 zlib 包的解决方案,但是在此之前我应该​​重新安装我的 python 吗? 我不能在上面安装 zlib 吗? 如果需要重新安装 python,在哪里可以找到带有 zlib 的 python 3.3,以便我可以像往常一样安装 python? 回答1 要使用zlib支持编译 Python,您需要安装 zlib1g-dev 包,以便 Python 可以找到头文件。 您需要重新安装源代码编译的 Python 才能完成此操作。 回答2 如果您正在运行 ubuntu,那么通常建议您使用包管理器中的包。 如果我没sudo apt-get install python3话,您可以使用sudo apt-get install python3获得 python 3 - 当前为 3.3.1 或使用软件中心

2021-11-19 02:35:42    分类:技术分享    python   python-3.x   zlib   distribute

分发 Python 模块 - Spark 与进程池(Distributing Python module - Spark vs Process Pools)

问题 我制作了一个从 PDF 中提取手写文本的 Python 模块。 提取有时会很慢(每个文件 20-30 秒)。 我有大约 100,000 个 PDF(有些有很多页面),我想对所有这些 PDF 运行文本提取。 基本上是这样的: fileNameList = ['file1.pdf','file2.pdf',...,'file100000.pdf'] for pdf in fileList: text = myModule.extractText(pdf) # Distribute this function # Do stuff with text 我们之前使用过一次 Spark(一个同事,不是我)将 SQL 数据库中的几百万个文件的索引分布到几个服务器的 Solr 中,但是在研究这个时,Spark 似乎更适合并行化大数据集,而不是分布单个任务。 为此,看起来 Python 的内置“进程池”模块会更好,我可以在具有 4 个 CPU 内核的单个服务器上运行它。 我知道 SO 更适用于特定问题,但只是在我走上完全错误的道路之前想要一些建议。 对于我的用例,我应该使用 Process Pools 坚持使用单个服务器,还是使用 Spark 将其拆分到多个服务器上? 回答1 这对于使用 Spark 是完全合理的,因为您可以通过将文件放在分布式存储上来跨多个执行程序分发文本提取任务。

2021-11-14 13:36:31    分类:技术分享    python   apache-spark   parallel-processing   pyspark   distribute

should I re-install python again for zlib module? [duplicate]

This question already has answers here: Installing distribute in Python 3.3 Ubuntu (2 answers) Closed 8 years ago. When installing distribute-0.6.49 with python3.3.2 in Ubuntu system, error encountered ....blablabla followed by... "Compression requires the (missing) zlib module") RuntimeError: Compression requires the (missing) zlib module I have checked previous solutions that I need to install zlib package, but Should I re install my python again before that? can't I install zlib over it? If re-installing of python needed, Where can I find python 3.3 with zlib already therein so that i can

2021-11-11 18:32:36    分类:问答    python   python-3.x   zlib   distribute

Distributing Python module - Spark vs Process Pools

I've made a Python module that extracts handwritten text from PDFs. The extraction can sometimes be quite slow (20-30 seconds per file). I have around 100,000 PDFs (some with lots of pages) and I want to run the text extraction on all of them. Essentially something like this: fileNameList = ['file1.pdf','file2.pdf',...,'file100000.pdf'] for pdf in fileList: text = myModule.extractText(pdf) # Distribute this function # Do stuff with text We used Spark once before (a coworker, not me) to distribute indexing a few million files from an SQL DB into Solr across a few servers, however when

2021-11-10 06:53:08    分类:问答    python   apache-spark   parallel-processing   pyspark   distribute

pip 是否处理来自 setuptools/distribute 源的 extras_requires?(Does pip handle extras_requires from setuptools/distribute based sources?)

问题 我有一个带有 setup.py 和 extras_requires 行的包“A”,例如: extras_require = { 'ssh': ['paramiko'], }, 还有一个依赖于 util 的包“B”: install_requires = ['A[ssh]'] 如果我在包 B 上运行python setup.py install ,它在引擎盖下使用setuptools.command.easy_install , extras_requires被正确解析,并安装了paramiko。 但是,如果我运行pip /path/to/B或pip hxxp://.../b-version.tar.gz ,则会安装包 A,但未安装 paramiko。 因为 pip “从源代码安装”,我不太确定为什么这不起作用。 它应该调用 B 的 setup.py,然后解析和安装 B 和 A 的依赖项。 这可以用 pip 吗? 回答1 自 2012 年 2 月发布的 pip 1.1(提出此问题一年后)开始支持此功能。 回答2 我们使用setup.py和pip来管理我们的包的开发依赖项,但您需要更新版本的pip (我们目前使用的是 1.4.1)。 #!/usr/bin/env python from setuptools import setup from myproject import _

2021-10-20 22:28:49    分类:技术分享    python   setuptools   pip   distribute

为什么“sc.addFile”和“spark-submit --files”没有将本地文件分发给所有工作人员?(Why are “sc.addFile” and “spark-submit --files” not distributing a local file to all workers?)

问题 我有一个 CSV 文件“test.csv”,我试图将其复制到集群上的所有节点。 我有一个 4 节点 apache-spark 1.5.2 独立集群。 有 4 个工作器,其中一个节点也具有主/驱动程序以及工作器。 如果我运行: $SPARK_HOME/bin/pyspark --files=./test.csv或从 REPL 界面内执行sc.addFile('file://' + '/local/path/to/test.csv') 我看到火花日志如下: 16/05/05 15:26:08 INFO Utils: Copying /local/path/to/test.csv to /tmp/spark-5dd7fc83-a3ef-4965-95ba-1b62955fb35b/userFiles-a4cb1723-e118-4f0b-9f26-04be39e5e28d/test.csv 16/05/05 15:26:08 INFO SparkContext: Added file file:/local/path/to/test.csv at http://192.168.1.4:39578/files/test.csv with timestamp 1462461968158 在主/驱动程序节点上的单独窗口中,我可以使用 ls 轻松定位文件,即( ls -al /tmp

2021-10-07 06:34:21    分类:技术分享    file   apache-spark   cluster-computing   distribute

在字节码预编译+所有必要的库中分发python脚本(Distribute a python script in bytecode precompiled + all necessary libraries)

问题 我为我的客户在 python 中制作了一个(一个文件)脚本,该程序是成功的,现在它需要分发给我的 12 名客户员工。 我制作的脚本使用了很多库(导入),其中一些根本不流行,所以这里有一个问题: 有没有办法分发我已经用字节码编译的程序? 因此,用户只需执行“python myProgram.pyc”或“myProgram.pyc”(如果它具有 +x 属性)就可以运行它,我知道通过在 JAR 文件中编译库,这在 Java 中是完全可能的,是python有类似的东西吗? 请不要推荐我 py2exe 因为它离我想要的很远,无论是其他类似的工具,我只想分发一个包,其中包含已经在字节码中预编译的所有必要的库,因此最终用户无需担心安装 libs、pip、github、自定义东西或任何东西。 希望您能帮助我,否则我将不得不将整个项目移植到 Java。 回答1 如果您的客户员工机器是 Windows,请使用 py2exe http://py2exe.org/ 如果 Mac 使用 py2app https://pypi.python.org/pypi/py2app/ cx_Freeze http://cx-freeze.sourceforge.net/ 是跨平台的,它应该吐出可以在安装了 Python 的任何操作系统上运行的可执行文件。 PyInstaller http://www

2021-09-30 17:24:06    分类:技术分享    python   bytecode   distribute   debian-based

Python 发行版的用例是什么?(What are the use cases for a Python distribution?)

问题 我正在为我正在编写的 Python 包开发一个发行版,以便我可以将它发布到 PyPI 上。 这是我第一次使用 distutils、setuptools、distribute、pip、setup.py 等等,我在学习曲线上有点挣扎,这比我预期的要陡峭一些:) 我在通过在 setup.py 的data_files参数中指定将我的一些测试数据文件包含在 tarball 中遇到了一些麻烦,直到我在这里遇到了一个不同的帖子,该帖子将我指向MANIFEST.in文件。 就在这时,我突然意识到,你在 tarball/zip 中包含的内容(使用 MANIFEST.in)以及在用户执行 easy_install 或其他操作时安装在用户 Python 环境中的内容(基于你在setup.py指定的内容)是两个非常不同的事情; 一般来说,tarball 中的内容比实际安装的要多得多。 这立即引发了我的代码嗅觉,并意识到发行版必须有多个用例; 我一直专注于我真正参与的唯一一个,使用 easy_install 或 pip 安装一个库。 然后我意识到我正在开发工作产品,而我对我正在开发的最终用户只有部分了解。 所以我的问题是:“除了在自己的 Python 环境中安装 Python 发行版之外,还有哪些用例?我还为谁服务于这个发行版,他们最关心什么?” 以下是我尚未弄清楚的一些与答案有关的工作问题:

2021-08-11 06:33:53    分类:技术分享    python   pip   setuptools   distutils   distribute