首页 > 其他分享 >1 hadoop介绍

1 hadoop介绍

时间:2022-11-09 16:57:49浏览次数:63  
标签:HDFS -- ZooKeeper 端口 hadoop 介绍 NameNode

HDFS hadoop官网:https://hadoop.apache.org/ hadoop历史版本:https://archive.apache.org/dist/hadoop/common/   hadoop的核心   Hadoop的核心就是HDFS和MapReduce,而两者只是理论基础,不是具体可使用的高级应用,Hadoop旗下有很多经典子项目,比如HBase、Hive等,这些都是基于HDFS和MapReduce发展出来的。要想了解Hadoop,就必须知道HDFS和MapReduce是什么。   HDFS   HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),它是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序   HDFS的设计特点是:   1、大数据文件,非常适合上T级别的大文件或者一堆大数据文件的存储,如果文件只有几个G甚至更小就没啥意思了。   2、文件分块存储,HDFS会将一个完整的大文件平均分块存储到不同计算器上,它的意义在于读取文件时可以同时从多个主机取不同区块的文件,多主机读取比单主机读取效率要高得多得都。   3、流式数据访问,一次写入多次读写,这种模式跟传统文件不同,它不支持动态改变文件内容,而是要求让文件一次写入就不做变化,要变化也只能在文件末添加内容。   4、廉价硬件,HDFS可以应用在普通PC机上,这种机制能够让给一些公司用几十台廉价的计算机就可以撑起一个大数据集群。   5、硬件故障,HDFS认为所有计算机都可能会出问题,为了防止某个主机失效读取不到该主机的块文件,它将同一个文件块副本分配到其它某几个主机上,如果其中一台主机失效,可以迅速找另一块副本取文件。     Hadoop 3.0 Apache Hadoop 3.0.0在前一个主要发行版本(hadoop-2.x)中包含了许多重要的增强功能。   这个版本通常是可用的(GA),api稳定性和质量已经到了可以再生成中使用的步骤。       1,java8是必须   所有hadoop 的jar都是利用java8的运行时版本进行编译的。依然在使用java7或者更低版本的用户必须升级到Java8.   2,HDFS支持纠删码(Erasure Coding)   与副本相比纠删码是一种更节省空间的数据持久化存储方法。标准编码(比如Reed-Solomon(10,4))会有1.4 倍的空间开销;然而HDFS副本则会有3倍的空间开销。因为纠删码额外开销主要是在重建和执行远程读,它传统用于存储冷数据,即不经常访问的数据。当部署这个新特性时用户应该考虑纠删码的网络和CPU 开销。   3,MapReduce任务级本地优化   MapReduce添加了Map输出collector的本地实现。对于shuffle密集型的作业来说,这将会有30%以上的性能提升。更多内容请参见 MAPREDUCE-2841   4,支持多于2个的NameNodes   最初的HDFS NameNode high-availability实现仅仅提供了一个active NameNode和一个Standby NameNode;并且通过将编辑日志复制到三个JournalNodes上,这种架构能够容忍系统中的任何一个节点的失败。然而,一些部署需要更高的容错度。我们可以通过这个新特性来实现,其允许用户运行多个Standby NameNode。比如通过配置三个NameNode和五个JournalNodes,这个系统可以容忍2个节点的故障,而不是仅仅一个节点。HDFS high-availability文档已经对这些信息进行了更新,我们可以阅读这篇文档了解如何配置多于2个NameNodes。,   5,多个服务的默认端口被改变   在此之前,多个Hadoop服务的默认端口都属于Linux的临时端口范围(32768-61000)。这就意味着我们的服务在启动的时候可能因为和其他应用程序产生端口冲突而无法启动。现在这些可能会产生冲突的端口已经不再属于临时端口的范围,这些端口的改变会影响NameNode, Secondary NameNode, DataNode以及KMS。与此同时,官方文档也进行了相应的改变,具体可以参见 HDFS-9427以及HADOOP-12811。下面表格列出了端口变化的情况   hadoop3.0修改端口如下:   Namenode 端口: 50470 --> 9871 50070 --> 9870 8020 --> 9820   Secondary NN 端口: 50091 --> 9869 50090 --> 9868   Datanode 端口: 50020 --> 9867 50010 --> 9866 50475 --> 9865 50075 --> 9864  

 

 

    二 HDFS高可用 对于保证NameNode元数据的一致性和编辑日志的安全性,采用Zookeeper来存储编辑日志文件。 两个NameNode一个是Active状态的,一个是Standby状态的,一个时间点只能有一个Active状态的。 NameNode提供服务,两个NameNode上存储的元数据是实时同步的,当Active的NameNode出现问题时,通过Zookeeper实时切换到Standby的NameNode上,并将Standby改为Active状态。 客户端通过连接一个Zookeeper的代理来确定当时哪个NameNode处于服务状态。   自动故障转移为HDFS部署增加了两个新组件:ZooKeeper和ZKFailoverController(ZKFC)进程。ZooKeeper是维护少量协调数据,通知客户端这些数据的改变和监视客户端故障的高可用服务。HA的自动故障转移依赖于ZooKeeper的以下功能:   1)故障检测:集群中的每个NameNode在ZooKeeper中维护了一个持久会话,如果机器崩溃,ZooKeeper中的会话将终止,ZooKeeper通知另一个NameNode需要触发故障转移。   2)现役NameNode选择:ZooKeeper提供了一个简单的机制用于唯一的选择一个节点为active状态。如果目前现役NameNode崩溃,另一个节点可能从ZooKeeper获得特殊的排外锁以表明它应该成为现役NameNode。   ZKFC是自动故障转移中的另一个新组件,是ZooKeeper的客户端,也监视和管理NameNode的状态。每个运行NameNode的主机也运行了一个ZKFC进程,ZKFC负责:   1)健康监测:ZKFC使用一个健康检查命令定期地ping与之在相同主机的NameNode,只要该NameNode及时地回复健康状态,ZKFC认为该节点是健康的。如果该节点崩溃,冻结或进入不健康状态,健康监测器标识该节点为非健康的。   2)ZooKeeper会话管理:当本地NameNode是健康的,ZKFC保持一个在ZooKeeper中打开的会话。如果本地NameNode处于active状态,ZKFC也保持一个特殊的znode锁,该锁使用了ZooKeeper对短暂节点的支持,如果会话终止,锁节点将自动删除。   3)基于ZooKeeper的选择:如果本地NameNode是健康的,且ZKFC发现没有其它的节点当前持有znode锁,它将为自己获取该锁。如果成功,则它已经赢得了选择,并负责运行故障转移进程以使它的本地NameNode为Active。故障转移进程与前面描述的手动故障转移相似,首先如果必要保护之前的现役NameNode,然后本地NameNode转换为Active状态。                  

标签:HDFS,--,ZooKeeper,端口,hadoop,介绍,NameNode
From: https://www.cnblogs.com/skyzy/p/16874324.html

相关文章

  • LAMP架构介绍及配置命令讲解
    一、LAMP架构介绍1.1概述LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写......
  • OpenCV应用 | 基于相位相关法的图像拼接介绍与演示(附源码)
    导读本文主要介绍OpenCV基于相位相关的图像拼接方法与演示。OpenCV图像拼接相关文章了解OpenCV图像拼接常用方法可以点击下面标题进入对应往期文章介绍:​​OpenCV常用图像......
  • OpenCV图像无缝融合-seamlessClone介绍与使用(Python/C++源码)
    导读本期将介绍并演示OpenCV使用seamlessClone实现图像无缝融合效果。介绍seamlessClone是OpenCV3后添加的函数,使用此函数可以轻松将一幅图像中的指定目标复制后粘贴到另一......
  • hadoop
    hadoop介绍Hadoop是Apache软件基金会的一款开元软件用java语言实现,开源允许用户使用简单的编程模型实现跨机器集群对海量数据进行分布式计算处理Hadoop核心Hadoop H......
  • AXI总线介绍
    一、AXI总线概述在Xilinx系列FPGA及其有关IP核中,经常见到AXI总线接口,AXI总线又分为三种:AXI-Lite,AXI-Full以及AXI-Stream,其中AXI-Lite和AXI-Full都是基于memorymap的形式......
  • Eureka注册中心介绍 及 搭建完成 服务注册、发现
    (目录)Eureka注册中心假如我们的服务提供者user-service部署了多个实例,如图:思考几个问题:order-service在发起远程调用的时候,该如何得知user-service实例的ip地址和......
  • commons-lang介绍
    原文链接:https://blog.csdn.net/zlfprogram/article/details/78189878跟java.lang这个包的作用类似,CommonsLang这一组API也是提供一些基础的、通用的操作和处理,如自动生......
  • H5游戏开发-游戏的介绍
    一、游戏的介绍1.游戏的种类1.端游(客户端游戏)电脑(网络)游戏。2.页游(网页游戏)web游戏,无端游戏,基于web浏览器的网络在线多人互动游戏。3.手游(手机游戏)运行在手机上的软......
  • 【luffy】前台全局样式、后台主页模块接口、跨域问题、自定义配置、git介绍和安装
    目录1.前台全局样式和js配置1.1bodydiv默认样式,统一去掉1.2全局配置2.后台主页模块接口2.1根据原型图分析出来2.2软件开发模式2.3轮播图表2.4轮播图接口编写3.......
  • Pandas的介绍及 Series、 DataFrame的创建
    1.Pandas是什么?Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。Pandas的主要数据......