Marathon(4):Port

【云星数据---mesos实战系列002】:mesos全分布式部署实战009--修改marathon的默认端口 一、修改marathon的默认端口因为marathon的默认端口是8080,我们自己的服务端口也是8080因此需要改动, Marathon WebUI默认的端口是8080,修改端口的方法: 1.编辑配置文件 编辑命令 vim /etc/default/marathon 添加内容 export HTTP_PORT=8081 export 阅读详情

端口

在Marathon中,对应用程序端口的配置可能会造成混淆,并且有一个悬而未决的问题,需要重新设计的端口API。本文尝试更清楚的解释Marathon的端口是如何工作的。

如果你是在DC/OS集群中运行Marathon,你可以使用虚拟地址(VIP:Virtual addresses) ,使端口的管理更容易。VIP简化应用间的通讯,并实现可靠的面向服务的架构。VIP从单个虚拟地址向多个IP地址和端口映射的流量。

定义

containerPort:用来指定容器内部的一个端口。当使用BRIDGE或USER网络模式连接Docker容器时,必须将这个属性设置为port mapping的一部分。

hostPort:用来指定绑定到主机上的一个端口。当使用BRIDGE或USER网络模式,你可以指定一个port mapping将一个主机端口映射到容器端口。在HOST网络模式下,默认的请求端口就是主机的端口。请注意,主机端口只可以通过环境变量提供给一个任务。

BRIDGE网络模式:指定Docker应用程序使用BRIDGE网络模式。在这种模式下,容器端口(容器内部的端口)被映射到主机端口(主机上的端口)。在这种模式下,应用程序被绑定到容器内的指定端口,容器的端口被绑定到主机上的指定端口。

USER网络模式:指定Docker应用程序使用USER网络模式。在这种模式下,容器端口(容器内部的端口)被映射到主机端口(主机上的端口)。在这种模式下,应用程序被绑定到容器内的指定端口,容器的端口被绑定到主机上的指定端口。在与“用户自定义”Docker网络集成时,USER网络模式将会非常有用。在Mesos世界,这种网络通常是通过使用与Mesos CNI网络隔离的 CNI 插件访问。

HOST网络模式:该种模式在Marathon应用为非容器化而其它应用为容器化的情况下使用。在这种模式下,应用程序直接绑定到主机上的一个或多个端口。

portMapping:在Docker BRIDGE模式下,在容器外部可被访问到的端口都需要做端口映射。端口映射是一个包含host port, container port, service port和协议的元组。可以为Marathon应用指定多个端口映射; 未指定hostPort,则其默认值为0(意味着Marathon将随机分配一个)。在Docker USER模式下,hostPort的语义为稍有点变化:USER模式不需要指定hostPort,如果未指定Marathon不会自动分配一个随机的。这允许在USER网络模式下部署容器,包括containerPort和发现信息,但不暴露主机网络上的这些端口(意味着将不消耗主机端口资源)。

port:该端口数组被用来定义在HOST网络模式下应被视为资源提供的一部分的端口。在没有指定端口映射的情况下这个属性是必须的。一个应用程序只需要定义端口或portDefinitions两者其中之一。

portDefinitions:portDefinitions数组用于定义应被认为是资源提供一部分的端口。在使用HOST网络模式和没有指定端口映射的情况下,需要定义portDefinitions数组。这个数组是为了替换port数组,并可以为其指定一个端口名,协议和标签。一个应用程序只需要定义端口或portDefinitions两者其中之一。

protocol:protocol用于指定端口使用的因特网协议(例如tcp,udp或者udp,tcp)。这只需要在Docker容器环境下使用BRIDGE或USER网络模式时,在port mapping属性下设置。

requirePorts:requirePorts是指定Marathon是否应该在收到资源提供请求时,专门寻找指定端口的一个属性。这确保了这些端口是可用的,可以绑定到上Mesos Agent上的。这不支持BRIDGE或USER网络模式。

servicePort:当您在Marathon上(不管是通过REST API或界面)创建一个新的应用程序,你可以指定一个或多个服务端口给它。可以指定所有有效的端口号为服务端口,也可以用0表示Marathon应该自动分配的可用服务端口给应用程序使用。如果你选择自己的服务端口,你必须自己确保,这个端口在所有应用程序中是唯一的。

随机端口分配
使用值0,表示你想让Marathon随机分配一个端口。但是,如果在portMapping属性内部,将containerPort的值设置为0,意味着使用与hostPort相同的端口。

环境变量

每个host port值是通过 PORT0∗∗,∗∗ PORT1等等的环境变量暴露给正在运行的应用程序实例。每个Marathon应用默认被分配一个端口,因此 PORT0∗∗始终可用。这些变量也可以在通过Marathon运行的Docker容器内部使用。此外,如果该端口被命名为∗∗NAME∗∗,它也将通过环境变量∗∗ PORT_NAME访问。

当使用BRIDGE或USER模式的网络,确保你的应用程序绑定到你在portMapping中声明的containerPort的端口上。但是,如果设置containerPort的值为0,那么这个端口将与hostPort的端口一样,你可以使用$PORT环境变量。

示例配置

Host模式

Host模式网络是Docker容器默认的组网方式,是非Docker应用程序的唯一网络模式。注意,没有必要在Dockerfile文件中EXPOSE这个端口。

启用Host模式

Host模式默认情况下在Docker中是启用状态。如果你想明确的指定,你也可以手工在network属性上指定:

  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "my-image:1.0",
      "network": "HOST"
    }
  },

对于非Docker应用程序,你不需要指定任何东西。

指定端口

您可以通过ports数组指定端口:

    "ports": [
        0, 0, 0
    ],

或通过portDefinitions数组:

  "portDefinitions": [
      {"port": 0}, {"port": 0}, {"port": 0}
    ],

在这个例子中,我们指定三个随机分配主机端口,这可以通过环境变量 PORT0∗∗,∗∗ PORT1和$PORT2提供给我们的命令行使用。Marathon也会在这三个主机端口之外,随机分配三个服务端口(service port)。

您也可以指定特定的服务端口(service port):

 "ports": [
        2001, 2002, 3000
    ],

或者:

    "portDefinitions": [
        {"port": 2001}, {"port": 2002}, {"port": 3000}
    ],

在这种情况下,主机端口 PORT0∗∗,∗∗ PORT1和$PORT3保持随机分配。但是,这个应用程序的三个服务端口现在是2001,2002和3000。

在本例中,像上面前一个,有必要使用一个服务发现解决方案,如HAProxy,代理从服务端口到主机端口的请求。

如果你想要的应用程序服务端口等于其主机端口,可以设置requirePorts为true(默认情况下requirePorts是false)。这将告诉Marathon在Agent上只调度具有这些可用端口的应用程序:

   "ports": [
        2001, 2002, 3000
    ],
    "requirePorts" : true

服务端口和主机端口(包括环境变量 PORT0∗∗,∗∗ PORT1和$PORT2),现在都是2001,2002和3000。

如果你不使用服务发现解决方案,代理从服务端口主机端口的请求,这个属性很有用。

定义portDefinitions数组允许你为每个端口指定一个协议,一个名字和标签。当开始新的任务,Marathon将传递这些元数据给Mesos。Mesos会在任务的discovery域中暴露这些信息。自定义网络发现解决方案可以使用这个值。

下例的端口定义中,请求一个名字是http、标签VIP_0的为10.0.0.1:80的 动态tcp端口:

   "portDefinitions": [
        {
            "port": 0,
            "protocol": "tcp",
            "name": "http",
            "labels": {"VIP_0": "10.0.0.1:80"}
        }
    ],

该port字段是强制性的。protocol,name和labels字段是可选的。其中有port字段被设置为等于ports数组。

注意,只有ports数组和portDefinitions数组不应该一起使用,除非他们所有的元素是一样的。

引用端口

您可以易用为我们虚构的应用程序在Dockerfile中定义的端口:

CMD ./my-app --http-port=$PORT0 --https-port=$PORT1 --monitoring-port=$PORT2

另外,如果你不使用Docker或在马拉松应用程序中指定了一个cmd,运行效果一样:

"cmd": "./my-app --http-port=$PORT0 --https-port=$PORT1 --monitoring-port=$PORT2"

桥接(Bridge)模式

桥接模式网络允许你将主机端口映射到容器内的端口,并且只适用于Docker容器。如果想为容器镜像分配一个固定的端口,这个办法将会非常有用。注意,没有必要在Dockerfile文件中EXPOSE这个端口。

启用桥接模式

你需要通过network属性指定桥接模式:

  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "my-image:1.0",
      "network": "BRIDGE"
    }
  },

启用用户模式

你需要通过network属性指定用户模式:

"container": {
    "type": "DOCKER",
    "docker": {
      "image": "my-image:1.0",
      "network": "USER"
    }
  },
  "ipAddress": {
    "networkName": "someUserNetwork"
  }

指定端口

端口映射可以简单地在命令行中通过-p参数传递给Docker,并在容器内端口和主机端口之间创建关联关系。在这种情况下,用portMappings数组来替换在主机模式下使用的ports或portDefinitions数组。

端口映射在container对象中的portMappings对象中指定:

 "container": {
    "type": "DOCKER",
    "docker": {
      "image": "my-image:1.0",
      "network": "BRIDGE",
      "portMappings": [
        { "containerPort": 0, "hostPort": 0 },
        { "containerPort": 0, "hostPort": 0 },
        { "containerPort": 0, "hostPort": 0 }
      ]
    }
  },

在这个例子中,我们指定了3个映射。0值让Marathon给hostPort随机分配一个值。在这种情况下,设置containerPort为0将让它有和hostPort相同的值。这些值作在容器内分别通过 PORT0, PORT1并$PORT2访问。

另外,如果我们的应用在容器中使用固定端口,我们可以像下面这样的做:

 "container": {
    "type": "DOCKER",
    "docker": {
      "image": "my-image:1.0",
      "network": "BRIDGE",
      "portMappings": [
        { "containerPort": 80, "hostPort": 0 },
        { "containerPort": 443, "hostPort": 0 },
        { "containerPort": 4000, "hostPort": 0 }
      ]
    }
  },

在这种情况下,Marathon随机分配主机端口并将这些端口分别映射到80,443和4000。值得注意的是,这是很重要, PORT变量引用的是主机端口。在这种情况下,∗∗ PORT0**将被设置为hostPort的第一个值,其它的顺序设置。

指定协议

您也可以指定这些端口映射的协议。默认值是tcp:

"container": {
    "type": "DOCKER",
    "docker": {
      "image": "my-image:1.0",
      "network": "BRIDGE",
      "portMappings": [
        { "containerPort": 80, "hostPort": 0, "protocol": "tcp" },
        { "containerPort": 443, "hostPort": 0, "protocol": "tcp" },
        { "containerPort": 4000, "hostPort": 0, "protocol": "udp" }
      ]
    }
  },

指定服务端口

默认情况下,Marathon会为每个端口创建服务端口,并赋予它们随机值。服务端口用于服务发现解决方案,这是通常设置这些值为众所周知的值。你可以通过为每一个映射设置一个servicePort做到这一点:

 "container": {
    "type": "DOCKER",
    "docker": {
      "image": "my-image:1.0",
      "network": "BRIDGE",
      "portMappings": [
        { "containerPort": 80, "hostPort": 0, "protocol": "tcp", "servicePort": 2000 },
        { "containerPort": 443, "hostPort": 0, "protocol": "tcp", "servicePort": 2001 },
        { "containerPort": 4000, "hostPort": 0, "protocol": "udp", "servicePort": 3000}
      ]
    }
  },

在这个例子中,主机端口 PORT0∗∗,∗∗ PORT1和$PORT3保持随机分配。但是,这个应用程序的服务端口现在2001,2002和3000。外部代理,如HAProxy,应配置为从服务端口到主机端口路由。

引用端口

如果设置containerPort为0,那么你应该在Dockerfile文件中为我们虚构的应用程序指定的端口,像下面这样:

CMD ./my-app --http-port=$PORT0 --https-port=$PORT1 --monitoring-port=$PORT2

但是,如果指定了containerPort的值,只需使用在Dockerfile相同的值代替:

CMD ./my-app --http-port=80 --https-port=443 --monitoring-port=4000

另外,也可以指定在Marathon应用程序中指定一个cmd,它的会和上面一样以相同的工作方式运行:

"cmd": "./my-app --http-port=$PORT0 --https-port=$PORT1 --monitoring-port=$PORT2"

或者,如果你使用固定的值:

"cmd": "./my-app --http-port=80 --https-port=443 --monitoring-port=4000"

参考资料:

[1]: http://mesosphere.github.io/marathon/docs/ports.html

K8S中的hostPort、NodePort 、targetPort、port、containerPort 的区别 阅读详情

相关推荐

PP生产订单的BADI增强 WORKORDER_UPDATE

我们的项目需求是: 1、 保存时检查工单BOM是否存在物料号相同的行项目,如果有则提示“物料& 重复,请检查工单BOM” 系统增强出口:PPCO0001,检查组件行项目是否有重复物料项 开始以为的增强增强看一下是用PPCO0001还是PPCO0007 后来找到了badi WORKORDER_UPDATE IF_EX_WORKORDER_UPDATE~BEFORE_UPDATE

ERP运维咨询(目标和成功) 4636

marathon参考(11):ports端口设置

Portsmarathon中应用的端口配置可能被混淆,并有一个悬而未决的问题,需要重新设计 ports API。这个页面试图更清楚地解释它们是如何工作的。定义containerPort:在容器内部,是一个容器端口。在使用docker容器的时候,当我们使用BRIDGE网络模式,这是端口映射的一部分,必须设置。hostPort:主机上的端口。当使用BRIDGE网络模式的时候,你需要指定从主机端口到容器的

zhuchuangang的专栏 8147

将赛灵思 SDK 工程移植到 Vitis 的分步指南

注:本文转自赛灵思中文社区论坛,源文链接在此。本文原作者为XILINX工程师。 以下为个人译文,仅供参考,如有疏漏之处,还请不吝赐教。 您是赛灵思软件开发套件 (SDK) 用户吗? 您是否正在计划将自己的工程移植到 Vitis 软件平台? 那么本篇工程移植分步指南将能祝您一臂之力。 从 2019.2 版开始,赛灵思 SDK 开发环境已统一整合到全功能一体化的 Vitis™ 统一软件平台中。 尊敬的 SDK 用户,您只需轻点几下鼠标即可体验这一功能丰富的工具! 马上开始将工程从赛灵思 S

weixin_45825101的博客 1731

K8s中nodePort、port、targetPort、hostPort介绍

K8s中nodePort、port、targetPort、hostPort介绍 1、nodePort 外部流量访问k8s集群中service入口的一种方式(另一种方式是LoadBalancer),即nodeIP:nodePort是提供给外部流量访问k8s集群中service的入口。比如外部用户要访问k8s集群中的一个Web应用,那么我们可以配置对应service的type=NodePort,nodePort=30001。其他用户就可以通过浏览器http://node:30001访问到该web服务。而数据库等

zongshan_csdn的博客 8084

测站坐标系、地心非惯性系、经纬高互转

目录 一、经纬高转直角坐标系互转 1.1 python代码 二、wgs84转cgcs2000的转换矩阵如下 虽然cgcs2000与wgs84差别很小,但是我比较较真,还是做了两个坐标系的转换。 一、经纬高转直角坐标系互转 此处可参考链接(百度文库用手机浏览器可以打开看全部的): (1)第四章地球椭球及其数学详解 (2)第四章椭球数学变换16节 (3)大地测量学基础[1](7)(控制) 转换公式如下: LBH转XYZ: a为半长轴,e为偏心率 XYZ转LBH: a为半长轴

${王小贱}的博客 2万+

VSCode+Keil高效开发STM32:Keil Assistant插件配置全攻略

本文详细介绍了如何通过VSCode的Keil Assistant插件,将Keil MDK的编译调试能力与VSCode的现代编辑体验相结合,打造高效的STM32开发环境。文章涵盖了从环境配置、工程导入、智能提示设置到与STM32CubeMX协同工作的全流程攻略,旨在解决Keil编辑器效率低下的痛点,大幅提升嵌入式开发的编码与项目管理效率。

gold的博客 507

k8s中hostPort和NodePort

hostPort 和NodePort hostPort 只会在运行机器上开启端口, NodePort 是所有 Node 上都会开启端口。 hostPort是由 portmap 这个 cni 提供 portMapping 能力,同时如果想使用这个能力,在配置文件中一定需要开启 portmap 使用 hostPort 后,会在 iptables 的 nat 链中插入相应的规则,而且这些规则是在 KUBE- SERVICES 规则之前插入的,也就是说会优先匹配 hostPort 的规则,我们常用的 NodeP

任我行的博客 2694

一文弄懂Word2Vec之skip-gram(含详细代码)

目录 前言 一、什么是Skip-gram算法 二、目标是什么 三、定义表示法 3.1 one-hot向量 3.2 词向量(word vector) 3.3 单词矩阵 3.4 单词相似度 3.5 softmax函数 3.6算法过程 3.7 求softmax 四、skipgram代码实现 4.1 如何把词转换为向量 4.2 CBOW和Skip-gram的算法实现 Skip-gram的理想实现 Skip-gram的实际实现 4.3 使用Pytorch实现Skip-gram .

Python,数据分析,机器学习,深度学习 1万+

k8s之containerPort、servicePort、nodePort、hostPort解析

这个和nodePort类似,早期k8s中nodePort会在node上起对应的nodePort侦听,而hostPort不会起侦听,不过现在的版本中无论hostPort还是nodePort都是通过ipvs实现端口映射,不会再启用侦听,不知道这两个port概念将来会不会删掉一个。为什么我们再deployment中定义了containerPort为8081,而实际侦听端口仍旧为80呢?话不多说,笔者最近在啃k8s,容器也好、k8s也罢,里面和服务相关的port概念五六个,索性整理一下,看看他们之间的关系。

laojin77的博客 6380

[Python图像处理] 二.OpenCV+Numpy库读取与修改像素

该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还请海涵~ 同时推荐作者的C++图像系列知识: [数字图像处理] 一.MFC详解显示BMP格式图片 [数字图像处理] 二.MFC单文档分...

杨秀璋的专栏 3万+

深度学习笔记——Transformer

本文详细介绍面试过程中可能遇到的Transformer知识点。

haopinglianlian的博客 1703

marathon各种Port

http://mesosphere.github.io/marathon/docs/ports.html Port configuration for applications in Marathon can be confusing and there is an outstanding issue to redesign the ports API. This page atte

liukuan73的专栏 3350

瑞芯微RK3588/RK3576平台采集BT1120(fpga)驱动调试记录

本文介绍了在RK3576/RK3588平台上采集FPGA传输的BT1120数据的方法。主要内容包括:1)硬件连接需确认管脚复用和图像格式(通常为uyvy_2x8);2)设备树配置要点,如I2C总线设置、BT1120模式指定等;3)驱动适配注意事项,包括时钟极性、分辨率格式等关键参数;4)测试方法,通过media-ctl和v4l2-ctl工具验证数据采集。文中特别指出RK3576和RK3588配置的通用性,并提供了常见问题的排查思路。

bingdund的博客 916

docker 必备 — marathon 基础教程

筋斗云 岂安运维工程师爱游泳、爱旅行、爱计算机。 前言 目前越来越多的互联网企业开始使用 docker,在这之前,虚拟机占据着大部分的企业市场,但是随着 docker 部署的增多,也发现了一些单纯使用 docker 的弊端。例如命令行操作比较繁琐,需要记的参数较多,在此介绍一个好用的解决这些弊端的工具—— Marathon。 基本...

weixin_33676492的博客 609

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

容器化部署Mesos/Marathon

一.Mesos/marathon Mesos容器编排工具,有master和slave节点。 二级调度。 marathon框架。 二.使用容器搭建mesos/marathon 将Spring boot项目docker化之后,准备使用Mesos来编排管理。 可惜革命尚未成功,先行记录如何部署的环境。 (marathon部署spring boot应用(docker镜像)总是重新部署,报错信...

Carlos An 1394

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Mesosphere实战指南:Mesos内核与Marathon/Chronos调度深度解析

Mesosphere是一套面向大规模容器化应用的生产级分布式调度系统,其核心是基于Mesos内核的资源抽象与任务调度能力。不同于Kubernetes的声明式编排范式,Mesos采用类操作系统内核的设计,通过Offer机制实现去中心化资源分发,保障超大规模场景下的高可用与低延迟响应。Marathon作为服务型负载调度器,专注长周期、高可用微服务的滚动更新与健康治理;Chronos则以分布式Cron形态支撑批处理DAG依赖调度。二者协同HAProxy构成服务发现、流量治理与弹性伸缩的闭环链路。本文聚焦Mesos

weixin_34387468的博客 404

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

使用自有数据预训练 RoBERTa:unilm 仓库 fairseq 环境下的完整实战指南

本指南围绕 [kosmos-2/fairseq/examples/roberta/README.pretraining.md](https://link.gitcode.com/i/0c52e119c0a4443103a9ad8676ea0f2f) 展开,完整讲解如何在当前 unilm 仓库自带的 fairseq 框架中,使用自己的语料从零预训练一个 RoBERTa 模型。读者将掌握从原始文本的

gitblog_01072的博客 711

Bamboo与多Marathon集群集成:大规模部署实战

Bamboo是一款为Mesos Marathon提供HAProxy自动配置和服务发现的工具,能帮助用户轻松实现大规模集群环境下的服务管理与负载均衡。本文将详细介绍如何将Bamboo与多个Marathon集群集成,通过实战案例带你掌握大规模部署的核心技巧。 ## 多Marathon集群集成的价值 在现代微服务架构中,企业往往需要部署多个Marathon集群来满足不同业务需求或实现高可用架构。Ba

gitblog_00061的博客 376

使用docker部署Mesos+Zookeeper+Marathon

请不要在使用 garland/mesosphere-docker-mesos-master、garland/mesosphere-docker-marathon这些镜像了,他们已经三年没有维护了,应该用新的:mesosphere/mesos(mesosphere/mesos-master 和 mesosphere/mesos-slave)、mesosphere/marathon GITHUB(ht...

YardStrong的博客 835

kubernetes 对比 mesos + marathon

4.1. 应用定义 k8s: 可以使用 Pod,部署和服务的组合来部署应用程序。一个 pod 是一组 位于同一节点的容器,是部署的原子单位。部署可以在多个节点上具有副本。 服务是容器工作负载的“外部表现”,并与 DNS 集成配合访问。 marathon:从用户的角度来看,应用程序将作为 Marathon 在节点上调度的 任务运行。 对于 Mesos,应用程序是一个框架,可以是 Marathon, Cassandra,Spark 等等。 Marathon 将容器调度为在从节点上执行的任

我的博客 532

Ubuntu 14.04上构建生产就绪的Mesos+Marathon+ZooKeeper集群

ZooKeeper作为分布式协调服务,是Mesos资源调度器实现高可用与强一致性的核心依赖;其与Marathon协同构成容器化应用编排底座。本文围绕ZooKeeper选举机制、会话超时控制、ACL安全加固等关键原理展开,揭示其在Mesos master leader选举、framework状态持久化及故障自愈中的技术价值。适用于金融、电信等对稳定性与审计合规要求严苛的生产环境,尤其聚焦Ubuntu 14.04这一特定LTS版本下JVM GC调优、内核cgroup兼容性、iptables策略冲突等真实运维场景

weixin_33704234的博客 470

2.centos7 安装Mesos和marathon

master节点 节点名称 IP地址 master1 192.168.161.128 由于硬件资源有限,这里仅安装一个master节点,会存在单点问题.在实际生产中,尽量不要这样操作. 1.安装zookeeper https://www.cnblogs.com/gytangyao/p/10172265.html 2.安装Mesos ...

weixin_30909575的博客 393

Mesos + Marathon 安装与使用

简介 Mesos 是一个集群资源的调度工具,Apache 开源项目,它的定位是要做数据中心操作系统的内核。目前由 Mesosphere 公司维护,更多信息可以自行查阅 Mesos 项目地址或 Mesosphere。 Marathon 是可以跟 Mesos 一起协作的一个 framework,用来运行持久性的应用。 安装 一共需要安装四种组件,mesos-master、mar

yeasy的专栏 1万+

SpringCloud mesos+Marathon 上部署经验总结

marathon +mesos 上 SpringCloud云端部署微服务经验总结: 如果采用SDN+mesos-dns动态域名解析,配置变得非常灵活有效,因为每个docker 实例有唯一IP,所以端口都可以设置一样的,或者根据需要设置. 2. SpringBoot 里类似 port: ${PORT:8761} 配置必须替换掉,或者从环境变量显式传递参数。 3. health 健康检查 必须手...

happyfreeangel的博客 1243

mesos+marathon的端口占用问题

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34100227的博客 279

CentOS-6安装mesos+marathon+zookeeper

前期准备 关闭SELinux sudo vi /etc/selinux/config 将SELINUX=enforcing修改为SELINUX=disabled重启生效 关闭防火墙 sudo service iptables stop 配置hosts sudo vi /etc/hosts /etc/hosts内容: 127.0.0.1 localhost localhost.loca...

天涯云海的专栏 661
上一篇: Marathon(3):Application Groups
下一篇: Marathon(5):Constraints
码匠君
博客等级 码龄22年 153粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值