文档章节

elastic-job-cloud-scheduler适应授权的mesos集群

隆回水哥
 隆回水哥
发布于 2018/04/07 13:41
字数 285
阅读 27
收藏 0

生产环境配置framework的授权信息,没有授权的framework是无法接入到集群的。

最近在玩elastic-job-cloud,在启动scheduler的时候,报错,is not authenticated。

但是2.1.5版本的elastic-job-cloud-scheduler又没有相关的配置信息。

经过查看elastic-job-cloud-scheduler的源码,发现可以修改一点代码即可。

1、修改elastic-job-cloud-scheduler.properties,添加如下内容

# mesos framework authentication and authorization
mesos_framework_principal=wss-framework-user
mesos_framework_secret=wss-framework-password

 

2、修改com.dangdang.ddframe.job.cloud.scheduler.env.BootstrapEnvironment

在com.dangdang.ddframe.job.cloud.scheduler.env.BootstrapEnvironment.EnvironmentArgument添加两个枚举:

MESOS_FRAMEWORK_PRINCIPAL("mesos_framework_principal", "", false),
MESOS_FRAMEWORK_SECRET("mesos_framework_secret", "", false)

在BootstrapEnvironment中加两个get方法

public Optional<String> getMesosFrameworkPrincipal(){
        String value = getValue(EnvironmentArgument.MESOS_FRAMEWORK_PRINCIPAL);
        if (Strings.isNullOrEmpty(value)) {
            return Optional.absent();
        }
        return Optional.of(value);
    }
    
    public Optional<String> getMesosFrameworkSecret(){
        String value = getValue(EnvironmentArgument.MESOS_FRAMEWORK_SECRET);
        if (Strings.isNullOrEmpty(value)) {
            return Optional.absent();
        }
        return Optional.of(value);
    }

 

3、在方法的最后添加代码,修改com.dangdang.ddframe.job.cloud.scheduler.mesos.SchedulerService.getSchedulerDriver(TaskScheduler, JobEventBus, FrameworkIDService)

// 新添加的代码
        Optional<String> principal = env.getMesosFrameworkPrincipal();
        Optional<String> secret = env.getMesosFrameworkSecret();
        if(principal.isPresent() && secret.isPresent()){
            Protos.Credential credential = Protos.Credential.newBuilder().setPrincipal(principal.get())
                    .setSecret(secret.get())
                    .build();
            return new MesosSchedulerDriver(new SchedulerEngine(taskScheduler, facadeService, jobEventBus, frameworkIDService, statisticManager), frameworkInfo,
                    mesosConfig.getUrl(), credential);
        } else {
            // 原来的代码,构造器少了最后一个参数credential:即没有授权信息
            return new MesosSchedulerDriver(new SchedulerEngine(taskScheduler, facadeService, jobEventBus, frameworkIDService, statisticManager), frameworkInfo,
                    mesosConfig.getUrl());
        }

4、编译打包,把压缩包丢到服务器上运行即可

mvn clean install

© 著作权归作者所有

隆回水哥
粉丝 14
博文 50
码字总数 18935
作品 0
深圳
高级程序员
私信 提问
手把手教你如何在Docker环境下安装elastic-job-cloud

手把手教你如何在Docker环境下安装elastic-job-cloud 前言 本文默认你本地已经安装好了Docker环境,同时也具备本地编译打包elastic-job-cloud的环境工具(Git, Maven, JDK),这里仅介绍如...

huyong1990
2018/05/28
0
0
elastic-job-cloud对mesos有最低版本要求么?

我在尝试搭建elastic-job-cloud,需要依赖mesos。网上搜了文档,里面没有给出mesos最低版本要求。请问,elastic-job-cloud对mesos是否有最低版本要求?...

mfcliu
2017/06/01
123
1
Elastic-Job 与 Sharding-JDBC 官网正式上线

当当先后于 2015 年 9 月和 2016 年 1 月开源的 Elastic-Job 和 Sharding-JDBC,经过这一两年的洗礼,它们已经初步获得技术圈的同仁的认可。 两个项目在码云和 GitHub 上的 star 数加起来已超...

亮_ShardingSphere
2017/08/30
3.6K
12
Elastic-Job 2.1.4 发布,接入 DC/OS

Elastic-Job 2.1.4发布了,此版本主要是针对Cloud的提升。主要更新如下: 从此版本开始接入Mesos的DC/OS,提供英文版界面,将Elastic-Job推广至国际化。 提供本地运行模式,开发作业时无需M...

亮_ShardingSphere
2017/06/13
1K
7
elastic-job cloud版本,任务执行失败

部署完elastic-job中的cloud版本后,按照elastic-job-example模块中的elastic-job-example-cloud中的README.txt,进行app的发布和作业的发布。 按照文档,发布了test_job_simple,test_job_da...

kaoyan2010
2017/11/06
177
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊rocketmq的AccessChannel

序 本文主要研究一下rocketmq的AccessChannel AccessChannel rocketmq-client-4.5.2-sources.jar!/org/apache/rocketmq/client/AccessChannel.java public enum AccessChannel { /** ......

go4it
昨天
1
0
自己实现 aop 和 spring aop

上文 说到,我们可以在 BeanPostProcessor 中对 bean 的初始化前化做手脚,当时也说了,我完全可以生成一个代理类丢回去。 代理类肯定要为用户做一些事情,不可能像学设计模式的时候创建个代...

sanri1993
昨天
3
0
Java 8 Stream Api 中的 skip 和 limit 操作

1. 前言 Java 8 Stream API 中的skip()和limit()方法具有类似的作用。它们都是对流进行裁剪的中间方法。今天我们来探讨一下这两个方法。 2. skip() skip(lang n) 是一个跳过前 n 个元素的...

码农小胖哥
昨天
1
0
看中华小当家第二集片段记录

最近正好在学习做饭,看看这片子,燃烧燃烧做饭的热情 哈哈,以下是摘的一些句子和个人理解 My name is Liu Mao Xing . More commonly known as Mao. 个人理解:我的名字叫 刘昴星, (commo...

T型人才追梦者
昨天
3
0
Python基础-6

1、注释 # 单行注释'''多行注释'''"""多行注释"""# 中文编码声明注释 ,在文件开头加上下面这行注释# encoding=utf-8或者# -*- encoding:utf-8 -*- (-*- 只是为了美观,没有实际......

zfskkk
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部