我们在微服务场景中使用 Zuul 作为 API 网关已经有一段时间了,最近我们决定迁移到 Kubernetes 并选择一种更加云原生的方式。
经过一番调查和阅读 Istio 文档,我们对 Kubernetes 中的 API 网关选择有一些疑问:
我有两个集群,一个在本地虚拟机中,另一个在远程云中.两个群集都处于独立模式.
我的环境:
Scala: 2.10.4
Spark: 1.5.1
JDK: 1.8.40
OS: CentOS Linux release 7.1.1503 (Core)
Run Code Online (Sandbox Code Playgroud)
本地集群:
Spark Master:spark:// local1:7077
远程集群:
Spark Master:spark:// remote1:7077
我想完成这个:
写代码(只是简单的字计数)在IntelliJ IDEA的地方(在我laptp)和星火主URL设置为spark://local1:7077和spark://remote1:7077,然后运行我的IntelliJ IDEA的代码.也就是说,我不想spark-submit用来提交工作.
但我遇到了一些问题:
当我使用本地群集时,一切顺利.在IntelliJ IDEA中运行代码或使用spark-submit可以将作业提交到集群并完成工作.
但是当我使用远程集群时,我收到了一个警告日志:
TaskSchedulerImpl:初始作业未接受任何资源; 检查群集UI以确保工作人员已注册并具有足够的资源
这是充足的资源没有足够的内存!
此日志保持打印,无需进一步操作.spark-submitIntelliJ IDEA中的两个和运行代码都是相同的.
我想知道:
非常感谢!
更新
还有一个类似的问题在这里,但我觉得我的场景是不同的.当我在IntelliJ IDEA中运行我的代码并设置Spark Master为本地虚拟机群集时,它可以工作.但我收到了Initial job has not accepted any resources;...警告.
我想知道安全策略或烟花是否会导致这种情况?
我有一个时间表:
schedule: "0 10,14,18 * * *",我想在上午 10:00、下午 2:00、下午 6:00 运行这项作业。
由于我位于 UTC+8 时区,因此这个 cronjob 看起来没有按我的预期运行。
无论如何要添加时区配置吗?
因为我有一个集合:
List(1, 3,-1, 0, 2, -4, 6)
Run Code Online (Sandbox Code Playgroud)
它很容易分类为:
List(-4, -1, 0, 1, 2, 3, 6)
Run Code Online (Sandbox Code Playgroud)
然后我可以通过计算6-3,3-2,2-1,1-0等构建一个新的集合,如下所示:
for(i <- 0 to list.length -2) yield {
list(i + 1) - list(i)
}
Run Code Online (Sandbox Code Playgroud)
并得到一个矢量:
Vector(3, 1, 1, 1, 1, 3)
Run Code Online (Sandbox Code Playgroud)
也就是说,我想让下一个元素减去当前元素.
但是如何在Spark上的RDD中实现这个呢?
我知道这个系列:
List(-4, -1, 0, 1, 2, 3, 6)
Run Code Online (Sandbox Code Playgroud)
集合中会有一些分区,每个分区都是有序的,我可以对每个分区进行类似的操作,并在每个分区上收集结果吗?
我正在通过webSocketClientFlow上的 doc来尝试客户端websocket .
示例代码是:
import akka.actor.ActorSystem
import akka.Done
import akka.http.scaladsl.Http
import akka.stream.ActorMaterializer
import akka.stream.scaladsl._
import akka.http.scaladsl.model._
import akka.http.scaladsl.model.ws._
import scala.concurrent.Future
object WebSocketClientFlow {
def main(args: Array[String]) = {
implicit val system = ActorSystem()
implicit val materializer = ActorMaterializer()
import system.dispatcher
// Future[Done] is the materialized value of Sink.foreach,
// emitted when the stream completes
val incoming: Sink[Message, Future[Done]] =
Sink.foreach[Message] {
case message: TextMessage.Strict =>
println(message.text)
}
// send this as a message over the WebSocket
val outgoing = …Run Code Online (Sandbox Code Playgroud) apache-spark ×2
kubernetes ×2
scala ×2
akka-http ×1
akka-stream ×1
api-gateway ×1
istio ×1
netflix-zuul ×1