rack

填坑Ⅰ | 简单的数据结构

别说谁变了你拦得住时间么 提交于 2020-10-01 08:21:04
19. 填坑Ⅰ 成绩 10 开启时间 2020年09月17日 星期四 12:00 折扣 0.8 折扣时间 2020年09月24日 星期四 12:00 允许迟交 否 关闭时间 2020年10月10日 星期六 23:00 Description 又是北湖深坑,惊不惊喜,意不意外?! Rack觉得用水填湖太没意思了,用石头填坑多有意思。假设北湖的地面还是一维的,每一块宽度都为1,高度是非负整数,用一个数组来表示。现提供不限量的1x2规格的石头,问是否可以将北湖填平。(所有地面到达同一高度即为填平) 注:石头只能水平或垂直填放。 Input 样例有多组输入至文件末尾;每组用例占两行; 第一行输入1个整数n表示北湖地面总宽度; 第二行输入n个整数用空格间隔,表示地面高度。 Output 若能填平则输出“YES”,否则输出“NO”。 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 5↵ 2 1 1 2 5↵ 3↵ 4 5 3↵ 3↵ 1 2 3↵ YES↵ YES↵ NO↵ 1秒 64M 0 一、预热知识 在说具体的算法之前,首先我们要知道 栈 这个 数据结构 ,之前在 “括号匹配” 里我已经简单提到过栈。关于栈,你现在只需要知道两点 1、它的特点: 单口出入,先进后出。 2、它的使用 注意,小学期你直接学会c++封装的STL的使用即可,至于它是怎么实现的

Cassandra Gossip协议的二三事儿

主宰稳场 提交于 2020-10-01 01:23:45
摘要: Gossip协议是Cassandra维护各节点状态的一个重要组件,下面我们以Gossip协议三次握手为线索逐步分析Gossip协议源码。 Gossip协议是Cassandra维护各节点状态的一个重要组件,下面我们以Gossip协议三次握手为线索逐步分析Gossip协议源码。 Gossip协议通过判断节点的 generation 和 version 来确认节点状态信息新旧,如果节点重启,则generation加一,version每次从零开始计算。所以 generation是大版本号,version为小版本号,理解这个概念对后面的握手逻辑有很大帮助。 Gossip协议最重要的一个属性是endpointStateMap ,这个map以address为key,以EndpointState为value维护节点自身状态信息。EndopointState 包含了节点 net_version,host_id,rpc_address,release_version,dc,rack,load,status,tokens 信息。总体来说,所有节点维护的endpointStateMap应该是一致的,如果出现不一致信息或者新增,替换,删除节点 ,这中间的状态维护就要靠Gossip来实现了。 另外一个重要属性subscribers ,当节点状态变更时候,gossip 会通知各个subscribers。

到底要不要走TCP隧道,要不要TCP over TCP?

孤街醉人 提交于 2020-08-19 22:11:15
还是这篇文章: http://sites.inka.de/sites/bigred/devel/tcp-tcp.html 有100个理由说TCP在某种场景下不好,就有100个理由说TCP在同样的场景了好的不得了,这就好像面对中医或者传统武术一样, 古老陈旧的东西总是被拿来被吹捧或者被打压。 TCP是个30年前陈旧的协议,在计算机网络的编年史中,TCP是一个古代的协议。 TCP在长距离传输时窗口打开太慢; TCP对丢包无法预测; TCP对RTT测不准; TCP对网络拥塞事件反应迟钝; … 这是一个保守的协议。 数据要传输到另一个地方,中间要经过一个隧道,如何构建这个隧道是一个技术问题。 考虑TCP over TCP会怎样? TCP作为一个按序接收的有状态可靠的端到端传输协议,是因为它对下层的链路做了一个假设: 下层是不可靠的!! TCP的很多特性都源自于这个 不可靠假设 。所以TCP屏蔽掉这个假设之后, TCP是可靠的! TCP over TCP?TCP同时作为链路协议和负载协议?是的! 那么 在TCP over TCP中,不可靠假设就失效了! ,因为 TCP是可靠的! 只要内层TCP的RTO超时时间小于外层TCP的RTO超时时间,悲剧就发生了,指数退避会让连接崩溃。 但是,这很少发生,在支持FACK/SACK/RACK的 现代TCP 中,RTO很少被触发

第一次搭建kubernetes经历

情到浓时终转凉″ 提交于 2020-08-17 06:44:38
1.准备部署环境 master 192.168.40.162 node 192.168.40.220 2.下载部署包(从192.168.40.33复制部署包) scp /opt/kylincloud2_2.0_ft2000_v0.0.1.13_20200511.tar.gz root@192.168.40.162:/opt/ 3.免密认证 通过192.168.40.192对192.168.40.162及192.168.40.220做免密认证,即master节点对自身及所有node节点做免密认证 (1)ssh-keygen -t rsa (2)cat id_rsa.pub>>authorized_keys (3)chmod 710 authorized_keys (4)scp -r authorized_keys root@192.168.40.220:~/.ssh 4.时间同步 (1)ntpdate 192.168.40.253(此命令分别执行在master及node) 将192.168.40.162和192.168.40.220统一与192.168.40.253时间保持一致,即master及所有节点保持统一一致时间 (2)hwclock -w(此命令分别执行在master及node) 将软件时间写入硬件时间,硬件时间是BIOS的时间 5.根据需求修改default.yaml文件

分布式存储Seaweedfs源码分析

霸气de小男生 提交于 2020-08-13 15:51:15
基于源码版本号 0.67 , 【Seaweedfs以前旧版叫Weedfs】。 Seaweedfs 是一个非常优秀的由 golang 开发的分布式存储开源项目, 虽然在我刚开始关注的时候它在 github.com 上面只有 star 50+, 但是我觉得这个项目是一个几千 star 量级的优秀开源项目。 Seaweedfs 的设计原理是基于 Facebook 的一篇图片存储系统的论文 Facebook-Haystack , 论文很长,但是其实原理就几句话,可以看看 Facebook图片存储系统Haystack , 我觉得 Seaweedfs 是青出于蓝而胜于蓝。 Seaweedfs 这个开源系统涵盖的面比较多, 很难在一篇文章里面说清楚, 只能尽可能清楚的说说主要的部分。 源码目录结构 核心模块 weed 入口目录 weed/weed_server 入口目录与HTTP服务相关 topology 核心模块,主要包括 【DataCenter, Rack, DataNode】 三层拓扑结构。 storage 核心模块,主要包括【Store, Volume, Needle】这三大块存储相关的源码。 辅助模块 sequence 负责FileID的全局有序生成 filer 提供支持 HTTP REST 操作的文件服务器,其实就是基于 leveldb 把文件名和目录结构存储起来。 stats

使用webgl(three.js)创建3D机房,3D机房微模块详细介绍(升级版二)

巧了我就是萌 提交于 2020-08-13 01:44:50
序: 上节课已经详细描述了普通机房的实现过程,文章地址( https://www.cnblogs.com/yeyunfei/p/10473021.html ) 紧接着上节课的内容 我们这节可来详细讲解机房微模块的三维实现 首先我们先看一下整体的效果图: 这是单个微模块的模拟最后的系统效果 下面我们进入正文,详细讲解创建过程(机房的以及其它动力环境的创建 前面的课程已经讲诉 这里不在累赘描述) 一、创建组件   正所谓造车得现有轮子,那么搭建整个机房得先创建一个个小的组件,最后组合成大的模块。我们的步骤是由内而外。   1.1、先创建服务器,大量的json参数 利于控制服务器的所有属性 var server={//服务器模型参数 "show": true, "uuid": "", "name": "equipment_card_2_4", "objType": "cube", "length": 60, "width": 65, "height": 20, "x": 0, "y": 300, "z": 0, "style": { "skinColor": 9593611, "skin": { "skin_up": { "skinColor": 9593611, "imgurl": "../../img/3dImg/rack_inside.jpg" }, "skin_down": {

什么是云计算?

流过昼夜 提交于 2020-08-11 17:20:14
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 云通常是指全球互联网或网络,而计算是指由远程提供商作为服务提供的虚拟资源。通过资源提供的服务可以是软件、基础设施、平台、设备和其他资源。以下深入探讨了这个主题,给出了有关云计算基础知识的快速思路。 概述 使用在线资源是当今计算机领域的一个普遍现象。大多数企业应用程序,无论是电子商务、银行、教育还是医疗保健,都是在考虑当前趋势的情况下构建的。这导致了从存储到原始处理能力的大量在线资源的使用。由于单个服务器无法满足需求,应用程序被驱动使用分布式系统。互联网是一个可以在云计算模型中使用的现成平台,尽管它并不局限于此。一些原来应在内部部署环境下运行的应用程序有一个在线对应程序来平衡低成本使用的需求。例如,像microsof tWord这样的Office应用程序,基本上是一个桌面应用程序,它的在线界面可以在云计算领域工作。越来越多的应用程序是在考虑云计算及其效用的情况下构建的。它有几个优点。例如: 通过使用在线资源,位置变得独立。因此,只要有全球互联网连接,就可以从任何地方访问应用程序。 可以很大限度地减少组织在硬件和软件上的资本支出。 客户可以专注于资源的实用性或订阅,因此可以更好地管理其支出。 可以根据需要获取或终止订阅。这为资源的使用提供了更大的灵活性。 几乎无需维护所购资源的成本

Git 工具

感情迁移 提交于 2020-08-11 00:18:52
from: https://git-scm.com/book/zh/v1/Git-工具-子模块 Git 工具 - 子模块 子模块 经常有这样的事情,当你在一个项目上工作时,你需要在其中使用另外一个项目。也许它是一个第三方开发的库或者是你独立开发和并在多个父项目中使用的。这个场景下一个常见的问题产生了:你想将两个项目单独处理但是又需要在其中一个中使用另外一个。 这里有一个例子。假设你在开发一个网站,为之创建Atom源。你不想编写一个自己的Atom生成代码,而是决定使用一个库。你可能不得不像CPAN install或者Ruby gem一样包含来自共享库的代码,或者将代码拷贝到你的项目树中。如果采用包含库的办法,那么不管用什么办法都很难去定制这个库,部署它就更加困难了,因为你必须确保每个客户都拥有那个库。把代码包含到你自己的项目中带来的问题是,当上游被修改时,任何你进行的定制化的修改都很难归并。 Git 通过子模块处理这个问题。子模块允许你将一个 Git 仓库当作另外一个Git仓库的子目录。这允许你克隆另外一个仓库到你的项目中并且保持你的提交相对独立。 子模块初步 假设你想把 Rack 库(一个 Ruby 的 web 服务器网关接口)加入到你的项目中,可能既要保持你自己的变更,又要延续上游的变更。首先你要把外部的仓库克隆到你的子目录中。你通过 git submodule add

java大数据最全课程学习笔记(3)--HDFS 简介及操作

天大地大妈咪最大 提交于 2020-08-10 07:32:51
目前 CSDN , 博客园 , 简书 同步发表中,更多精彩欢迎访问我的 gitee pages 目录 HDFS 简介及操作 HDFS概述 HDFS产出背景及定义 HDFS优缺点 HDFS组成架构 HDFS文件块大小(重点) HDFS的Shell操作(开发重点) 基本语法 命令大全 常用命令实操 HDFS客户端操作(开发重点) HDFS客户端环境准备 常用API HDFS的I/O流操作 HDFS的数据流(重点) HDFS写数据流程 剖析文件写入 异常写流程 网络拓扑-节点距离计算 机架感知(副本存储节点选择) HDFS读数据流程 其他注意事项 HDFS 简介及操作 HDFS概述 HDFS产出背景及定义 HDFS优缺点 HDFS组成架构 HDFS文件块大小(重点) 块在传输时,每64K还需要校验一次,因此块大小,必须为2的n次方,最接近100M的就是128M! 如果公司使用的是固态硬盘,写的速度是300M/S,将块大小调整到 256M 如果公司使用的是固态硬盘,写的速度是500M/S,将块大小调整到 512M 但是块的大小不能设置太小,也不能设置太大 太大 在一些分块读取的场景,不够灵活,会带来额外的网络消耗 在上传文件时,一旦发生故障,会造成资源的浪费 太小 同样大小的文件,会占用过多的NN的元数据空间 在进行读写操作时,会消耗额外的寻址时间 HDFS的Shell操作(开发重点)

java大数据最全课程学习笔记(3)--HDFS 简介及操作

一世执手 提交于 2020-08-08 05:15:07
目前 CSDN , 博客园 , 简书 同步发表中,更多精彩欢迎访问我的 gitee pages 目录 HDFS 简介及操作 HDFS概述 HDFS产出背景及定义 HDFS优缺点 HDFS组成架构 HDFS文件块大小(重点) HDFS的Shell操作(开发重点) 基本语法 命令大全 常用命令实操 HDFS客户端操作(开发重点) HDFS客户端环境准备 常用API HDFS的I/O流操作 HDFS的数据流(重点) HDFS写数据流程 剖析文件写入 异常写流程 网络拓扑-节点距离计算 机架感知(副本存储节点选择) HDFS读数据流程 其他注意事项 HDFS 简介及操作 HDFS概述 HDFS产出背景及定义 HDFS优缺点 HDFS组成架构 HDFS文件块大小(重点) 块在传输时,每64K还需要校验一次,因此块大小,必须为2的n次方,最接近100M的就是128M! 如果公司使用的是固态硬盘,写的速度是300M/S,将块大小调整到 256M 如果公司使用的是固态硬盘,写的速度是500M/S,将块大小调整到 512M 但是块的大小不能设置太小,也不能设置太大 太大 在一些分块读取的场景,不够灵活,会带来额外的网络消耗 在上传文件时,一旦发生故障,会造成资源的浪费 太小 同样大小的文件,会占用过多的NN的元数据空间 在进行读写操作时,会消耗额外的寻址时间 HDFS的Shell操作(开发重点)