我正在尝试以纱线集群模式运行应用程序。shell脚本的设置如下:
spark-submit --class "com.Myclass" \
--num-executors 2 \
--executor-cores 2 \
--master yarn \
--supervise \
--deploy-mode cluster \
../target/ \
Run Code Online (Sandbox Code Playgroud)
此外,我收到以下错误。以下是来自 YARN LOGS APPLICATIONID 的错误详细信息
INFO : org.apache.spark.deploy.yarn.ApplicationMaster - Registered signal handlers for [TERM, HUP, INT]
DEBUG: org.apache.hadoop.util.Shell - Failed to detect a valid hadoop home directory
java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set.
at org.apache.hadoop.util.Shell.checkHadoopHome(Shell.java:307)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:332)
at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:79)
at org.apache.hadoop.yarn.conf.YarnConfiguration.<clinit>(YarnConfiguration.java:590)
at org.apache.spark.deploy.yarn.YarnSparkHadoopUtil.newConfiguration(YarnSparkHadoopUtil.scala:62)
at org.apache.spark.deploy.SparkHadoopUtil.<init>(SparkHadoopUtil.scala:52)
at org.apache.spark.deploy.yarn.YarnSparkHadoopUtil.<init>(YarnSparkHadoopUtil.scala:47)
Run Code Online (Sandbox Code Playgroud)
我尝试像下面这样修改spark-env.sh,我看到 Hadoop_Home 已记录,但仍然出现上述错误。修改并添加以下条目到spark-env.sh
export HADOOP_HOME="/usr/lib/hadoop"
echo "&&&&&&&&&&&&&&&&&&&&&& HADOOP HOME "
echo …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个简单的 Kafka 客户端,我从 Springboot 应用程序运行它。我的要求是使用Kafka 0.8.2.2版本。该应用程序一开始工作正常,然后我收到此异常,我无法找到根本原因。
在 Kafka 日志中我看到以下异常:
由于分区 [TESTQA,2] 上的客户端测试组的关联 ID 0 的偏移量请求失败,因为代理 256 上的分区 [TESTQA,2] 的领导者不是本地的 2017-07-21 03:40:54,186 INFO kafka.network.Processor:正在关闭套接字连接到/。
kafka.common.NotLeaderForPartitionException: null
at sun.reflect.GeneratedConstructorAccessor41.newInstance(Unknown Source) ~[na:na]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_131]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_131]
at java.lang.Class.newInstance(Class.java:442) ~[na:1.8.0_131]
at kafka.common.ErrorMapping$.exceptionFor(ErrorMapping.scala:86) ~[kafka_2.10-0.8.2.2.jar:na]
at kafka.consumer.SimpleConsumer.earliestOrLatestOffset(SimpleConsumer.scala:169) ~[kafka_2.10-0.8.2.2.jar:na]
at kafka.consumer.ConsumerFetcherThread.handleOffsetOutOfRange(ConsumerFetcherThread.scala:60) ~[kafka_2.10-0.8.2.2.jar:na]
at kafka.server.AbstractFetcherThread$$anonfun$addPartitions$2.apply(AbstractFetcherThread.scala:177) ~[kafka_2.10-0.8.2.2.jar:na]
at kafka.server.AbstractFetcherThread$$anonfun$addPartitions$2.apply(AbstractFetcherThread.scala:172) ~[kafka_2.10-0.8.2.2.jar:na]
at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:772) ~[scala-library-2.10.4.jar:na]
at scala.collection.immutable.Map$Map2.foreach(Map.scala:130) ~[scala-library-2.10.4.jar:na]
at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:771) ~[scala-library-2.10.4.jar:na]
at kafka.server.AbstractFetcherThread.addPartitions(AbstractFetcherThread.scala:172) ~[kafka_2.10-0.8.2.2.jar:na]
at kafka.server.AbstractFetcherManager$$anonfun$addFetcherForPartitions$2.apply(AbstractFetcherManager.scala:87) ~[kafka_2.10-0.8.2.2.jar:na]
at kafka.server.AbstractFetcherManager$$anonfun$addFetcherForPartitions$2.apply(AbstractFetcherManager.scala:77) ~[kafka_2.10-0.8.2.2.jar:na]
at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:772) ~[scala-library-2.10.4.jar:na]
at scala.collection.immutable.Map$Map2.foreach(Map.scala:130) ~[scala-library-2.10.4.jar:na]
at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:771) ~[scala-library-2.10.4.jar:na] …Run Code Online (Sandbox Code Playgroud) SPARK 2.3引发以下异常。谁能帮忙!我尝试添加JAR
308 [驱动程序]错误org.apache.spark.deploy.yarn.ApplicationMaster-用户类引发异常:java.lang.NoSuchMethodError:io.netty.buffer.PooledByteBufAllocator.metric()Lio / netty / buffer / PooledByteBufAllocatorMetric; java.lang.NoSuchMethodError:io.netty.buffer.PooledByteBufAllocator.metric()Lio / netty / buffer / PooledByteBufAllocatorMetric; 在org.apache.spark.network.util.NettyMemoryMetrics。(NettyMemoryMetrics.java:76)在org.apache.spark.network.util.NettyMemoryMetrics.registerMetrics(NettyMemoryMetrics.java:80)在org.apache.spark.network中。在org.apache.spark.network.transportContext.createClientFactory(TransportContext.java:99)处的client.TransportClientFactory。(TransportClientFactory.java:109)在org.apache.spark.rpc.netty.NettyRpcEnv。(NettyRpcEnv.scala:71)在org.apache.spark.rpc.netty。
我编写了一个结构化的流应用程序来将数据实时推送到 S3。我们从 Kafka 接收数据,并在使用结构化流处理数据后将数据推送到 S3。
我知道 Spark 流支持动态分配资源。但是在 JIRA https://issues.apache.org/jira/browse/SPARK-24815 之后发现说结构化流不支持资源的动态分配。
想知道在结构化流目前不支持动态分配资源时如何处理数据峰值。
不实现动态分配的原因如下(来自 JIRA): 如果我们设置 spark.dynamicAllocation.enabled=true 并运行一个结构化的流作业,批量动态分配算法就会启动。如果任务积压是特定大小,它会请求更多的执行程序, 并在它们空闲一段时间后删除 executors。它基本上用于批处理而不是连续处理。在批处理模式下,我们关心 numRunningOrPendingTasks 而对于流的比率:averageBatchProcTime.toDouble / batchDurationMs 即每单位时间的平均批处理时间,因此在空闲时缩小系统不是一个有效的解决方案。
问题:未提供资源动态分配时如何处理 SPIKES。
我正在使用 case 语句来计算某些标准的统计数据,如下所示
avg(case when det.detection_time >0 then det.blocked_time end)
and
sum(case when det.detection_time =0 then 1 else 0 end)
Run Code Online (Sandbox Code Playgroud)
我应该如何应用案例陈述来获得中位数。。
目前我得到的中位数如下:
PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER by det.blocked_time)
Run Code Online (Sandbox Code Playgroud)
我应该如何向 PERCENTILE_CONT 块添加条件“case when det.detection_time >0”以获得 det.detection_time >0 的组的中值