第9章 HA高可用 9.1 HDFS 高可用介绍 HDFS HA(High Availability)高可用配置官方参考网址 http://hadoop.apache.org/docs/r2.7.3...9.1.2 架构 Hadoop2.x(HA)中HDFS的高可靠指的是可以同时启动2个NameNode。其中一个处于工作状态(Active ),另一个处于随时待命状态(Standby)。...当一个Active NameNode所在的服务器宕机时,可以在数据不丢失的情况下,手工或者自动将另一个Standby NameNode切换到Active 并继续提供服务。...(2)当Active NameNode执行任何命名空间修改时,会把最近的操作记录写到本地的一个edits文件中(edits file),并传输到大部分中JournalNode(写入2n+1个journalnode...对于HA群集的正确操作至关重要,因此一次只能有一个NameNodes处于活动状态。否则,命名空间状态将在两者之间迅速分歧,冒数据丢失或其他不正确的结果。
可以将群集设置为跨越WAN,在这种情况下,切片和数据移动将在WAN上进行,而数据丢失为零。...可以将系统配置为了解哪个节点位于哪个数据中心,这可以为切片提供额外的弹性,因为切片的副本可以分布在多个数据中心中。 预定义切片 可以基于策略,通常以租户特定的方式将碎片限制为群集中节点的特定子集。...如果群集跨越多个国家/地区,则可以将区域服务器组与HDFS Rack隔离配置一起用于锚定特定国家/地区中的数据。...例如: • 由Flink、Spark、Hive和MapReduce提供批量导出到数据仓库的功能 • Nifi提供将导出流传输到数据仓库 • Phoenix、Impala和Hive提供了我们OpDB中的现场数据查询...• Hive提供了跨我们的OpDB、数据仓库解决方案和第三方数据仓库解决方案的联合查询处理 外部数据支持 Cloudera的OpDB包含许多Hadoop工具,并与大多数Hadoop生态系统集成。
例如,向50个并发用户提供批量报告的系统将具有与支持10,000个并发用户的亚马逊式电子商务数据库不同的性能配置文件。 吞吐量:通常与性能混淆,这表示可以在设定的时间内完成的总工作量。...文本挖掘和分析: Hadoop平台强大的另一个领域是它能够处理包括文本在内的非结构化数据。...低延迟查询性能差:虽然数据缓存解决方案可能有所帮助,但Hadoop / HDFS对于低延迟查询来说是一个非常糟糕的解决方案,例如,将数据提供给仪表板。...下图说明了另一个关键优势,即可以在同一个共享数据存储上独立执行潜在的竞争工作负载,大吞吐量工作负载并行运行,针对相同数据的低延迟,快速响应时间查询。...虽然Hadoop可能声称对传统数据库提出了挑战,但实际上,系统复杂性和计算过度配置的缺点使得这对于分析平台来说是一个糟糕的解决方案。
当第二个客户端尝试打开同一文件进行写入时,“ NameNode”将注意到该文件的租约已被授予另一个客户端,并且将拒绝第二个客户端的打开请求。 11. NameNode如何解决DataNode故障?...您可以根据需要更改配置因子。如果DataNode出现故障,NameNode会自动将数据从副本复制到另一个节点并使数据可用。这样可以在HDFS中提供容错功能。 15....HDFS将每个存储为块,然后将其分布在Hadoop集群中。HDFS中的文件分为块大小的块,这些块作为独立的单元存储。...序列文件可以作为其他MapReduce任务的输出生成,并且是从一个MapReduce作业传递到另一个MapReduce作业的数据的有效中间表示。 Apache Pig面试问题 34....在将所有传入数据提交到磁盘或永久存储器之前,它将存储所有传入数据。一个区域中的每个列族都有一个MemStore。 HFile\:HFile存储在HDFS中。它将实际单元存储在磁盘上。
然后,您可以创建一个表示数据的外部表,并查询该表。 此任务假定您是CDP数据中心用户。您创建一个使用JdbcStorageHandler连接到并读取本地JDBC数据源的外部表。 1....将数据加载到群集中某个节点上受支持的SQL数据库(如MySQL)中,或使自己熟悉数据库中的现有数据。 2....您可能需要重新加载函数以更新在另一个会话中创建的函数的可用性。 • 重新加载,查看和筛选 函数 要确定可用的Hive功能和运算符,请重新加载函数,然后使用SHOW FUNCTIONS语句。...创建UDF类 您可以在新类中定义UDF逻辑,该类将返回表中所选列的数据类型。 3. 生成项目并上载JAR 您可以将UDF代码编译成JAR,然后将JAR添加到群集上的类路径中。...您需要使用直接引用或为Hive配置群集以找到JAR。 4. 注册UDF 在群集中,您登录到Hive,然后从Beeline运行命令以使UDF在Hive查询中起作用。
它还包括 Cloudera Manager API,可用来获取群集运行状况信息和度量以及配置 Cloudera Manager。...它可以查询来自各种源的 Hadoop 数据文件,包括由 MapReduce 作业生成的数据文件或加载到 Hive 表中的数据文件。...YARN 和 Llama 资源管理组件让 Impala 能够共存于使用 Impala SQL 查询并发运行批处理工作负载的群集上。...它还介绍如何在包含 4 个主机的群集上创建 Cloudera Manager 5、CDH5 和托管服务的全新安装。快速入门安装仅应用于演示和 POC 应用程序,不推荐用于生产。...本指南还介绍如何检查日志和报告来解决群集配置和操作的问题以及监控法规遵从性。 Cloudera 安全性 本指南适用于想要使用数据加密、用户身份验证和授权技术保护群集的系统管理员。
本节将重点介绍内存分配如何适用于MapReduce作业,并提供2GB RAM节点的示例配置。...需要正确配置四种类型的资源分配才能使群集正常工作。这些是: 可以为单个节点上的YARN容器分配多少内存。这个限制应该高于所有其他限制; 否则,容器分配将被拒绝,应用程序将失败。...将Hadoop配置文件复制到从属节点: for node in node1 node2; do scp ~/hadoop/etc/hadoop/* $node:/home/hadoop/hadoop...将浏览器指向http:// node-master-IP:50070 ,您将获得一个用户友好的监控控制台。 将数据放入HDFS 使用命令hdfs dfs完成HDFS的写入和读取。...作业完成后,您可以通过查询HDFS获得结果hdfs dfs -ls output。
文档编写目的 Apache Knox网关(“ Knox”)是一种在不降低Hadoop安全性的情况下将Apache™Hadoop®服务的覆盖范围扩展到Hadoop群集之外的用户的系统。...Knox为Hadoop REST API提供了一个中央网关,这些API具有不同程度的授权,身份验证,SSL和SSO功能,以为Hadoop提供单个访问点。...总览 Knox与企业中使用的身份管理和SSO系统集成,并允许将这些系统中的身份用于访问Hadoop集群。...典型的安全流程:防火墙,通过Knox网关路由 Knox可以与不安全的Hadoop群集和Kerberos安全的群集一起使用。...使用Apache Knox Gateway UI 可以通过Knox网关UI配置Knox代理。要设置代理,您将首先定义提供者配置和描述符,然后将基于这些设置自动生成拓扑。
然而,在存储数据后,访问数据是另一个问题。大多数数据提取工具可以从存储数TB数据的数据阵列中获取。据数据科学中心称,它将一些应用的数据可访问性提高了109%。...Hadoop使得这个过程更加简单容易。 SAP Hana如何与Hadoop集成 将SAP Hana与Hadoop集成可以使访问远程数据集群变得更加容易。但是,设置是一个耗时的过程。...框架可以通过几种方式构建: 内部部署群集本地集群模型是处理需要少于50个节点的特定位置的项目的理想选择。 基于云计算的群集。...如果用户需要在大型地理位置进行协调,或者需要超过50个节点,那么基于云计算的群集就会更好。 确定正确的群集后,用户将需要创建一个测试环境。Cloudera Director是其中一个更好的模型。...Hadoop优先考虑快速响应时间,因此它是管理员需要紧急访问数据的应用程序的理想选择。对于可扩展性更为关注的应用程序,Hadoop可能不太可取。 用户将需要首先概述其优先级。
在前一篇文章中,我们已经搭建好了Hadoop的群集,接下来,我们就是需要基于这个Hadoop群集,搭建Spark的群集。由于前面已经做了大量的工作,所以接下来搭建Spark会简单很多。...Spark放在/usr/local/spark下: sudo mv spark-2.0.2-bin-hadoop2.7 /usr/local/spark 进入spark文件夹下的conf文件夹,里面有个...cp slaves.template slaves vi slaves 将内容改为 slave01 slave02 Spark在一台机器上就算配置完毕,接下来在另外两台机器上也做一模一样的配置即可。...说明我们的Spark群集已经启动成功。 下面访问Spark的网站: http://192.168.100.40:8080/ 可以看到2个worker都启动。...最后,我们运行一下Spark的示例程序: /usr/local/spark/bin/run-example SparkPi 10 --slave01 local[2] 可以在结果中找到 Pi is roughly
Spark Executors仍然在集群上运行,为了安排一切,创建了一个小的YARN Application Master。 客户端模式非常适合交互式作业,但如果客户端停止,应用程序将失败。...对于长时间运行的作业,群集模式更合适。 配置内存分配 如果未正确配置内存分配,则在YARN容器中运行的Spark容器的分配可能会失败。...注意:有关管理YARN群集内存的更多详细信息,请参阅“ 安装和配置3节点Hadoop群集”指南的内存分配部分。...如果您的设置较低,请使用您的配置调整样本。 在群集模式配置Spark驱动程序内存分配 在群集模式下,Spark驱动程序在YARN Application Master中运行。...注意从命令行给出的值将覆盖已设置的值spark-defaults.conf。 在客户端模式配置Spark应用程序主内存分配 在客户端模式下,Spark驱动程序不会在群集上运行,因此上述配置将不起作用。
EC的应用场景 将EC技术集成进HDFS可以提高存储效率,同时仍提供与传统的基于副本的HDFS部署类似的数据持久性。例如,一个具有6个块的3副本文件将消耗 6 * 3 = 18 个磁盘空间。...在具有高端网络的群集中,这尤其理想。其次,它自然地将一个小文件分发到多个DataNode,而无需将多个文件捆绑到一个编码组中。...将生成的数据块传输到目标节点:解码完成后,恢复的块将传输到目标DataNodes。 纠删码策略:为了适应异构的工作负载,HDFS群集中的文件和目录允许具有不同的复制和纠删码策略。...Hadoop conf目录中有一个配置EC策略的XML示例文件,配置时可以参考该文件,文件名称为user_ec_policies.xml.template。...集群的硬件配置 纠删码对群集在CPU和网络方面提出了其他要求: 编码和解码工作会消耗HDFS客户端和DataNode上的额外CPU。 纠删码文件也分布在整个机架上,以实现机架容错。
计划内的维护事件,例如NameNode计算机上的软件或硬件升级,将导致群集停机时间的延长。 HDFS高可用性解决方案:在同一群集中运行两个(从3.0.0起,超过两个)冗余NameNode。...另一个NameNode应在几秒钟内自动变为活动状态。检测故障并触发故障转移所需的时间取决于ha.zookeeper.session-timeout.ms的配置,但默认值为5秒。 上图即为成功。...在升级群集时,每个名称空间卷都作为一个单元进行升级。 2....在少量几个节点上手工建立一个集群; 将数据载入Hadoop分布式文件系统(HDFS); 通过运行MapReduce任务来运算并获得结果; 然后拆掉集群。...要从一个RM到另一个RM进行故障转移,需要先把Active状态的RM转换为Standby状态的RM,然后再将Standby状态的RM转换为Active状态的RM。
下表更详细地描述了这些级别: 级别 安全 特点 0 不安全 未配置安全性。非安全集群绝对不能在生产环境中使用,因为它们容易受到任何和所有攻击和利用。 1个 最小 配置用于身份验证,授权和审核。...首先配置身份验证,以确保用户和服务仅在证明其身份后才能访问群集。接下来,应用授权机制为用户和用户组分配特权。审核过程跟踪谁访问群集(以及如何访问)。 2 更多 敏感数据已加密。...群集管理员训练有素,安全程序已通过专家认证,并且群集可以通过技术审查。 04 — Hadoop安全架构 下图是生产型Cloudera企业集群中许多工作组件中某些组件的示例。...要确保群集安全,就需要在所有许多内部和内部连接中以及要查询,运行作业甚至查看群集中保存的数据的所有用户中应用身份验证和访问控制。 外部数据流通过适用于Flume和Kafka的机制进行身份验证。...可以使用透明的HDFS加密和企业级密钥受托者服务器将加密应用于静态数据。
硬件提供商已经生产了创新性的产品系统来应对这些需求,包括存储刀片服务器,串行SCSI交换机,外部SATA磁盘阵列和大容量的机架单元。...于在一个群集里面的100个DataNodes而言,NameNode上的64GB的RAM提供了足够的空间来保证群集 的增长。...Impala使用内存以完成其大多数的功能,在默认的配置下,将最多使用80%的可用RAM资源,所以我们推荐,最少每一个节点使用96GB的RAM。...然而,Hadoop群集通常是一个形态变化的系统, 而Cloudera建议,在开始的时候,使用负载均衡的技术文档来部署启动的硬件。...我们鼓励你在留言中,加入你关于配置Hadoop生产群集服务器的经验! Kevin O‘Dell 是一个工作于Cloudera的系统工程师。
它应提供较高的聚合数据带宽,并可以扩展到单个群集中的数百个节点。它应该在单个实例中支持数千万个文件。 一次写入多次读取:HDFS应用程序需要文件一次写入多次读取访问模型。...2、与 DataNode 交互,读取或者写入数据;读取时,要与 NameNode 交互,获取文件的位置信息;写入 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储。...可以创建和删除文件,将文件从一个目录移动到另一个目录或重命名文件。HDFS支持用户配额和访问权限。HDFS不支持硬链接或软链接。但是,HDFS体系结构并不排除实现这些功能。...四、数据复制 HDFS旨在在大型群集中的计算机之间可靠地存储非常大的文件。它将每个文件存储为一系列块。复制文件的块是为了容错。块大小和复制因子是每个文件可配置的。...文件中除最后一个块外的所有块都具有相同的大小,而在添加了对可变长度块的支持后,用户可以在不填充最后一个块的情况下开始新的块,而不用配置的块大小。 应用程序可以指定文件的副本数。
1.1.5 跨异构硬件和软件平台的可移植性强 轻松地从一个平台移植到另一个平台。...文件系统命名空间层次结构与大多数其他现有文件系统类似:可以创建和删除文件,将文件从一个目录移动到另一个目录,或重命名文件。HDFS支持用户配额和访问权限。但不支持硬链接或软链接。...该工具针对给定的数据编码进行操作,并将块从一个磁盘移动到另一个磁盘。 4.2.1.2.2.1 架构 磁盘平衡器通过创建计划进行操作,然后在数据节点上执行该计划。...4.2.1.2.2.1.2 Plan 拿到上一阶段的汇报结果数据之后,将会进行执行计划的生成.Plan并不是一个最小的执行单元,它的内部由各个Step组成.Step中会指定好源、目标磁盘.这里的磁盘对象是一层经过包装的对象...例如,他们可以将所有用户数据(/user/)放在一个命名空间中,将所有feed数据(/data)放置在另一个命名空间中,将所有项目(/projects)放在另一个命名空间等等。
更不用说上述方法“将数据投入您所不了解的系统并衡量效率”很有可能会遇到一些主要瓶颈,而这些瓶颈可以通过更改某些配置或数据模式或以其他方式进行查询来解决。...ClickHouse方法的另一个缺点是,当群集快速增长时,如果没有人工手动更改分区表中的“节点权重”,数据就不会自动重新平衡。 Druid中的查询处理节点分层 具有段的数据管理“很容易推理”。...:合并所有成功子查询的结果,并且仍将部分结果返回给用户。...在一个系统中存在着几个相当大的功能,而在另一个系统中则没有,还有一些区域,其中一个系统比另一个系统的进步要远得多。但是我要提到的所有这些内容都可以通过合理的努力在另一个系统中复制。...,Pinot会合并所有成功的子查询的结果,并且仍将部分结果返回给用户。
领取专属 10元无门槛券
手把手带您无忧上云