我正在研究Spark SQL程序,我收到以下异常:
16/11/07 15:58:25 ERROR yarn.ApplicationMaster: User class threw exception: java.util.concurrent.TimeoutException: Futures timed out after [3000 seconds]
java.util.concurrent.TimeoutException: Futures timed out after [3000 seconds]
at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219)
at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223)
at scala.concurrent.Await$$anonfun$result$1.apply(package.scala:190)
at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
at scala.concurrent.Await$.result(package.scala:190)
at org.apache.spark.sql.execution.joins.BroadcastHashJoin.doExecute(BroadcastHashJoin.scala:107)
at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:132)
at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:130)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:150)
at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:130)
at org.apache.spark.sql.execution.Project.doExecute(basicOperators.scala:46)
at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:132)
at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:130)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:150)
at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:130)
at org.apache.spark.sql.execution.Union$$anonfun$doExecute$1.apply(basicOperators.scala:144)
at org.apache.spark.sql.execution.Union$$anonfun$doExecute$1.apply(basicOperators.scala:144)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
at scala.collection.immutable.List.foreach(List.scala:381)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:245)
at scala.collection.immutable.List.map(List.scala:285)
at org.apache.spark.sql.execution.Union.doExecute(basicOperators.scala:144)
at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:132)
at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:130)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:150)
at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:130)
at org.apache.spark.sql.execution.columnar.InMemoryRelation.buildBuffers(InMemoryColumnarTableScan.scala:129) …Run Code Online (Sandbox Code Playgroud) 我正在使用Spark SQL 1.6.1并且正在执行一些连接.
看看火花UI我看到有一些工作描述"在ThreadPoolExecutor.java:1142运行"
我想知道为什么一些Spark工作会得到这种描述?
这是我的第一个问题所以请耐心等待我:)
我正在尝试创建一个服务:
我在虚拟机和Tomcat7上使用spring运行它.我会事先道歉并提到我对Tomcat很新
无论如何,我期待很多并发GET请求到这个服务(成千上万的同时请求)我基本上想要实现的是尽可能地使这个服务可扩展(如果这是不可能的那么至少一个可以处理数十万个并发请求的服务)
我一直在阅读A LOT关于服务中的异步请求处理,特别是在Tomcat中,但我有些事情对我来说仍然不清楚:
我为同样的问题提出了很多问题而道歉,但是我和我的同事们争论这些事情一个多星期没有任何具体的答案.
我还有一个更普遍的问题:您认为使我描述的服务具有可扩展性的最佳方法是什么?(暂时不要添加更多机器),您是否可以针对目标解决方案发布任何示例或参考?
我发布了更多我一直在关注的链接链接,但我目前的声誉不允许.我将非常感谢任何可以理解的参考文献或具体的例子,我很乐意澄清任何相关问题
干杯!
我正在为大负载(~1M HTTP请求)评估AsyncHttpClient.对于每个请求,我想使用AsyncCompletionHandler调用一个回调,它只会将结果插入阻塞队列
我的问题是:如果我在紧密循环中发送异步请求,AsyncHttpClient将使用多少个线程?(我知道你可以设置最大值,但显然你冒了丢失请求的风险,我在这里看到了)
我目前正在使用这些版本的Netty实现:
如果在以后的版本中有任何优化,我不介意使用其他版本
编辑:
我读到Netty使用reactor模式来响应HTTP响应,这意味着它分配了很少的线程来充当选择器.这也意味着分配的线程数不会随着请求量的增加而增加.但是,这与设置最大连接数的需要相矛盾.
谁能解释我错过的东西?
提前致谢
我在Mac上使用Python,Jupyter,Selenium webdriver和无头镀铬(带Canary).
我写了一个脚本来刮擦一个非常古老的网站,为了从该网站下载文件,我需要点击几个按钮,最终将我带到一个按钮,一旦点击它就下载一个CSV文件
问题是当无头镀铬尝试下载目标文件时,它会暂停并且什么也不做(即不下载所需的文件),即使脚本已经完成运行(是的,我确实在脚本结束时将其关闭)
我试过了:
driver.execute_script(js_that_changes_plugins_and_langs)但我不太确定如何检查它是否实际执行它(它仍然无法正常工作)我面临的问题:
我提供网站网址时没有任何问题,但是:
我需要它无头而不是普通的chrome,因为我们想要运行代码的机器非常弱并且无法运行chrome GUI
所以我的问题是:有谁知道这可能是什么问题?或者至少,我该如何调试它?
这或多或少是我正在使用的代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
def enable_download_in_headless_chrome(driver, download_dir):
"""
there is currently a "feature" in chrome where
headless does not allow file download: https://bugs.chromium.org/p/chromium/issues/detail?id=696481
This method is a hacky work-around until the official chromedriver support for this.
Requires chrome version 62.0.3196.0 or above.
"""
# add missing support for chrome "send_command" to selenium …Run Code Online (Sandbox Code Playgroud) 我正在尝试测试我的程序的一部分,它执行数据帧的转换我想测试这些数据帧的几个不同变体,这排除了从文件中读取特定DF的选项
所以我的问题是:
我之前显然用谷歌搜索过,但找不到任何非常有用的东西.我找到的更有用的链接包括:
如果示例/教程在Scala中会很棒,但我会采用你所拥有的任何语言
提前致谢
unit-testing scala apache-spark apache-spark-sql spark-dataframe
我有点抽象的问题.我最近一直在和Scala一起使用Apache Spark(也是Streaming和SQL).我的大多数Spark作业基本上将RDD/Dataframe从一个类移动到另一个类,其中每个类对输入执行一些转换.
我最近也在阅读有关Domain Driven Design的内容,这让我想到了如何使用DDD来模拟我的Spark程序.我得说我发现使用DDD概念来模拟Spark代码要比非Spark代码更难(可能是因为它主要执行转换或IO).我可以考虑如何创建无处不在的语言,而不是如何在Spark代码本身中实际应用它.
我试过谷歌搜索如何使用Spark与DDD,但无法找到任何关于它,所以我想知道:
我希望这是一个合理的问题 - 如果没有,我道歉
提前致谢
scala apache-spark spark-streaming apache-spark-sql spark-dataframe
我有一个Spark作业,从配置文件中读取数据.此文件是类型安全的配置文件.
读取配置的代码如下所示:
ConfigFactory.load().getConfig("com.mycompany")
Run Code Online (Sandbox Code Playgroud)
现在我没有将application.conf作为我的超级jar的一部分进行组装,因为我想将该文件作为外部文件传递
我想使用的外部application.conf的内容如下所示:
com.mycompany {
//configurations my program needs
}
Run Code Online (Sandbox Code Playgroud)
此application.conf文件存在于我的本地计算机文件系统上(而不是HDFS上)
我正在使用Spark 1.6.1和Yarn
这是我的spark-submit命令的样子:
LOG4J_FULL_PATH=/log4j-path
ROOT_DIR=/application.conf-path
/opt/deploy/spark/bin/spark-submit \
--class com.mycompany.Main \
--master yarn \
--deploy-mode cluster \
--files $ROOT_DIR/application.conf \
--files $LOG4J_FULL_PATH/log4j.xml \
--conf spark.executor.extraClassPath="-Dconfig.file=file:application.conf" \
--driver-class-path $ROOT_DIR/application.conf \
--verbose \
/opt/deploy/lal-ml.jar
Run Code Online (Sandbox Code Playgroud)
我收到的例外是:
2016-11-09 12:32:14 ERROR ApplicationMaster:95 - User class threw exception: com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'com'
com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'com'
at com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:124)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:147)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:159)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:164)
at com.typesafe.config.impl.SimpleConfig.getObject(SimpleConfig.java:218) …Run Code Online (Sandbox Code Playgroud) TL; DR
Spark UI显示的核心和内存数量不同于我在使用spark-submit时所要求的数量
更多细节:
我在独立模式下运行Spark 1.6.当我运行spark-submit时,我传递了1个执行器实例,其中1个核心用于执行程序,还有1个核心用于驱动程序.我期望发生的是我的应用程序将运行总共2个核心.当我检查UI上的环境选项卡时,我看到它收到了我给它的正确参数,但它看起来仍然使用不同数量的核心.你可以在这里看到它:
这是我正在使用的spark-defaults.conf:
spark.executor.memory 5g
spark.executor.cores 1
spark.executor.instances 1
spark.driver.cores 1
Run Code Online (Sandbox Code Playgroud)
检查Spark UI上的环境选项卡显示这些确实是接收到的参数,但UI仍显示其他内容
有没有人知道什么可能导致Spark使用不同数量的内核而不是我想传递它?我显然尝试使用谷歌搜索,但没有找到任何有用的主题
提前致谢
apache-spark ×7
scala ×4
java ×3
hadoop-yarn ×1
http ×1
jmx ×1
netty ×1
python ×1
python-3.x ×1
spring-mvc ×1
tomcat ×1
unit-testing ×1