企业网站怎么做优化,pc网站如何做sp,Wordpress实现首页特效,关键词和网站的关系目录
一、Hadoop
1、MapReduce
1.1、理解MapReduce思想
1.2、分布式计算概念
1.3、MapReduce介绍
1.4、MapReduce特点
1.5、MapReduce局限性
1.6、MapReduce实例进程
1.7、MapReduce阶段组成
1.8、MapReduce数据类型
1.9、MapReduce官方示例
2、YARN 一、Hadoop
1…目录
一、Hadoop
1、MapReduce
1.1、理解MapReduce思想
1.2、分布式计算概念
1.3、MapReduce介绍
1.4、MapReduce特点
1.5、MapReduce局限性
1.6、MapReduce实例进程
1.7、MapReduce阶段组成
1.8、MapReduce数据类型
1.9、MapReduce官方示例
2、YARN 一、Hadoop
1、MapReduce
1.1、理解MapReduce思想 MapReduce的思想核心是先分再合分而治之。 所谓分而治之就是把一个复杂的问题按照一定的“分解”方法分为等价的规模较小的若干部分然后逐个解决分别找出各部分的结果然后把各部分的结果组成整个问题的最终结果。 这种思想来源于日常生活与工作时的经验。即使是发布过论文实现分布式计算的谷歌也只是实现了这种思想而不是自己原创。 Map表示第一阶段负责“拆分”即把复杂的任务分解为若干个“简单的子任务”来并行处理。可以进行拆分的前提是这些小任务可以并行计算彼此间几乎没有依赖关系。 Reduce表示第二阶段负责“合并”即对map阶段的结果进行全局汇总。 这两个阶段合起来正是MapReduce思想的体现。 MapReduce处理的数据类型是key,value键值对。
实例全国人口普查、停车场一共停多少辆车。
1.2、分布式计算概念 分布式计算是一种计算方法和集中式计算是相对的。 随着计算技术的发展有些应用需要非常巨大的计算能力才能完成如果采用集中式计算需要耗费相当长的时间来完成。 分布式计算将该应用分解成许多小的部分分配给多台计算机进行处理。这样可以节约整体计算时间大大提高计算效率。
1.3、MapReduce介绍 Hadoop MapReduce是一个分布式计算框架用于轻松编写分布式应用程序这些应用程序以可靠容错的方式并行处理大型硬件集群数千个节点上的大量数据多TB数据集。 MapReduce是一种面向海量数据处理的一种指导思想也是一种用于对大规模数据进行分布式计算的编程模型。
1.4、MapReduce特点
易于编程 MapReduce框架提供了用于二次开发的接口简单地实现一些接口就可以完成一个分布式程序。任务计算交给计算框架去处理将分布式程序部署到hadoop集群上运行集群节点可以扩展到成百上千个等。
良好的扩展性 当计算机资源不能得到满足的时候可以通过增加机器来扩展它的计算能力。基于MapReduce的分布式计算的特点可以随节点数目增长保持近似于线性的增长这个特点是MapReduce处理海量数据的关键通过将计算节点增至几百或者几千可以很容易地处理数百TB甚至PB级别的离线数据。
高容错性 Hadoop集群是分布式搭建和部署的任何单一机器节点宕机了它可以把上面的计算任务转移到另一个节点上运行不影响整个作业任务的完成过程完全是由Hadoop内部完成的。
适合海量数据的离线处理 可以处理GB、TB和PB级别的数据量
1.5、MapReduce局限性 MapReduce虽然有很多的优势也有相对的局限性局限性不代表不能做而是在有些场景下实现的效果比较差并不适合用MapReduce来处理主要表现在以下方面 1、实时计算性能差MapReduce主要应用于离线作业无法做到秒级或者亚秒级的数据响应。 2、不能进行流式计算流式计算特点是数据是源源不断的计算并且数据是动态的而MapReduce作为一个离线计算框架主要是针对静态数据集的数据是不能动态变化的。
1.6、MapReduce实例进程 一个完整的MapReduce程序在分布式运行时有三类 1、MRAppMaster负责整个MR程序的过程调度及状态协调 2、MapTask负责map阶段的整个数据处理流程 3、ReduceTask负责reduce阶段的整个数据处理流程
1.7、MapReduce阶段组成 一个MapReduce编程模型中只能包含一个Map阶段和一个Reduce阶段或者只有Map阶段。 不能有诸如多个map阶段、多个reduce阶段的情景出现。 如果用户的业务逻辑非常复杂那就只能多个MapReduce程序串行运行。 1.8、MapReduce数据类型 注意整个MapReduce程序中数据都是以KV键值对的形式流转的。 在实际编程解决各种业务问题中需要考虑每个阶段的输入输出KV分别是什么。 MapReduce内置了很多默认属性比如排序、分组等都和数据的K有关所以说KV的类型数据确定及其重要的。
1.9、MapReduce官方示例 一个最终完整版本的MR程序需要用户编写的代码和Hadoop自己实现的代码整合在一起才可以。 其中用户负责map、reduce两个阶段的业务问题Hadoop负责底层所有的技术问题。 由于MapReduce计算引擎天生的弊端慢当下企业中直接使用率已经日薄西山了所以在企业中工作很少涉及到MapReduce直接编程但是某些软件的背后还依赖MapReduce引擎。 可以通过官方提供的示例来感受MapReduce及其内部执行流程因为后续的新的计算引擎比如Spark当中就有MapReduce深深的影子存在。
示例说明--圆周率PI评估 示例程序路径/export/server/hadoop-3.3.6/share/hadoop/mapreduce/ 示例程序hadoop-mapreduce-examples-3.3.6.jar MapReduce程序提交命令[hadoop jar | yarn jar] hadoop-mapreduce-examples-3.3.6.jar args... 提交到哪里去提交到YARN集群上分布式执行。
评估圆周率PI的值 Monte Carlo方法 假设正方形边长为1圆半径也为1那么1/4圆的面积为 在正方形内随机撒点分布于1/4圆内的数量假设为a分布于圆外的数量为bN则是所产生的总数Nab 那么数量a与N的比值应与1/4圆面积及正方形面积成正比于是 运行MapReduce程序评估一下圆周率的值执行中可以去YARN页面上观察程序的执行的情况。 第一个参数pi表示MapReduce程序执行圆周率计算任务 第二个参数用于指定map阶段运行的任务task次数并发度这里是2。 第三个参数用于指定每个map任务取样的个数这里是4。
hadoop jar hadoop-mapreduce-examples-3.3.6.jar pi 2 4
示例执行Hadoop官方自带的MapReduce案例评估圆周率π的值
[rootnode1 ~]# cd /export/server/hadoop-3.3.6/share/hadoop/mapreduce/
[rootnode1 mapreduce]# ls
hadoop-mapreduce-client-app-3.3.6.jar hadoop-mapreduce-client-jobclient-3.3.6.jar hadoop-mapreduce-examples-3.3.6.jar
hadoop-mapreduce-client-common-3.3.6.jar hadoop-mapreduce-client-jobclient-3.3.6-tests.jar jdiff
hadoop-mapreduce-client-core-3.3.6.jar hadoop-mapreduce-client-nativetask-3.3.6.jar lib-examples
hadoop-mapreduce-client-hs-3.3.6.jar hadoop-mapreduce-client-shuffle-3.3.6.jar sources
hadoop-mapreduce-client-hs-plugins-3.3.6.jar hadoop-mapreduce-client-uploader-3.3.6.jar
[rootnode1 mapreduce]# hadoop jar hadoop-mapreduce-examples-3.3.6.jar pi 2 4
Number of Maps 2
Samples per Map 4
Wrote input for Map #0
Wrote input for Map #1
Starting Job
2024-01-03 00:05:35,990 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at node1/192.168.18.81:8032
2024-01-03 00:05:36,427 INFO mapreduce.JobResourceUploader: Disabling Erasure Coding for path: /tmp/hadoop-yarn/staging/root/.staging/job_17042071157 02_0001
2024-01-03 00:05:36,633 INFO input.FileInputFormat: Total input files to process : 2
2024-01-03 00:05:36,739 INFO mapreduce.JobSubmitter: number of splits:2
2024-01-03 00:05:36,889 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1704207115702_0001
2024-01-03 00:05:36,889 INFO mapreduce.JobSubmitter: Executing with tokens: []
2024-01-03 00:05:37,048 INFO conf.Configuration: resource-types.xml not found
2024-01-03 00:05:37,048 INFO resource.ResourceUtils: Unable to find resource-types.xml.
2024-01-03 00:05:37,469 INFO impl.YarnClientImpl: Submitted application application_1704207115702_0001
2024-01-03 00:05:37,517 INFO mapreduce.Job: The url to track the job: http://node1:8088/proxy/application_1704207115702_0001/
2024-01-03 00:05:37,518 INFO mapreduce.Job: Running job: job_1704207115702_0001
2024-01-03 00:05:44,645 INFO mapreduce.Job: Job job_1704207115702_0001 running in uber mode : false
2024-01-03 00:05:44,647 INFO mapreduce.Job: map 0% reduce 0%
2024-01-03 00:05:49,790 INFO mapreduce.Job: map 100% reduce 0%
2024-01-03 00:05:56,882 INFO mapreduce.Job: map 100% reduce 100%
2024-01-03 00:05:57,937 INFO mapreduce.Job: Job job_1704207115702_0001 completed successfully
2024-01-03 00:05:58,074 INFO mapreduce.Job: Counters: 54File System CountersFILE: Number of bytes read50FILE: Number of bytes written831342FILE: Number of read operations0FILE: Number of large read operations0FILE: Number of write operations0HDFS: Number of bytes read520HDFS: Number of bytes written215HDFS: Number of read operations13HDFS: Number of large read operations0HDFS: Number of write operations3HDFS: Number of bytes read erasure-coded0Job CountersLaunched map tasks2Launched reduce tasks1Data-local map tasks2Total time spent by all maps in occupied slots (ms)5594Total time spent by all reduces in occupied slots (ms)3894Total time spent by all map tasks (ms)5594Total time spent by all reduce tasks (ms)3894Total vcore-milliseconds taken by all map tasks5594Total vcore-milliseconds taken by all reduce tasks3894Total megabyte-milliseconds taken by all map tasks5728256Total megabyte-milliseconds taken by all reduce tasks3987456Map-Reduce FrameworkMap input records2Map output records4Map output bytes36Map output materialized bytes56Input split bytes284Combine input records0Combine output records0Reduce input groups2Reduce shuffle bytes56Reduce input records4Reduce output records0Spilled Records8Shuffled Maps 2Failed Shuffles0Merged Map outputs2GC time elapsed (ms)226CPU time spent (ms)1710Physical memory (bytes) snapshot887963648Virtual memory (bytes) snapshot8386064384Total committed heap usage (bytes)736624640Peak Map Physical memory (bytes)314757120Peak Map Virtual memory (bytes)2793766912Peak Reduce Physical memory (bytes)260431872Peak Reduce Virtual memory (bytes)2799820800Shuffle ErrorsBAD_ID0CONNECTION0IO_ERROR0WRONG_LENGTH0WRONG_MAP0WRONG_REDUCE0File Input Format CountersBytes Read236File Output Format CountersBytes Written97
Job Finished in 22.166 seconds
Estimated value of Pi is 3.50000000000000000000
[rootnode1 mapreduce]# 2、YARN Hadoop分布式文件系统(二) 再小的努力乘以365都很明显 一个程序员最重要的能力是写出高质量的代码 有道无术术尚可求也有术无道止于术。 无论你是年轻还是年长所有程序员都需要记住时刻努力学习新技术否则就会被时代抛弃