当前位置: 首页 > news >正文

做网站搜索排名access数据库做网站

做网站搜索排名,access数据库做网站,深圳搜豹网站建设公司,一级建造师报考条件2022考试时间在Hadoop问世之前#xff0c;其实已经有了分布式计算#xff0c;只是那个时候的分布式计算都是专用的系统#xff0c;只能专门处理某一类计算#xff0c;比如进行大规模数据的排序。 很显然#xff0c;这样的系统无法复用到其他的大数据计算场景#xff0c;每一种应用都…在Hadoop问世之前其实已经有了分布式计算只是那个时候的分布式计算都是专用的系统只能专门处理某一类计算比如进行大规模数据的排序。 很显然这样的系统无法复用到其他的大数据计算场景每一种应用都需要开发与维护专门的系统。 而Hadoop MapReduce的出现使得大数据计算通用编程成为可能。我们只要遵循MapReduce编程模型编写业务处理逻辑代码就可以运行在Hadoop分布式集群上无需关心分布式计算是如何完成的。 也就是说我们只需要关心业务逻辑不用关心系统调用与运行环境这和我们目前的主流开发方式是一致的。 这一点和Java运行在JVM有点相似。 大数据计算的核心思路是移动计算比移动数据更划算。既然计算方法跟传统计算方法不一样移动计算而不是移动数据那么用传统的编程模型进行大数据计算就会遇到很多困难因此Hadoop大数据计算使用了一种叫作MapReduce的编程模型。 其实MapReduce编程模型并不是Hadoop原创甚至也不是Google原创但是Google和Hadoop创造性地将MapReduce编程模型用到大数据计算上立刻产生了神奇的效果看似复杂的各种各样的机器学习、数据挖掘、SQL处理等大数据计算变得简单清晰起来。 Hadoop解决大规模数据分布式计算的方案 今天我们就来聊聊Hadoop解决大规模数据分布式计算的方案——MapReduce。 在我看来MapReduce既是一个编程模型又是一个计算框架。也就是说开发人员必须基于MapReduce编程模型进行编程开发然后将程序通过MapReduce计算框架分发到Hadoop集群中运行。我们先看一下作为编程模型的MapReduce。 为什么说MapReduce是一种非常简单又非常强大的编程模型 简单在于其编程模型只包含Map和Reduce两个过程 map的主要输入是一对值经过map计算后输出一对值然后将相同Key合并形成再将这个输入reduce经过计算输出零个或多个对。 同时MapReduce又是非常强大的不管是关系代数运算SQL计算还是矩阵运算图计算大数据领域几乎所有的计算需求都可以通过MapReduce编程来实现。 下面我以WordCount程序为例一起来看下MapReduce的计算过程。 WordCount主要解决的是文本处理中词频统计的问题就是统计文本中每一个单词出现的次数。如果只是统计一篇文章的词频几十KB到几MB的数据只需要写一个程序将数据读入内存建一个Hash表记录每个词出现的次数就可以了。这个统计过程你可以看下面这张图。 如果用Python语言单机处理WordCount的代码是这样的。 # 文本前期处理 strl_ist str.replace(\n, ).lower().split( ) count_dict {} # 如果字典里有该单词则加1否则添加入字典 for str in strl_ist: if str in count_dict.keys():count_dict[str] count_dict[str] 1else:count_dict[str] 1简单说来就是建一个Hash表然后将字符串里的每个词放到这个Hash表里。如果这个词第一次放到Hash表就新建一个Key、Value对Key是这个词Value是1。如果Hash表里已经有这个词了那么就给这个词的Value 1。 小数据量用单机统计词频很简单但是如果想统计全世界互联网所有网页数万亿计的词频数而这正是Google这样的搜索引擎的典型需求不可能写一个程序把全世界的网页都读入内存这时候就需要用MapReduce编程来解决。 WordCount的MapReduce程序如下。 public class WordCount {public static class TokenizerMapperextends MapperObject, Text, Text, IntWritable{private final static IntWritable one new IntWritable(1);private Text word new Text();public void map(Object key, Text value, Context context) throws IOException, InterruptedException {StringTokenizer itr new StringTokenizer(value.toString());while (itr.hasMoreTokens()) {word.set(itr.nextToken());context.write(word, one);}}}public static class IntSumReducerextends ReducerText,IntWritable,Text,IntWritable {private IntWritable result new IntWritable();public void reduce(Text key, IterableIntWritable values,Context context) throws IOException, InterruptedException {int sum 0;for (IntWritable val : values) {sum val.get();}result.set(sum);context.write(key, result);}} } 你可以从这段代码中看到MapReduce版本WordCount程序的核心是一个map函数和一个reduce函数。 map函数的输入主要是一个对在这个例子里Value是要统计的所有文本中的一行数据Key在一般计算中都不会用到。 public void map(Object key, Text value, Context contextmap函数的计算过程是将这行文本中的单词提取出来针对每个单词输出一个这样的对。 MapReduce计算框架会将这些收集起来将相同的word放在一起形成这样的数据然后将其输入给reduce函数。 public void reduce(Text key, IterableIntWritable values,Context context) 这里reduce的输入参数Values就是由很多个1组成的集合而Key就是具体的单词word。 reduce函数的计算过程是将这个集合里的1求和再将单词word和这个和sum组成一个也就是输出。每一个输出就是一个单词和它的词频统计总和。 一个map函数可以针对一部分数据进行运算这样就可以将一个大数据切分成很多块这也正是HDFS所做的MapReduce计算框架为每个数据块分配一个map函数去计算从而实现大数据的分布式计算。 假设有两个数据块的文本数据需要进行词频统计MapReduce计算过程如下图所示。 以上就是MapReduce编程模型的主要计算过程和原理但是这样一个MapReduce程序要想在分布式环境中执行并处理海量的大规模数据还需要一个计算框架能够调度执行这个MapReduce程序使它在分布式的集群中并行运行而这个计算框架也叫MapReduce。 所以当我们说MapReduce的时候可能指编程模型也就是一个MapReduce程序也可能是指计算框架调度执行大数据的分布式计算。关于MapReduce计算框架我们下期再详细聊。 小结 MapReduce编程模型。这个模型既简单又强大简单是因为它只包含Map和Reduce两个过程强大之处又在于它可以实现大数据领域几乎所有的计算需求。这也正是MapReduce这个模型令人着迷的地方。 随记 模型是人们对一类事物的概括与抽象可以帮助我们更好地理解事物的本质更方便地解决问题。比如数学公式是我们对物理与数学规律的抽象地图和沙盘是我们对地理空间的抽象软件架构图是软件工程师对软件系统的抽象。 通过抽象我们更容易把握事物的内在规律而不是被纷繁复杂的事物表象所迷惑更进一步深刻地认识这个世界。通过抽象伽利略发现力是改变物体运动的原因而不是使物体运动的原因为全人类打开了现代科学的大门。 这些年我自己认识了很多优秀的人他们各有所长、各有特点但是无一例外都有个共同的特征就是对事物的洞察力。他们能够穿透事物的层层迷雾直指问题的核心和要害不会犹豫和迷茫轻松出手就搞定了其他人看起来无比艰难的事情。有时候光是看他们做事就能感受到一种美感让人意醉神迷。 同一件事有些人一分钟就能看懂有人花10年还是不理解这就是洞察力不同的表现。 这种洞察力就是来源于他们对事物的抽象能力虽然我不知道这种能力缘何而来但是见识了这种能力以后我也非常渴望拥有对事物的抽象能力。所以在遇到问题的时候我就会停下来思考这个问题为什么会出现它揭示出来背后的规律是什么我应该如何做。甚至有时候会把这些优秀的人带入进思考如果是戴老师、如果是潘大侠他会如何看待、如何解决这个问题。通过这种不断地训练虽然和那些最优秀的人相比还是有巨大的差距但是仍然能够感受到自己的进步这些小小的进步也会让自己产生大大的快乐一种不荒废光阴、没有虚度此生的感觉。 我希望你也能够不断训练自己遇到问题的时候停下来思考一下这些现象背后的规律是什么。有时候并不需要多么艰深的思考仅仅就是停一下就会让你察觉到以前不曾注意到的一些情况进而发现事物的深层规律。这就是洞察力。 这种洞察力也就是我前两天写的一个人才的核心能力中的“预见性”。
http://www.tj-hxxt.cn/news/225727.html

相关文章:

  • 电子商务目前就业形势邢台网站优化服务平台
  • 榆林网站开发天眼查网站
  • 源码网站模板杭州公司网站开发
  • 东莞模板网站制作哪家好个人网站建立多少钱
  • 没内容的网站怎么优化工信部备案查询企业名单
  • 陶瓷企业 瓷砖地板公司网站建设汕头营销网络公司
  • 网站建设模板html做网站用什么代码编写
  • 北外网院网站建设作业假链接制作网站
  • 网站首页怎么做网站开发技术前景最好
  • 建一个网站买完域名后应该怎么做杭州建设职业学校网站
  • 网站制作多少钱资讯中铁三局招聘广告
  • 企业网站建设基本思路html实例
  • 网络游戏那个网站做的最好团购网站模板免费下载
  • 坪地网站建设包括哪些wordpress 路由404
  • 网站开发哪种语言好wordpress文章内容宽度
  • 嘉兴 做网站 推广led灯什么网站做推广好
  • 博罗做网站技术网站生成app客户端
  • 免费建立网站哪个好买个域名就可以建立网站吗
  • hpsocket 网站开发吉安网站建设jajjjc
  • 微网站解决方案赣州网站建设案例
  • 搭建网站需要做什么绵阳企业品牌网站建设
  • 免费创建属于自己的网站网站群建设论文
  • 新开传奇网站发布网施工企业成立技术中心的好处
  • 三只松鼠网站谁做的合同下载网站
  • 广州 seo的网站南京做征信服务的公司网站
  • 深圳网站制作建设服务公司网站二级页面怎么做
  • ppt模板资源网站深圳网站建设公司排名
  • 查pv uv的网站导购wordpress
  • 做电子商务网站 除了域名 网页设计 还有服务器 和网站空间成都市建设网站
  • php安防企业网站源码收银会员卡管理系统