MapReduce

快速掌握用python写并行程序

醉酒当歌 提交于 2020-04-22 04:24:32
[TOC] 小子今天想来谈谈“并行计算”,作为一个非科班人员,我为什么去捣鼓这么一个在科班里也比较专业的问题了。这就要说下我前几天做的一个作业了,当时我用python写了个程序,结果运行了一天,这个速度可让我愁了,我还怎么优化,怎么交作业啊。于是小子就去各大论坛寻丹问药了,终于让我发现可以用并行计算来最大化压榨电脑的CPU,提升计算效率,而且python里有multiprocessing这个库可以提供并行计算接口,于是小子花1天时间改进程序,终于在规定时间内做出了自己满意的结果,上交了作业。之后,小子对并行计算充满了兴趣,于是又重新在Google上游历了一番,大致弄清了GPU、CPU、进程、线程、并行计算、分布式计算等概念,也把python的multiprocessing耍了一遍,现在小子也算略有心得了,所以来此立碑,以示后来游客。 小子本文分为四部分,一是大数据时代现状,其二是面对挑战的方法,然后是用python写并行程序,最后是multiprocessing实战。 一、大数据时代的现状 当前我们正处于大数据时代,每天我们会通过手机、电脑等设备不断的将自己的数据传到互联网上。据统计,YouTube上每分钟就会增加500多小时的视频,面对如此海量的数据,如何高效的存储与处理它们就成了当前最大的挑战。 但在这个对硬件要求越来越高的时代,CPU却似乎并不这么给力了。自2013年以来

Flink 新场景:OLAP 引擎性能优化及应用案例

时光怂恿深爱的人放手 提交于 2020-04-21 10:33:34
摘要:本文由阿里巴巴技术专家贺小令(晓令)分享,主要介绍 Apache Flink 新场景 OLAP 引擎,内容分为以下四部分: 背景介绍 Flink OLAP 引擎 案例介绍 未来计划 一、背景介绍 1.OLAP 及其分类 OLAP 是一种让用户可以用从不同视角方便快捷的分析数据的计算方法。主流的 OLAP 可以分为3类:多维 OLAP ( Multi-dimensional OLAP )、关系型 OLAP ( Relational OLAP ) 和混合 OLAP ( Hybrid OLAP ) 三大类。 (1)多维 OLAP ( MOLAP ) 传统的 OLAP 分析方式 数据存储在多维数据集中 (2)关系型 OLAP ( ROLAP ) 以关系数据库为核心,以关系型结构进行多维数据的表示 通过 SQL 的 where 条件以呈现传统 OLAP 的切片、切块功能 (3)混合 OLAP ( HOLAP ) 将 MOLAP 和 ROLPA 的优势结合起来,以获得更快的性能 以下将详细介绍每种分类的具体特征。 ■ 多维 OLAP ( MOLAP ) MOLAP 的典型代表是 Kylin 和 Druid。 MOLAP 处理流程 首先,对原始数据做数据预处理;然后,将预处理后的数据存至数据仓库,用户的请求通过 OLAP server 即可查询数据仓库中的数据。 MOLAP 的优点和缺点

spark——详解rdd常用的转化和行动操作

…衆ロ難τιáo~ 提交于 2020-04-21 06:20:06
本文始发于个人公众号: TechFlow ,原创不易,求个关注 今天是 spark第三篇 文章,我们继续来看RDD的一些操作。 我们前文说道在spark当中RDD的操作可以分为两种,一种是 转化操作(transformation) ,另一种是 行动操作(action) 。在转化操作当中,spark不会为我们计算结果,而是会生成一个新的RDD节点,记录下这个操作。只有在行动操作执行的时候,spark才会从头开始计算整个计算。 而转化操作又可以进一步分为针对元素的转化操作以及针对集合的转化操作。 针对元素的转化操作 针对元素的转化操作非常常用,其中最常用的就是map和flatmap。从名字上看这两者都是map操作,map操作我们都知道,在之前的MapReduce文章以及Python map、reduce用法的文章当中都有提及。简而言之就是可以将一个操作映射在每一个元素上。 比如假设我们有一个序列[1, 3, 4, 7],我们希望将当中每一个元素执行平方操作。我们当然可以用for循环执行,但是在spark当中更好的办法是使用map。 nums = sc.parallelize([ 1 , 3 , 4 , 7 ]) spuare = nums.map( lambda x: x * x) 我们知道map是一个转化操作,所以square 仍然是一个RDD ,我们直接将它输出不会得到结果

Yarn 调度器Scheduler详解

故事扮演 提交于 2020-04-20 04:21:57
Heaven-Wang 最后发布于2015-10-30 11:32:35 阅读数 17924 收藏 14 展开 理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源。在Yarn中,负责给应用分配资源的就是Scheduler。其实调度本身就是一个难题,很难找到一个完美的策略可以解决所有的应用场景。为此,Yarn提供了多种调度器和可配置的策略供我们选择。 一、调度器的选择 在Yarn中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,FairS cheduler。 FIFO Scheduler把应用按提交的 顺序排成一个队列,这是一个先进先出队列,在进行资源分配的时候,先给队列中最头上的应用进行分配资源,待最头上的应用需求满足后再给下一个分配 ,以此类推。 FIFO Scheduler是最简单也是最容易理解的调度器,也不需要任何配置,但它并不适用于共享集群。大的应用可能会占用所有集群资源,这就导致其它应用被阻塞。在共享集群中,更适合采用Capacity Scheduler或Fair Scheduler,这两个调度器都允许大任务和小任务在提交的同时获得一定的系统资源。 下面“Yarn调度器对比图”展示了这几个调度器的区别

hadoop搭建集群

。_饼干妹妹 提交于 2020-04-19 01:05:01
**hadoop搭建集群** 1、关闭防火墙 1)查看防火墙状态 firewall-cmd --state 2)停止firewall systemctl stop firewalld.service 3)禁止firewall开机启动 systemctl disable firewalld.service 2、时间同步 命令行输入:yum install ntp 下载ntp插件 , 下载完成后 命令行输入:ntpdate -u ntp1.aliyun.com 然后命令行输入:date 如果出现如下情况表示配置成功: 3、配置服务器(我这里是以4台为例) 1个主节点:doop1(192.168.0.103),2个(从)子节点,doop2(192.168.0.104),doop3(192.168.0.105),doop4(192.168.0.106) 2、配置主节点名(192.168.0.103) 在命令行输入: vi /etc/sysconfig/network 添加内容: NETWORKING=yes HOSTNAME=doop1 配置三台子节点名(192.168.0.104),(192.168.0.105),(192.168.0.106): vi /etc/sysconfig/network 添加内容: NETWORKING=yes HOSTNAME=doop2 vi /etc

同步工具类—— CountDownLatch

最后都变了- 提交于 2020-04-18 12:28:23
本博客系列是学习并发编程过程中的记录总结。由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅。 并发编程系列博客传送门 CountDownLatch 简介 CountDownLatch 是JDK并发包中提供的一个同步工具类。官方文档对这个同步工具的介绍是: A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes. 上面的英文介绍大致意思是: CountDownLatch 的主要功能是让一个或者多个线程等待直到一组在其他线程中执行的操作完成。 使用列子 观看上面的解释可能并不能直观的说明 CountDownLatch 的作用,下面我们通过一个简单的列子看下 CountDownLatch 的使用。 场景:主人(主线程)请客人(子线程)吃晚饭,需要等待所有客人都到了之后才开饭。我们用 CountDownLatch 来模拟下这个场景。 public class CountDownLatchDemo { private static final int PERSON_COUNT = 5; private static final CountDownLatch c =

2020你还不会Java8新特性?(学习过程记录)

冷暖自知 提交于 2020-04-18 08:25:25
Java8(1)新特性介绍及Lambda表达式 这,仅是我学习过程中记录的笔记。确定了一个待研究的主题,对这个主题进行全方面的剖析。笔记是用来方便我回顾与学习的,欢迎大家与我进行交流沟通,共同成长。不止是技术。 前言: 跟大娃一块看,把原来的电脑拿出来放中间看视频用 --- 以后会有的课程 难度 深入Java 8 难度1 并发与netty 难度3 JVM 难度4 node 难度2 spring精髓 难度1 课程中提到的知识: 前后端分离的开发,是靠node当做中间的 netty,已经成为国内外互联网公司的标配。会涉及底层的源代码的理解。 JVM 涉及的东西比较多。虽然天天用,但是没有深入理解过。各种锁,可见性等。与计算机原理息息相关的。 圣思园主要面对与已经工作的。大部分为一线的开发人员。 课程一定是完整的。由浅入深的。一定要有一种耐心。 对于基础不好的,可以看看以前面授的时候录制的视频。不懂的一定要多查资料。 在讲课过程中的设计思路:4000块钱的收费标准。 jdk8 介绍:Java 8可谓Java语言历史上变化最大的一个版本,其承诺要调整Java编程向着函数式风格迈进,这有助于编写出更为简洁、表达力更强,并且在很多情况下能够利用并行硬件的代码。本门课程将会深入介绍Java 8新特性,学员将会通过本门课程的学习深入掌握Java 8新增特性并能灵活运用在项目中

大数据教程(6.5)hadoop shell命令操作&mapreduce程序运行初体验

丶灬走出姿态 提交于 2020-04-18 04:11:04
上一篇文章,博主为大家分享了hadoop的安装以及集群的启动,本篇博客将带领小伙伴们一起来感受下hadoop命令和Linux命令的使用有什么不同。 一、首先,启动hadoop集群,执行脚本sh start-dfs.sh;sh start-yarn.sh 二、浏览器中查看dfs中的文件目录(此时文件为空),对应的到hadoop中数据节点中的路径/home/hadoop/hdpdata/dfs/data/current/BP-302498708-192.168.29.144-1540943832361/current/finalized,其中/home/hadoop/hdpdata为配置文件中配dfs路径。 三、命令行使用体验 #查看hdfs根目录 hadoop fs -ls hdfs://centos-aaron-h1:9000/ 或 hadoop fs -ls / #将test.avi这个文件上传到hdfs跟目录中,默认为128m才切开成不同的块来存放. hadoop fs -put test.avi / hadoop fs -put test.avi test1.avi / #如果文件被切成了不同的块,我们知道是哪几个块的话,可以用块直接还原文件 cat bloc_2034655 >>hadoop.file cat bloc_2034656 >>hadoop.file tar

Hive+Sqoop+Mysql整合

醉酒当歌 提交于 2020-04-17 22:16:32
Hive+Sqoop+Mysql整合 在本文中,LZ随意想到了一个场景: 车,道路,监控,摄像头 即当一辆车在道路上面行驶的时候,道路上面的监控点里面的摄像头就会对车进行数据采集。 我们对采集的数据进行分析,处理,最后把结果保存到mysql数据库中供Web UI显示监控点/摄像头状态。 A:监控点/摄像头状态 工作流程如下: 1.数据格式 /** * 产生测试数据: * 数据format: * 记录时间 车牌号码 车速 道路编号 监控地点 摄像头编号 * date_time vehicle_plate vehicle_speed road_id monitor_id camera_id * * 中间使用'\t'隔开 * 16/01/2019 10:20:30 SCN89000J 124 10002 20004 40007 * * 具体说明: * 道路编号 * 10001 - 10100 * * 监控地点 - 在一条道路上面有2个监控点 * 20001 - 20200 * * 摄像头编号 - 在一个监控点上面2个摄像头 * 40001 - 40400 * * 道路: 10001 10002 * 监控: 20001-20002 20003-20004 * 摄像头: 40001-40002-40003-40004 40005-40006-40007-40008 * * 车速: 1-300

MaxCompute规格详解 让您花更低的成本获得更高的业务价值

旧街凉风 提交于 2020-04-16 15:13:35
【推荐阅读】微服务还能火多久?>>> 精彩视频回看请点击: MaxCompute规格详解 以下为精彩视频内容整理: 在用户使用MaxCompute之前,都会考虑成本和业务两大问题。有些企业处在快速的发展期,在业务上对性能的要求比较高,例如计算业务对资源的需求是弹性的,要求峰谷明显,一段时间对资源的要求非常高,另一段时间对资源的要求是比较低的,这种类型属于业务优先于成本。还有一些企业对预算有严格的要求,例如进行合同制的企业,在前期必须要有明确的预算,但对性能的要求不是很高,只需要在当天能够完成任务。基于以上两大场景MaxCompute推出了一系列格和计费方式。 服务模式 MaxCompute服务模式 MaxCompute的服务模式有两种方式,按量计费和包年包月。开通MaxCompute相当于对服务进行注册,同时产生有协议的订单,订单成功后即可使用该服务。按量计费是指整个订单计费模式都为使用之后再按量计费,包括计算、存储、下载几大块主要功能。开通时为0元开通,开通后若不使用则无费用产生。包年包月是指订单计费模式为混合模式,计算资源是按包年包月进行预付费,存储和下载则为使用之后在按量计费。开通时需要预先对计算资源进行付款。 MaxCompute计费方式 MaxCompute费用由三部分组成,存储费用、计算费用和下载费用。 存储费用按存储的数据容量大小进行阶梯计费