MapReduce

RavenDB Map/Reduce/Transform on nested, variable-length arrays

狂风中的少年 提交于 2021-01-27 07:27:35
问题 I'm new to RavenDB, and am loving it so far. I have one remaining index to create for my project. The Problem I have thousands of responses to surveys (i.e. " Submissions "), and each submission has an array of answers to specific questions (i.e. " Answers "), and each answer has an array of options that were selected (i.e. " Values "). Here is what a single Submission basically looks like: { "SurveyId": 1, "LocationId": 1, "Answers": [ { "QuestionId": 1, "Values": [2,8,32], "Comment": null }

postgresql也很强大,为何mysql成为主流?

痞子三分冷 提交于 2021-01-26 19:02:55
今天在知乎上看到一个问题的告赞回答,觉得说的挺好的,转发一下。 作者:大宽宽 链接:https://www.zhihu.com/question/31955622/answer/1625152059 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 mysql和postgres的早期完全是两个极端。mysql更像是个“基本上满足关系数据库语法的大号KV”,对关系型数据库的高级功能支持的很不好。我入行时接触的MySQL 5.1和MyISAM存储引擎,不支持ACID,但有如下几点在当时的互联网公司看来是非常合适: 互联网公司为了扩展,长期的经验是,仅仅把数据库当作是一个“存储”,而非存储+核心数据逻辑的计算节点。大量的计算都在业务服务器上进行,而业务服务器可以无限水平扩展,而无需担心有状态的数据迁移问题; 因为没有提供很多高级功能和数据一致性的保障,mysql对于简单的sql支持的反而更加直接,在速度上有很大的优势; 对于OLTP,完全不需要复杂的数据处理功能。简单的select ... from ... where id = xxx; insert into xxx;update xxx set xxx=xxx where id = xxxx是OLTP的主流功能。基于这些功能的ORM的出现大大的提高了生产效率;对于OLAP

搭建高可用的flink JobManager HA

你。 提交于 2021-01-26 08:49:08
  JobManager协调每个flink应用的部署,它负责执行定时任务和资源管理。   每一个Flink集群都有一个jobManager, 如果jobManager出现问题之后,将不能提交新的任务和运行新任务失败,这样会造成单点失败,所以需要构建高可用的JobMangager。   类似zookeeper一样,构建好了高可用的jobManager之后,如果其中一个出现问题之后,其他可用的jobManager将会接管任务,变为leader。不会造成flink的任务执行失败。可以在单机版和集群版构建jobManager。   下面开始构建一个单机版flink的JobManger高可用HA版。   首先需要设置SSH免密登录,因为启动的时候程序会通过远程登录访问并且启动程序。   执行命令,就可以免密登录自己的机器了。如果不进行免密登录的话,那么启动的hadoop的时候会报 "start port 22 connection refused"。 ssh-keygen - t rsa ssh -copy- id -i ~/. ssh /id_rsa.pub huangqingshi@localhost   接下来在官网上下载hadoop的binary文件,然后开始解压,我下载的版本为hadoop-3.1.3版本

Spark-01 spark简介

南楼画角 提交于 2021-01-26 08:08:21
前言:大牛说由spark入手比较合适 1.spark简介 spark是个计算框架,不存东西。MapReduce是Hadoop里面做计算的,也不存东西,出现比spark早,自从spark活跃起来后mc的很多程序就被重写为spark程序了。spark的api使用起来也比较简单。   spark起源于2009年加州大学伯克利分校的实验室,20年成为开源项目,2014年就变成了apache的顶级项目。这里用spark2.3. 2,spark与MapReduce(mc)的比较 2-1 优缺点比较   yarn、Mapreduce、hdfs是hadoop的三大组件,mapreduce计算框架有如下缺点:   a.可编程性差。有很多模板代码,每写一次都要重复模板代码。 b.缺乏通用的计算引擎。例如:现在设计一个大数据平台,需要它可以离线计算、流处理,机器学习。方案一:用hadoop做离线计算、storm流处理、tensorflow做机器学习;方案二:只用spark,因为spark这三种都有。那么我们很容易选择方案二。当然了,大公司可能都用,但是那是因为历史原因,以前只有mc,现在也暂时换不了全部的spark。 c.计算速度慢。一个问题,是基于磁盘计算快还是内存快?当然是内存,内存比磁盘快几十倍。mc计算过程会存磁盘,spark会优先使用内存进行计算,内存不足的情况下才会选用磁盘。 总之

大数据计算系统学习笔记

倾然丶 夕夏残阳落幕 提交于 2021-01-20 17:37:17
1.大数据计算体系可归纳三个基本层次: 数据应用系统,数据处理系统,数据存储系统 2.计算的总体架构 HDFS(Hadoop 分布式文件系统) (1)设计思想:分而治之,将大文件大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析。 (2)首先,它是一个文件系统,用于存储文件,通过统一的命名空间–目录树来定位文件。然后,它是分布式的,又很多服务器联合起来实现其功能,集群中的服务器有各自的角色。有namenode和datanode两部分,有点类似索引结构,并采用备份的方式,例如第二namenode和b1出现3次。 数据处理系统的比较 主要看mapreduce和spark的两个极端,包括时延和硬件的需求。 mapreduce计算模型 3.计算模型和计算架构 来源: oschina 链接: https://my.oschina.net/u/4255691/blog/4915296

基于 OpenCV 的图像分割

*爱你&永不变心* 提交于 2021-01-17 05:56:34
点击上方 “ 小白学视觉 ”,选择加" 星标 "或“ 置顶 ” 重磅干货,第一时间送达 本期我们将一起来实现一个有趣的问题 -图像分割的算法。 本文的示例代码可以在以下链接中找到: https://github.com/kiteco/kite-python-blog-post-code/tree/master/image-segmentation 作为我们的例子,我们将对KESM显微镜获取的图像进行分割以获取其中的血管组织。 数据科学家和医学研究人员可以将这种方法作为模板,用于更加复杂的图像的数据集(如天文数据),甚至一些非图像数据集中。由于图像在计算机中表示为矩阵,我们有一个专门的排序数据集作为基础 。 在整个处理过程中,我们将使用 Python 包,以及OpenCV、scikit 图像等几种工具。除此之外,我们还将使用 numpy ,以确保内存中的值一致存储。 主要内容 去噪 为了消除噪声,我们使用简单的中位数滤波器来移除异常值,但也可以使用一些不同的噪声去除方法或伪影去除方法。这项工件由采集系统决定(显微镜技术),可能需要复杂的算法来恢复丢失的数据。工件通常分为两类: 1. 模糊或焦点外区域 2. 不平衡的前景和背景(使用直方图修改正确) 分割 对于本文,我们使用Otsu 的方法分割,使用中位数滤波器平滑图像后,然后验证结果。只要分段结果是二进制的

从0开始搭建数据仓库(2):产品经理如何“玩转”Hive SQL

自闭症网瘾萝莉.ら 提交于 2021-01-16 15:03:07
作者介绍 莲石东路@乌森 心之所向,***成长。从底层架构到应用实战,聊聊炼数成金背后的故事。 持续更新数据治理、数据科学、数据可视化、空间计算系列文章。 01 前言 公司新入职了的产品经理小美因为业务需要,想搭一个数据大屏方便自己查看数据。她找开发小王申请了数仓权限,然后从技术中台里找到了数据大屏的工具,把自己平时查数据用的sql搬上去跑,结果总是报错。 小美找到了做数据产品经理的师兄小帅看了看。 小帅:你这个查询有问题,业务系统的sql不能直接搬来用。 小美:我看长得差不多啊,除了多了个分区外,不都是sql吗? 小帅:你现在建的是Hive查询,Hive SQL虽说和SQL非常相似,但是一些细节上还是有区别的。 02 Hive SQL是什么? Hive是大数据领域常用的数据仓库组件,可以借助查询语言SQl将HDFS上存储的结构化文件映射成一张数据库表,并提供类SQL查询功能。Hive-SQL就是这个”类SQL查询功能”。Hive-SQL与SQL基本上一样,因为当初的设计目的,就是让会SQL不会编程MapReduce的也能完成处理数据工作。 【拓展】Hive-SQL是如何转化为MapReduce任务的呢?整个编译过程分为六个阶段: 1) Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象语法树AST Tree 2) 遍历AST Tree

Hadoop入门基础知识总结

谁说我不能喝 提交于 2021-01-13 08:46:27
  大数据时代的浪潮袭来,Hadoop作为一种用来处理海量数据分析的工具,是每一个大数据开发者必须要学习和掌握的利器。本文总结了Hadoop入门基础知识,主要包括了Hadoop概述、Hadoop的发展历程和Hadoop的特性。下面一起来看看吧!   1、Hadoop概述   Hadoop 是 Apache 旗下的一个用 Java 语言实现开源软件框架,它还是一个开发和运行处理大规模数据的软件平台。Hadoop允许使用简单的编程模型,在大量计算机集群上,对大型数据集进行分布式处理。   狭义上说,Hadoop 指 Apache 这款开源框架,它的核心组件有:HDFS(分布式文件系统):解决海量数据存储 ;YARN(作业调度和集群资源管理的框架):解决资源任务调度;MAPREDUCE(分布式运算编程框架):解决海量数据计算。   广义上来说,Hadoop 通常是指一个更广泛的概念——Hadoop 生态圈。当下的 Hadoop 已经成长为一个庞大的体系,随着生态系统的成长,新出现的项目越来越多,其中不乏一些非 Apache 主管的项目,这些项目对 HADOOP 是很好的补充或者更高层的抽象。比如,HDFS: 分 布 式 文 件 系 统;MAPREDUCE:分布式运算程序开发框架;HIVE:基于 HADOOP 的分布式数据仓库,提供基于 SQL 的查询数据操作;HBASE

hadoop基础知识总结

自古美人都是妖i 提交于 2021-01-13 08:36:49
Hadoop 是一个由 Apache基金会所开发的 分布式系统 基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。具有可靠、高效、可伸缩的特点。 Hadoop生态圈: MapReduce: 分布式计算框架 Yarn: 集群资源管理和调度平台 Hdfs: 分布式文件系统 Hive: 数据仓库 HBase: 实时分布式数据库 Flume: 日志收集工具 Sqoop: 数据库 ETL工具 Zookeeper: 分布式协作服务 Mahout: 数据挖掘库 Hadoop由4个主要构成部分: 1) 基础核心:提供基础的通用的功能, 一组分布式文件系统和通用 I/O的组件与接口(序列化、Java RPC和持久化数据结构) 2) HDFS:分布式存储, 高容错性适合部署在廉价的机器上。 HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序,HDFS块的默认大小64 MB 3) MapReduce:分布式计算 4) YARN:资源分配(多个任务是排队执行还是同时执行) HDFS由3种主要的节点构成: 1) NameNode :用来存储数据的存放位置等元数据(不存放数据)(如文件名、文件大小、文件所在目录、所有者名称、读写执行权限等) 2) DataNode :只用来存储数据 3)

Hadoop三大组件以及Hive的基础认知

落花浮王杯 提交于 2021-01-11 08:28:11
Hadoop三大组件: 分布式文件系统:HDFS —— 实现将文件分布式存储在很多的 服务器 上(分布式存储) 分布式运算编程框架:MapReduce——实现多台机器的分布式并行运算。(分布式运算) 分布式资源调度平台:YARN —— 帮用户调度大量的mapreduce程序,并合理分配运算资源 Hive 入门 Hive构建在Hadoop上 HQL中对查询语句的解释、优化、生成查询计划是由Hive完成的所有的数据存储在Hadoop上。 查询计划被转化为 MapReduce 任务(job),在 Hadoop 中执行(有些查询没有 MR 任务,如:select * from table) Hadoop和Hive都是用UTF-8编码的 常见数据库(database简称DB) 关系型数据库(关系型数据库就是由二维表及其之间的联系组成的一个数据组织): mysql oracle sqlServer postgresql(小oracle) 非关系型数据库:mangodb hbase redis 数据仓库datawarehouse简称DW(数据处理分为两大类,) 数据仓库和数据库的区别: 数据仓库的数据量大,数据库以数据量小 数据仓库可新增但很慢,且复杂并且不能修改删除,一般只用于大批量查询; 数据库支持量小的增删改查 数据仓库是用来分析(OLAP)的,以读操作为主;数据库主要用来处理事务