Bubble

面向大数据与云计算调度挑战的阿里经济体核心调度系统—Fuxi 2.0全揭秘

青春壹個敷衍的年華 提交于 2020-08-11 08:47:09
本文作者 李超 阿里云智能 资深技术专家 编者按 伏羲(Fuxi)是十年前最初创立飞天平台时的三大服务之一(分布式存储 Pangu,分布式计算 MaxCompute,分布式调度 Fuxi),当时的设计初衷是为了解决大规模分布式资源的调度问题(本质上是多目标的最优匹配问题)。 随阿里经济体和阿里云丰富的业务需求(尤其是双十一)和磨练,伏羲的内涵不断扩大, 从单一的资源调度器(对标开源系统的YARN)扩展成大数据的核心调度服务,覆盖数据调度(Data Placement)、资源调度(Resouce Management)、计算调度(Application Manager)、和本地微(自治)调度(即正文中的单机调度)等多个领域, 并在每一个细分领域致力于打造超越业界主流的差异化能力。 过去十年来,伏羲在技术能力上每年都有一定的进展和突破(如2013年的5K,15年的Sortbenchmark世界冠军,17年的超大规模离在/在离混布能力,2019年的 Yugong 发布并论文被VLDB接受等等)。本文试从面向大数据/云计算的调度挑战出发,介绍各个子领域的关键进展,并回答什么是“伏羲 2.0”。 1. 引言 过去10年,是云计算的10年,伴随云计算的爆炸式增长,大数据行业的工作方式也发生了很大的变化:从传统的自建自运维hadoop集群,变成更多的依赖云上的弹性低成本计算资源

Automatic Extraction of Personality from Text Challenges and Opportunities 阅读笔记

守給你的承諾、 提交于 2020-08-11 04:57:12
Automatic Extraction of Personality from Text Challenges and Opportunities 阅读笔记 论文地址 https://ieeexplore.ieee.org/document/9005467/ 摘要 在这项研究中,我们研究了从文本中提取人格特质的可能性。我们通过让专家在来自多个在线来源的大量文本中注释个性特征来创建了一个大数据集。从这些带注释的文本中,我们选择了一个样本,并进行了 进一步的注释 ,得到了两个数据集 ( 一个是大型低可靠性的数据集, 另一个是小型高可靠性的数据集 )。然后我们使用这两个数据集来训练和测试几种机器学习模型,以从文本中提取个性。最后,我们对来自不同领域的野生数据集进行了评估。我们的结果表明,基于小型高可靠性数据集的模型比基于大型低可靠性数据集的模型表现更好。而且基于小型高可靠性数据集的语言模型的性能要优于随机Baseline方法。最后,结果表明,在野生数据集测试时, 我们最好的模型的性能没有比随机基准更好 。我们的结果表明,从文本中确定人格特征仍然是一个挑战,并且在野生数据集测试之前无法对模型性能做出明确的结论。 1. 介绍 THE BIG FIVE 模型, 把人的个性分为5种类型: 开放性(openness):具有想象、审美、情感丰富、求异、创造、智能等特质。 责任心

详细领悟ThreadLocal变量

橙三吉。 提交于 2020-08-10 18:14:48
关于对ThreadLocal变量的理解,我今天查看一下午的博客,自己也写了demo来测试来看自己的理解到底是不是那么回事。从看到博客引出不解,到仔细查看ThreadLocal源码(JDK1.8),我觉得我很有必要记录下来我这大半天的收获, 今天我研究的最多的就是这两篇文章说理解。我在这里暂称为A文章和B文章。以下是两篇博文地址,我是在看完A文章后,很有疑问,特别是在A文章后的各位网页的评论中,更加坚定我要弄清楚ThreadLocal到底是怎么一回事。 A文章:http://blog.csdn.net/lufeng20/article/details/24314381 B文章:http://www.cnblogs.com/dolphin0520/p/3920407.html 首先,我们从字面上的意思来理解ThreadLocal,Thread:线程,这个毫无疑问。那Local呢?本地的,局部的。也就是说,ThreadLocal是线程本地的变量,只要是本线程内都可以使用,线程结束了,那么相应的线程本地变量也就跟随着线程消失了。 以下内容是个人参考他人文章,理解总结出来,偏差之处,欢迎指正。 全篇包括两个部分,我希望大家对 ThreadLocal源码已经有一定了解 ,我在文章中没有具体分析源码: 第一部分是说明ThreadLocal不是用来做变量共享的。

十大排序算法

☆樱花仙子☆ 提交于 2020-08-10 01:40:19
本博客只写实现的思想,相关代码地址在: gitee github 排序动画演示: 排序动画演示 0、排序算法概述 0.1 排序算法分类 十种常见排序算法可以分为两大类: 比较类排序 :通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序 :不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 0.2 算法复杂度 快速记忆上表打油诗 : 30秒让你记住所有排序算法-宋词记忆法 . 0.3 复杂度分析递推式 . 0.4 相关概念 稳定 :如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定 :如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。 时间复杂度 :对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。 空间复杂度 :是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。 1、冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 1.1 经典冒泡

最全vue的vue-amap使用高德地图插件画多边形范围

江枫思渺然 提交于 2020-08-07 01:32:26
一、在vue-cli的框架下的main.js(或者main.ts)中引入高德插件,代码如下: import Vue from 'vue' import VueAMap from 'vue-amap' import ElementUI from 'element-ui' import App from './App.vue' import router from './router' import store from './store' import './registerServiceWorker' Vue.use(VueAMap) Vue.use(ElementUI) VueAMap.initAMapApiLoader({ // 高德的key key: '你的高德key', // 插件集合 plugin: [ 'AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor', 'AMap.Geocoder', 'AMap.Geolocation' ], // 高德 sdk 版本,默认为 1.4.4 v: '1.4.10' }) Vue.config

面试官:手撕十大排序算法,你会几种?

我与影子孤独终老i 提交于 2020-08-06 12:08:06
原文链接: 面试官:手撕十大排序算法,你会几种? 演示地址: 点击查看演示 在前面三期,介绍了动态规划的两个主要特性:交叠子问题和最优子结构,并用七种方式求解第n项斐波那契数,感受了算法的强大,你是否也领略到它的精髓呢? 《深入浅出理解动态规划(一) | 交叠子问题》 《深入浅出理解动态规划(二) | 最优子结构》 《用x种方式求第n项斐波那契数,99%的人只会第一种》 今天我们就来讨论面试官最喜欢问到的排序算法吧,从冒泡排序、选择排序、插入排序等十大排序算法的排序步骤、代码实现两个方面入手,彻底搞清实现原理,保证面试道路一路畅通。 01 排序算法的概述 所谓排序算法,就是通过特定的算法因式将一组或多组数据按照一定模式进行重新排序。 这种新序列遵循着一定的规则,体现出一定的规律,因此,经处理后的数据便于筛选和计算,大大提高了计算效率。 02 排序算法的分类 03评价标准 (1)时间复杂度:即从序列的初始状态到经过排序算法的变换移位等操作变到最终排序好的结果状态的过程所花费的时间度量。 (2)空间复杂度:就是从序列的初始状态经过排序移位变换的过程一直到最终的状态所花费的空间开销。 (3)稳定性:稳定性是不管考虑时间和空间必须要考虑的问题,往往也是非常重要的影响选择的因素。 04 实现步骤与代码 冒泡排序(Bubble Sort) 冒泡排序是一种简单直观的排序算法

2019年六月段落匹配题目:电商和实体店的竞争

心不动则不痛 提交于 2020-08-06 07:43:04
  Section B   Directions: In this section, you are going to read a passage with ten statements attached to it. Each statement contains information given in one of the paragraphs. Identify the paragraph from which the information is derived. You may choose a paragraph more than once. Each paragraph is marked with a letter. Answer the questions by marking the corresponding letter on Answer Sheet 2.   The Best Retailers Combine Bricks and Clicks   A) Retail profits are falling sharply. Stores are closing. Malls are emptying. The depressing stories just keep coming. Reading the earnings

web前端 javascript 兼容低版本 IE 6 7 8复合写法

这一生的挚爱 提交于 2020-08-05 15:37:43
1. 返回 检测屏幕宽度 ( 可视区域 ) 1 function client() { 2 if (window.innerWidth != null ) // ie9 + 最新浏览器 3 { 4 return { 5 width: window.innerWidth, 6 height: window.innerHeight 7 } 8 } 9 else if (document.compatMode === "CSS1Compat") // 标准浏览器 10 { 11 return { 12 width: document.documentElement.clientWidth, 13 height: document.documentElement.clientHeight 14 } 15 } 16 return { // 怪异浏览器 17 width: document.body.clientWidth, 18 height: document.body.clientHeight 19 } 20 } 2. 阻止冒泡 w3c 的方法是 event.stopPropagation() proPagation 传播 传递 IE 则是使用 event.cancelBubble = true bubble 冒泡 泡泡 cancel 取消 兼容的写法: JQuery 阻止时间冒泡

C++冒泡排序 (基于函数模板实现)

巧了我就是萌 提交于 2020-08-04 23:40:03
冒泡排序是一种简单的排序算法。 1 #pragma once 2 #include <iostream> 3 #include <assert.h> 4 using std::cout; 5 using std::endl; 6 template <typename T> void Swap(T &a, T & b) 7 { 8 T temp = a; 9 a = b; 10 b = temp; 11 } 12 13 template <typename T> void Bubble(T a[], unsigned int n) 14 { 15 assert( sizeof (a) / sizeof (T) != n); 16 for ( int k = 0 ; k < n; ++ k) 17 cout << a[k] << " \t " ; 18 cout << endl; 19 20 int loop = 0 ; 21 for ( int i = 1 ; i < n - 1 ; ++ i) 22 { 23 bool sorted = true ; 24 cout << " 第 " << i << " 次循环 " << endl; 25 for ( int j = 1 ; j < n; ++ j) 26 { 27 if (a[j] < a[j - 1 ]) 28 { 29

看动画学算法之:排序-冒泡排序

半城伤御伤魂 提交于 2020-07-29 08:09:18
简介 排序可能是所有的算法中最最基础和最最常用的了。排序是一个非常经典的问题,它以一定的顺序对一个数组(或一个列表)中的项进行重新排序。 排序算法有很多种,每个都有其自身的优点和局限性。 今天我们来学习最最简单的冒泡排序算法。 冒泡排序的原理 冒泡排序的原理很简单,我们想象一下一个一个的气泡上浮的过程。 假设我们有八个数字 29,10,14,37,20,25,44,15 要进行排序。 我们先用一个动画图来直观的观察一下整个冒泡排序的过程: 排序共进行八轮,每一轮都会做两两比较,并将较大的元素右移,就像冒泡一下。 一轮结束之后,八个元素中最大的那个元素44将会移动到最右边。 然后再重复其他的几轮。最终得到一个完全排序的数组。 也可以这样看: 第一轮是将八个元素中的最大值44交换移动到最右位置。 第二轮是将八个元素中的次大值37交换移动到最右位置。 以此类推。 冒泡排序算法的java实现 我们先看一个最简单的冒泡算法: public class BubbleSort { public void doBubbleSort(int[] array){ log.info("排序前的数组为:{}",array); //外层循环,遍历所有轮数 for(int i=0; i< array.length-1; i++){ //内层循环,两两比较,选中较大的数字,进行交换 for(int j=0; j