小编Tib*_*. M的帖子

线程“main”org.apache.spark.SparkException 中的异常:必须指定驱动程序容器映像

我正在尝试使用命令从本地机器 CLI 在 minikube(Kubernetes) 上执行 spark-submit

spark-submit --master k8s://https://127.0.0.1:8001 --name cfe2 
--deploy-mode cluster --class com.yyy.Test --conf spark.executor.instances=2 --conf spark.kubernetes.container.image docker.io/anantpukale/spark_app:1.1 local://spark-0.0.1-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)

我有一个基于 verison 2.3.0 的简单火花作业 jar。我还在 docker 和 minikube 中将它容器化并在虚拟机上运行。以下是异常堆栈:

Exception in thread "main" org.apache.spark.SparkException: Must specify the driver container image at org.apache.spark.deploy.k8s.submit.steps.BasicDriverConfigurationStep$$anonfun$3.apply(BasicDriverConfigurationStep.scala:51) at org.apache.spark.deploy.k8s.submit.steps.BasicDriverConfigurationStep$$anonfun$3.apply(BasicDriverConfigurationStep.scala:51) at scala.Option.getOrElse(Option.scala:121)  at org.apache.spark.deploy.k8s.submit.steps.BasicDriverConfigurationStep.<init>(BasicDriverConfigurationStep.scala:51)
        at org.apache.spark.deploy.k8s.submit.DriverConfigOrchestrator.getAllConfigurationSteps(DriverConfigOrchestrator.scala:82)
        at org.apache.spark.deploy.k8s.submit.KubernetesClientApplication$$anonfun$run$5.apply(KubernetesClientApplication.scala:229)
        at org.apache.spark.deploy.k8s.submit.KubernetesClientApplication$$anonfun$run$5.apply(KubernetesClientApplication.scala:227)
        at org.apache.spark.util.Utils$.tryWithResource(Utils.scala:2585)
        at org.apache.spark.deploy.k8s.submit.KubernetesClientApplication.run(KubernetesClientApplication.scala:227)
        at org.apache.spark.deploy.k8s.submit.KubernetesClientApplication.start(KubernetesClientApplication.scala:192)
        at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:879)
      at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:197)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:227)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:136)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 2018-04-06 13:33:52 INFO  ShutdownHookManager:54 - Shutdown hook called 2018-04-06 …
Run Code Online (Sandbox Code Playgroud)

docker apache-spark kubernetes kubectl minikube

4
推荐指数
1
解决办法
3213
查看次数

Kubernetes 的艰难之路 - 如何设置节点不可调度

我正在从头开始配置 Kubernetes 集群(原因)。它是虚拟机内部的本地设置,一切都很好,除了master节点被创建为可调度的。

我尝试master通过将必需的参数传递给 kubelet 二进制文件来为节点分配标签和适当的污点(不能解决问题):

--register-with-taints=node-role.kubernetes.io/master=:NoSchedule
--node-labels=master,node-role.kubernetes.io/master=""
Run Code Online (Sandbox Code Playgroud)

这是来自的输出kubectl describe <node>

Name:               myNodeName
Roles:              master
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    kubernetes.io/hostname=myHostName
                    master=
                    node-role.kubernetes.io/master=
Annotations:        node.alpha.kubernetes.io/ttl=0
                    volumes.kubernetes.io/controller-managed-attach-detach=true
CreationTimestamp:  Tue, 03 Jul 2018 05:56:53 +0000
Taints:             node-role.kubernetes.io/master=true:NoSchedule
Unschedulable:      false
Run Code Online (Sandbox Code Playgroud)

如何将此节点设置为不可调度?文档并没有真正指定这一点(请随意指向文档的适当部分,以防我遗漏了某些内容)。

PS:上面提到的标签/污点在创建/注册节点之前就存在。

kubernetes

3
推荐指数
1
解决办法
6686
查看次数

pyTelegramBotAPI 禁用链接预览

目前正在使用pyTelegramBotAPI编写我的第一个机器人。我想禁用某些消息的链接预览。我该怎么做呢?

python python-3.x telegram telegram-bot py-telegram-bot-api

3
推荐指数
1
解决办法
5554
查看次数

如何从内联键盘获取数据作为单个结果?

我有一个已设置并连接到我的后端的电报机器人。当用户选择“输入密码”选项时,我会在请求旁边发送一个内嵌键盘,以便用户可以输入他的数字密码。我这样做是为了不会在聊天中显示密码。我遇到的问题是我使用 callback_data 为按下的按钮分配一个值,但是当按下按钮时,这些回调会一一发生。我想知道是否可以建立一个累积的按下字符字符串,一旦按下“提交”按钮,就可以通过用户的响应发送。

我的内联请求目前如下所示:

{
  "chat_id": 99999999,
  "text": "Enter Password",
  "reply_markup": {
  
    "inline_keyboard": [
        
      [{"text": "1","callback_data":"1","pay":true},{"text": "2","callback_data":"2"},{"text": "3","callback_data":"3"}],
      [{"text": "4","callback_data":"4"},{"text": "5","callback_data":"5"},{"text": "6","callback_data":"6"}],
      [{"text": "7","callback_data":"7"},{"text": "8","callback_data":"8"},{"text": "9","callback_data":"9"}],
      [{"text": "0","callback_data":"0"}],
      [{"text": "Submit","callback_data":"Submit"}]
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

此外,还可以在按下提交后使内联按钮消失,我已经浏览了电报机器人文档,并且可以找到任何这样的选项。 https://core.telegram.org/bots/api#sendmessage

请告知这是否可行,或者我是否应该采取另一种方法。

telegram telegram-bot

3
推荐指数
1
解决办法
6063
查看次数

Telegram bot (pyTelegramBotAPI) 不处理新用户加入组

我最近使用 pyTelegramBotAPI (telebot) 创建了一个简单的电报机器人。我添加了一个消息处理程序,该处理程序应该处理每条消息,包括新用户加入时出现在组上的消息,它们仍然Message是非空属性的对象new_chat_members

import telebot
bot = telebot.TeleBot(TOKEN)

[...]

@bot.message_handler(func=lambda m: True)
def foo(message):
    bot.send_message(message.chat.id,"I got the message")



bot.polling()

Run Code Online (Sandbox Code Playgroud)

即便如此,当我添加新用户时,机器人不会回复“我收到消息”字符串,尽管它确实捕获了其他消息。

为什么会发生这种情况?这是消息处理程序的问题吗?是否有一个更通用的处理程序可以确保捕获每个更新?

谢谢

python telegram telegram-bot py-telegram-bot-api

3
推荐指数
1
解决办法
5031
查看次数

类型错误:对象不是函数?

我刚开始学习 React Hooks。我有一个名为 appContext.js 的文件,里面有 AppContext

const AppContext = React.createContext(initialState);
Run Code Online (Sandbox Code Playgroud)

我想在文件 checkInfo.js 中使用它

const CheckInfo = (props) => {

    const [state, dispatch] = useContext(AppContext);

    useEffect(() => {
          var personData = {};

          async function fetchData() {

            dispatch({
              type: "isLoding",
              payload: true,
            });
          }
          ////other code
        }
Run Code Online (Sandbox Code Playgroud)

但我有

TypeError: Object is not a function
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

javascript reactjs react-hooks

3
推荐指数
1
解决办法
2132
查看次数

当你点击它被复制的文本时如何做到这一点 pytelegrambotapi

我正在给机器人写电报。我遇到了这样的问题。我需要机器人在单击它被复制时发送消息(文本)(作为来自@BotFather 的令牌)

python bots telegram telegram-bot py-telegram-bot-api

2
推荐指数
1
解决办法
6109
查看次数

如何使用 kubernetes java 客户端获取所有 Kubernetes 部署对象?

我打算使用 kubernetes java 客户端(https://github.com/kubernetes-client/java/)编写简单的程序。我可以获得所有命名空间和 Pod,但是如何获取给定命名空间中的部署列表?我找不到任何方法。有什么办法可以得到吗?

for (V1Namespace ns: namespaces.getItems()) {
  System.out.println("------Begin-----");
  System.out.println("Namespace: " + ns.getMetadata().getName());

  V1PodList pods = api.listNamespacedPod(ns.getMetadata().getName(), null, null, null, null, null, null, null, null, null);
  int count = 0;
  for (V1Pod pod: pods.getItems()) {
    System.out.println("Pod " + (++count) + ": " + pod.getMetadata().getName());
    System.out.println("Node: " + pod.getSpec().getNodeName());

  }
  System.out.println("------ENd-----");
}
Run Code Online (Sandbox Code Playgroud)

kubernetes

2
推荐指数
1
解决办法
465
查看次数

如何更改 RKE 中的 kubelet 选项,例如 Rancher 中的 eviction-hard(nodefs.available、imagefs.available 等)?

我仔细阅读了 Kubernetes 文档了解扩展默认的 15%imagefs.available和其他参数,但它没有说明如何设置它,我已经使用以下配置安装了 RKE(Rancher Kubernetes Engine)。

Kubernets Version:v1.17.5
OS: Ubuntu 18.04.4 LTS
Container Runtime: 19.3.9
Run Code Online (Sandbox Code Playgroud)

顺便说一句,文档没有清楚地解释如何扩展默认驱逐,所以我来这里是为了知道是否有人可以告诉我如何扩展它。

我也尝试过 kubelet 命令行,但我明白了

I0903 09:59:13.143727   31472 plugins.go:100] No cloud provider specified.
W0903 09:59:13.143760   31472 server.go:560] standalone mode, no API client
W0903 09:59:13.148508   31472 container_manager_linux.go:912] CPUAccounting not enabled for pid: 31472
W0903 09:59:13.148527   31472 container_manager_linux.go:915] MemoryAccounting not enabled for pid: 31472
W0903 09:59:13.579594   31472 server.go:474] No api server defined - no events will be sent to API server.
I0903 09:59:13.579620 …
Run Code Online (Sandbox Code Playgroud)

kubernetes

2
推荐指数
1
解决办法
3159
查看次数

Telethon 在按钮后写消息/开始聊天 - 机器人在/开始之前发送消息

我正在尝试编写一个带有 telethon for telegram 的访问机器人。

  1. 用户已添加到群组或通过邀请链接加入。
  2. 受到限制,必须按下按钮。
  3. 机器人会编写一条简单的验证码消息,例如“1+2=?”
  4. 如果是对的,这个人就不受限制,如果错了,就会被踢出去……

一切都工作得很好,但是:
如果新加入的用户没有先写“/start”,则用户不会从机器人收到消息。

该人是否有可能收到该消息?

我读过在某个地方不可能做到这一点,但是外面有机器人怎么办?

python telegram telegram-bot telethon

2
推荐指数
1
解决办法
1887
查看次数