- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
试图找出答案,但当我想到以下内容时找不到答案。
它涵盖了 Spark、Impala、MR、Hive Multi-Tenancy 。 Impala 给出的场景。我觉得它也可以应用于 Spark,因为 Impala/Spark 都是内存占用。
场景 1 假设我们为 MR、Hive 和 Impala 创建一个具有 Multi-Tenancy 的 10 节点集群,其中 40% 的资源静态分配给 Impala。为了运行 Impala,我们创建了具有 256 GB RAM 数据节点的集群。
问题是对于这种配置,我们正在失去低成本低 GB 的优势,即 32-40 GB RAM 和 5-6 个核心节点,这是 MR/的主要卖点之一Hadoop 可在处理 100TB 数据期间以极低的成本进行扩展。
场景 2:创建一个混合了 256GB RAM 和 32-40GB RAM 节点的集群
问题是在这种情况下,Impala 将不会运行,因为我们无法根据我的理解指示在集群中运行 Impala 守护程序的特定数据节点中创建 Hive 表。
场景 3:创建单独的集群,即无 Multi-Tenancy 。在那些情况下,我们需要将数据从 Hive 复制到 Impala 集群。
问题是这变成了另一个增量过程/ETL 层。
类似上面的场景我觉得它适用于spark因为SPARK也需要大内存才能运行。
我们可以说创建一个 MR、HIVE、HBASE、Streaming Multi-Tenancy 集群和一个单独的 Impala、Spark Multi-Tenancy 集群吗?
最佳答案
这是我根据以上评论收集的答案。
我创建了一个 Multi-Tenancy 集群,其中包含基于配置单元的表(使用混合 HDFS + S3)以及 spark 和 impala。虽然我已经几个月没有规范了,但我发现 impala 通常表现良好,我相信它在数百亿条记录(数十/数百 TB 未压缩)上是 16GB,每条大约 70列宽,以 parquet 格式(每个 gz 压缩文件约 1GB)同时处理一个或两个查询。查询是聚合加上连接到较小的事实表,这些表也是 Parquet 格式。连接通常在一个查询中涉及许多其他表,范围从数亿条记录到极小的数十条记录表,通常一次访问大约 10-20 列,一次使用大约一半的数十亿条记录。 Spark 使用 YARN 也做得很好,内存也不是大问题。数据/任务节点是 17 个 EC2 i3.2xlarge,因为它们具有出色的性能和值(value)(re NVMes,价格激进)。
我在评论中没有提到的一点是,您可能能够超额订阅内存,这样您就可以通过充分利用集群的资源来最大限度地提高每个工具的性能。这里自然要注意,如果/当您实际上尝试一次使用所有这些资源时,超额预订意味着更高的问题风险(请参阅:航空公司超额预订)。
关于hadoop - 如何为 Multi-Tenancy 配置 Hive Impala/Spark?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46491999/
我可以将 CSV 或任何其他平面文件导入到 hive 中,而无需先在 hive 中创建和定义表结构吗?假设我的 csv 文件有 200 列,需要导入到 hive 表中。所以我必须首先在 hive 中创
我有以下示例数据,我试图在 hive 中爆炸它.. 我使用了 split 但我知道我错过了一些东西.. ["[[-80.742426,35.23248],[-80.740424,35.23184],[
我有一个很大的日志文件,我加载到 HDFS . HDFS将根据机架感知复制到不同的节点。 现在我将相同的文件加载到配置单元表中。命令如下: create table log_analysis (log
我正在尝试使用 UDF在 hive 中。但是当我尝试使用 userdate as 'unixtimeToDate' 创建一个临时函数时,我得到这个异常(exception) hive> create
在Mysql中,我们可以使用DO sleep(5) ;来进行暂停。但它在 Hive 中不起作用。 Hive有 sleep 功能吗? 最佳答案 你可以通过反射调用Thread让hive在处理每一行后多等
我正在将数据从 csv 文件导入 Hive。我的表包含字符串和整数。但是,在我的输入文件中,整数周围有空格,所以它看起来像这样: some string, 2 ,another stri
我可以嵌套吗select在 Hive 中具有不同的条件?例如 如果我有以下两个 Hive 查询: select percentile(x, 0.95) from t1 where y = 1; sel
hive 安装有什么特定的模式吗? 例如,Hadoop 安装有 3 种模式:独立、伪分布式和完全分布式。 同样,Hive 是否有任何特定类型的分布? Hive 可以分布式安装吗? 最佳答案 Hive
我正在使用 Hive,我有一个结构如下的表: CREATE TABLE t1 ( id INT, created TIMESTAMP, some_value BIGINT ); 我需要找到
我是 Hadoop 生态系统工具的新手。 任何人都可以帮助我了解 hive 、直线和 hive 之间的区别。 提前致谢! 最佳答案 Apache hive : 1] Apache Hive 是一个建立
如何在 Hive 中写出数组文字? SELECT PERCENTILE(my_column, [0.5, 0.25, 0.50, 0.75, 0.95]) AS quantiles FROM my_t
我正在尝试在Hive中重命名columnName。是否可以在Hive中重命名列名称。 tableA(栏1,_c1,_c2) 至 tableA(column1,column2,column3) ?? 最
减号查询似乎在 HIVE 中不起作用。 尝试过: select x from abc minus select x from bcd ; 我做错了还是没有为 HIVE 定义负查询?如果是这样,还有其他
我正在尝试使用 hive-jdbc 连接将数据插入 Hive (NON-ACID) 表。如果我在“语句”中执行单个 SQL 查询,它就可以工作。如果我尝试使用“addBatch”对 SQL 进行批处理
我知道这些, 要获取表中的列名,我们可以触发: show columns in . 要获取表的描述(包括 column_name、column_type 和许多其他详细信息): describe [f
无法找到有关 Hive 表最大字符限制的合适规范。 我正在开发一个涉及 hive 表的 ETL 过程,这些表已指定格式为 _ 的命名约定,并且提供的表名称远大于 30 字节(pl/sql 的正常限制)
在安装了Hive的集群中,metastore和namenode有什么?我了解 Metastore 拥有所有表架构、分区详细信息和元数据。现在这个元数据是什么?那么namenode有什么呢?这个元存储在
Hive 中静态分区和动态分区的主要区别是什么?使用单独的插入意味着静态,而对分区表的单个插入意味着动态。还有什么优点吗? 最佳答案 在静态分区中,我们需要在每个 LOAD 语句中指定分区列值。 假设
我是 hadoop 和 hive 的新手。如果有人研究过pivot in hive的概念,请与我分享。 例如:来自 teradata 或 oracle 的数据未转置,这些数据应在 hive 中转置。那
1)如果分区列没有数据,那么当你查询它时,你会得到什么错误? 2)如果某些行没有分区列,这些行将如何处理?会不会有数据丢失? 3)为什么需要对数字列进行分桶?我们也可以使用字符串列吗?流程是什么?您将
我是一名优秀的程序员,十分优秀!