问题标签 [apache-spark]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spark 集群在较大的输入上失败,适用于小型
我在玩 Spark。它是来自网站的默认预构建发行版 (0.7.0),具有默认配置、集群模式、一名工作人员(我的本地主机)。我阅读了有关安装的文档,一切似乎都很好。
我有一个 CSV 文件(各种大小,1000 - 100 万行)。如果我用小输入文件(例如 1000 行)运行我的应用程序,一切都很好,程序在几秒钟内完成并产生预期的输出。但是当我提供更大的文件(100.000 行或 100 万行)时,执行失败。我试图挖掘日志,但没有太大帮助(它重复整个过程大约 9-10 次,然后退出失败。此外,还有一些与从某个空源获取失败有关的错误)。
第一个 JavaRDD 返回的结果 Iterable 对我来说是可疑的。如果我返回一个硬编码的单例列表(如 res.add("something"); return res;),那么一切都很好,即使有一百万行。但是,如果我添加我想要的所有键(28 个长度为 6-20 个字符的字符串),则该过程仅在大输入时才会失败。问题是,我需要所有这些键,这是实际的业务逻辑。
我正在使用 Linux amd64,四核,8GB 内存。最新的 Oracle Java7 JDK。火花配置:
我必须提到,当我启动程序时,它说:
这是我的程序。它基于 JavaWordCount 示例,进行了最少的修改。
scala - 在没有通过 SSH 访问互联网的远程节点上使用 SBT
我正在尝试在远程机器上使用 Scala 编写Spark程序,但该机器无法访问互联网。由于我使用的是 Hadoop 的预构建版本,因此我能够运行预编译的示例:
[user@host spark-0.7.2]$ ./run spark.examples.LocalPi
但我无法编译任何引用机器上火花的东西:
通常,我会使用 SBT 来处理任何依赖项,但机器无法访问 Internet,并且无法通过 SSH 隧道连接 Internet。
是否可以在无法访问 Internet 的远程计算机上编译 SBT 项目?或者我如何手动将 Spark 依赖项链接到 Scala 编译器。
cassandra - 比较 Cassandra 的 CQL、Spark/Shark 查询与 Hive/Hadoop(DSE 版本)
我想听听您对使用 CQL 和内存查询引擎 Spark/Shark 的想法和经验。据我所知,CQL 处理器在每个节点上的 Cassandra JVM 中运行。与 Cassandra 集群相连的 Shark/Spark 查询处理器在一个单独的集群中运行。此外,Datastax 有 DSE 版本的 Cassandra,它允许部署 Hadoop/Hive。问题是在哪个用例中我们会选择一个特定的解决方案而不是另一个。
scala - Spark 配置:SPARK_MEM 与 SPARK_WORKER_MEMORY
在spark-env.sh
中,可以配置以下环境变量:
如果我用这个启动一个独立的集群:
我可以在 Spark Master UI 网页上看到所有工作人员都从 3GB RAM 开始:
但是,我指定22g
为SPARK_WORKER_MEMORY
spark-env.sh
我对此有些困惑。可能我不明白“节点”和“工人”之间的区别。
有人可以解释两种内存设置之间的区别以及我可能做错了什么吗?
我正在使用 spark-0.7.0。另请参阅此处了解更多配置信息。
scala - Spark 独立模式:工作人员未正确停止
当在 spark (0.7.0) 中停止整个集群时
并非所有工人都被正确停止。更具体地说,如果我想重新启动集群
我得到:
在 host4 和 host7 上,确实有一个 StandaloneExecutorBackend 仍在运行:
简单地重复
不幸的是也没有阻止工人。Spark 只是告诉我工人即将停止:
不spark.deploy.master.Master
停止
然而,
另有说法。有人知道如何stop-all.sh
正常工作吗?谢谢。
scala - Spark 独立模式:连接到 127.0.1.1:拒绝
我在独立模式下使用 Spark 0.7.2 和以下驱动程序来处理 ~90GB(压缩:19GB)的日志数据,使用 7 个工作人员和 1 个不同的主服务器:
在所有ShuffleMapTasks
阶段 1 完成后:
它提交阶段 0:
经过一些序列化后,它会打印
在此之后,什么都没有发生,也top
表明工人现在都处于闲置状态。如果我查看工作机器上的日志,每台机器都会发生同样的事情:
然后,对于这些“启动连接”尝试中的每一个,它都会向每个工作人员抛出相同的错误(以 host27 的日志为例,并且仅显示第一次出现的错误):
为什么会这样?工人之间似乎可以很好地交流,唯一的问题似乎是他们想给自己发送消息;在上面的例子中,host27 尝试向自己发送 6 条消息,但失败了 6 次。向其他工作人员发送消息工作正常。有人有想法吗?
编辑:也许它与使用 127.0 的火花有关。1 .1 而不是 127.0。0 .1?
/etc/hosts
如下所示:
scala - Spark Standalone Mode:更改 HDFS 输出的复制因子
在我hdfs-site.xml
的配置中,复制因子为 1。
但是,将我的结果写入 hdfs 时:
结果自动复制了 3 倍,覆盖了我自己的复制因子。为了节省一些空间,我希望输出的复制因子也为 1。
spark如何告诉HDFS使用复制因子1?
apache-spark - scala和python之间的API兼容性?
我已经阅读了十几页文档,似乎:
我可以跳过学习 scala 部分
API 完全在 python 中实现(我不需要学习 scala 任何东西)
交互模式与 scala shell 一样完整和快速,故障排除同样容易
仍然会导入像 numpy 这样的 python 模块(没有残缺的 python 环境)
是否存在无法实现的空缺区域?
scala - Spark 独立模式:如何压缩写入 HDFS 的 spark 输出
与我的另一个问题相关,但不同:
如果我将 RDD 保存到 HDFS,我如何告诉 spark 用 gzip 压缩输出?在 Hadoop 中,可以设置
并选择压缩算法
我将如何在火花中做到这一点?这也会起作用吗?
编辑:使用 spark-0.7.2
apache-spark - 快速 Hadoop 分析(Cloudera Impala vs Spark/Shark vs Apache Drill)
我想对 HDFS 中的数据进行一些“近乎实时”的数据分析(类似 OLAP)。
我的研究表明,与 Apache Hive 相比,上述三个框架报告了显着的性能提升。有没有人对其中任何一个有一些实际经验?不仅关乎性能,还关乎稳定性?