一、前言随着近几年业务快速发展与迭代,大数据的成本也水涨船高,如何优化成本,建设低成本高效率的底层服务成为了有赞数据基础平台2020年的主旋律。本文主要介绍了随着云原生时代的到来,经历7年发展的有赞离线计算平台如何拥抱云原生,通过容器化改造、弹性伸缩、大数据组件的错峰混部,做到业务成倍增长的情况下成本负增长。首先介绍一下目前有赞离线计算的一些现状。万兆网卡的新集群,机器带宽不再是瓶颈。之前我们完成了一次跨云运营商(UCloud -> Qcloud)的集群迁移。而且新集群机型全部都是万兆的网卡(
前言spark.local.dir/SPARK_LOCAL_DIRS 用于Spark 在 Shuffle阶段临时文件及RDD持久化存储等,可以使用逗号分隔配置多个路径对应到不同的磁盘,Spark on Yarn时这个路径默认会被Yarn集群的配置LOCAL_DIRS所取代。在Spark on k8s下,这个路径默认是emptyDir这个Volume所对应的位置,可以简单的理解为java.io.tmpDir对应的/tmp目录。配置spark.kubernetes.driver.volumes.[Volu
Spark SQL入门示例首先,导入pom依赖:<properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <spark.version>3.1.1</spark.version> <spark.scala.version&
Go gin文件上传一、form表单上传文件1.单文件前端:<form action="/upload2" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="提交"></form>注意:设置enctype参数后端:func Upload2(context *gin.C
总体介绍⚓︎KubeOperator 是一个开源的轻量级 Kubernetes 发行版,专注于帮助企业规划、部署和运营生产级别的 Kubernetes 集群。KubeOperator 提供可视化的 Web UI,支持离线环境,支持物理机、VMware、OpenStack 和 FusionCompute 等 IaaS 平台,支持 x86 和 ARM64 架构,支持 GPU,内置应用商店,已通过 CNCF 的 Kubernetes 软件一致性认证。KubeOperator 使用 Terraform 在 I
K8S部署工具:KubeOperator主要概念部署模式⚓︎手动模式: 用户需要自己准备物理机或虚拟机,存储可选择 NFS 持久化存储,外部 ceph 存储等自动模式: 用户只需要绑定云平台(比如 VMware)账号信息,KubeOperator 会根据预先定义的部署计划来自动创建主机实现一键自动化部署部署计划⚓︎自动部署模式下,部署计划定 义了 Kubernetes 集群的部署细节,包括其部署模型、集群所在的区域、可用区、节点大小类型等区域和可用区⚓︎区域(Region)和可用区(AZ
K8S部署工具:KubeOperator系统架构系统架构⚓︎[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DxVnfjJL-1628818597768)(https://kubeoperator.io/images/screenshot/ko-framework.svg)]组件说明⚓︎kubeoperator_server: 提供平台业务管理相关功能的后台服务;kubeoperator_ui: 提供平台业务管理相关功能的前台服务;kubeoperator_kob
K8S部署工具:KubeOperator安装部署硬件要求⚓︎最小化配置角色CPU核数内存系统盘数量部署机48G100G1Master48G100G1Worker48G100G3推荐配置软件要求⚓︎kubeoperator 部署机需求项具体要求参考(以CentOS7.6为例)操作系统支持 Docker 的 Linux OScat /etc/redhat-releaseCPU 架构支持 x86_64
K8S部署工具:KubeOperator系统设置系统设置⚓︎仓库协议: 支持 http 和 https,默认 http仓库 IP: 默认为部署 KubeOperator 的服务器 IP。将使用该 IP 来访问 nexus 仓库CPU 架构: 支持 x86_64 和 arm64 ,即两种不同 CPU 架构的仓库如果部署 Kubernetes 集群时需要 K8S 节点采用 x86_64 和 arm64 混合部署,则需要添加两个不同 CPU 架构的仓库手动模式创建集群,需要提前设置好主机凭据
K8S部署工具:KubeOperator集群规划-自动模式KubeOperator 支持两种 Kubernetes 集群部署方式,一种是自动模式,另外一种是手动模式,我们推荐使用自动模式。在自动模式下,用户需要准备软件定义的 IaaS 云平台,比如 VMware vSphere、Openstack 和 FusionCompute 等本章节以 VMware vSphere 平台作为示例,讲解整个 K8s 集群的规划、部署及管理过程。部署示意图如下图所示:虚拟机配置⚓︎支持添加和修改虚拟机配置(CP
K8S部署工具:KubeOperator集群规划-手动模式KubeOperator 支持两种 Kubernetes 集群部署方式,一种是手动模式,另外一种是自动模式。手动模式下,用户需要自行准备主机。本章节以手动模式部署一个开发测试用集群为例,需要至少准备三台服务器,每台服务器的用途和需求是:角色数量操作系统最低配置推荐配置部署机1CentOS 7.64C 8G4C 16GMaster1CentOS 7.62C 4G4C 8GWorker1Ce
K8S部署工具:KubeOperator集群部署集群信息⚓︎项目: 选择集群所属项目供应商: 支持裸金属(手动模式)和部署计划(自动模式)版本: 支持版本管理中最新的两个 Kubernetes 版本架构: 支持 AMD64 和 ARM64Yum 仓库: 支持替换、共存和不操作三种类型Yum 仓库替换: 此操作将会对 K8S 节点服务器原始 yum repo 文件进行备份,之后生成并仅使用 KubeOperator 的 yum repo共存: 此操作将保持K8S节点服务器原始 yum
K8S部署工具:KubeOperator集群导入基本信息⚓︎输入要导入集群的名称、Api Server、Router、Token示例Api Server: https://172.16.10.100:8443Router: 装有 kube-proxy 的任意节点的且可以被访问到的 IP 地址Token: 要具有 cluster-admin 权限# 获取 cluster-admin 权限的 tokenkubectl -n kube-system describe secrets kube
linux 批量kill java进程ps -ef |grep java |grep -v grep|awk '{print $2}'|xargs kill -9
ansible register 用法ansible register 这个功能非常有用。当我们需要判断对执行了某个操作或者某个命令后,如何做相应的响应处理(执行其他 ansible 语句),则一般会用到register 。举个例子:我们需要判断sda6是否存在,如果存在了就执行一些相应的脚本,则可以为该判断注册一个register变量,并用它来判断是否存在,存在返回 succeeded, 失败就是 failed.- name: Create a register to represent the
Spark:部署和standalone配置调优spark可以不进行任何配置,直接运行,这时候spark像一个java程序一样,是直接运行在VM中的。spark还支持提交任务到YARN管理的集群,称为spark on yarn模式。spark还支持Mesos管理的集群,Mesos和YARN一样都是管理集群资源的。另外spark自己提供了一种完整的集群管理模式,就是standalone模式。这时候spark的运行不依赖于Hadoop YARN,需要配置$SPARK_HOME/conf/slaves文
pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd
用于将作业jar上传至此路径:
需要在有pom.xml文件的目录下执行,下面的目录执行会报错:no pomPS D:\Develop\oracle-driver> mvn install:install-file -Dfile=D:\Develop\oracle-driver\ojdbc14.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.1.0 -Dpackaging=jar换成下面的目录执行就没问题:E:\Workspace\Spark\spr
Linux 防火墙的基本认识2.1 NetfilterLinux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中Netfilter 是Linux2.4.x之后新一代的Linux防火墙机制,是linux内核的一个子系统。Netfilter采用模块化设计,具有良好的可扩充性,提供扩展各种网络服务的结构化底层框架。Netfilter与IP协议栈是无缝契合,并允许对数据报进行过滤、地址转换、处理等操作Netfilter官网文档:https://netfilte
MacOS themes:https://www.gnome-look.org/p/1241688/icons:https://www.gnome-look.org/p/1102582wallpaper:https://osxdaily.com/2018/08/03/25-new-macos-mojave-wallpapers/dock themes:https://www.gnome-look.org/p/1248226/sudo apt-get install gnome-tweaksudo
Playbook中使用变量变量名:仅能由字母、数字和下划线组成,且只能以字母开头变量定义:variable=value范例:http_port=80变量调用方式:通过{{ variable_name }} 调用变量,且变量名前后建议加空格,有时用“{{ variable_name }}”才生效变量来源:1.ansible 的 setup facts 远程主机的所有变量都可直接调用2.通过命令行指定变量,优先级最高 ansible-playbook -e varname=valu
root@ubuntu2104:/tmp/mozilla_zxl0# apt install spark-storeroot@ubuntu2104:/tmp/mozilla_zxl0# apt --fix-broken install
参考链接:https://www.cnblogs.com/jasonminghao/p/12378018.html
Go gin获取post请求数据注意:是post请求一、获取表单提交的数据1.contxt.PostForm(“username”) 获取表单中的name属性对应的值示例代码:前端:submit提交<form action="/hello_add" method="post"> <input type="text" name="username"><br> <input type="text" name="age"><br&g
Go gin获取GET请求参数一、带参数的路由:路径中直接加上参数值e.g. http://127.0.0.1:8080/user/hallen1.第一种情况:使用占位符: ,必须得指定这个路径路由:engine.GET("/user/:name",Index)如:http://127.0.0.1:8080/user/hallen,这里必须指定name这个路径,不然会找不到获取方式:context.Param(“name”)2.第二种情况:使用占位符*,可以不用匹配这个路径路由:eng
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号