草庐IT

Hadoop 生态系统 : Map Reduce needed for Pig/Hive

互联网上有很多hadoop生态系统图片,所以我很难理解这些工具是如何协同工作的。例如在附图中,为什么pig和hive是基于mapreduce的,而其他工具如spark或storm基于YARN?你能解释一下吗?谢谢!BRhaddopecosystem 最佳答案 图片显示了MapReduce之上的Pig和Hive。这是因为MapReduce是Pig和Hive使用的分布式计算引擎。Pig和Hive查询作为MapReduce作业执行。使用Pig和Hive更容易,因为它们提供了更高级别的抽象来使用MapReduce。现在我们来看一下图中YAR

sql - hive 喜欢 [0-9]

我正在尝试编写一个HIVEcase语句,其中如果一个字段包含数字8/9作为第一个字符,第二个字符包含0-9之间的任何数字,最后一个字段包含A-E之间的任何字母,则它将从字符串中删除它。我拥有的有效代码(大部分)是:CaseWhenSubstr(Upper(Trim(MBRCHR)),-3)like'9_A'orSubstr(Upper(Trim(MBRCHR)),-3)like'9_B'orSubstr(Upper(Trim(MBRCHR)),-3)like'9_C'orSubstr(Upper(Trim(MBRCHR)),-3)like'9_D'orSubstr(Upper(Trim

mysql - 带有 MySQL 的 Hive-2.3.2 Metastore 无法启动

我已经安装了apache-hive-2.3.2和MySQL。每当我尝试执行SHOWDATABASES或任何配置单元命令时,它都会抛出错误:hive>showdatabases;FAILED:SemanticExceptionorg.apache.hadoop.hive.ql.metadata.HiveException:java.lang.RuntimeException:Unabletoinstantiateorg.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient我已经像这样配置了hive-site.xml:javax

sql - Hive - 加载具有特殊字符的分隔数据导致关闭位置

假设我想在Hive中创建一个包含4列的简单表并加载一些竖线分隔的数据。CREATEtableTEST_1(COL1string,COL2string,COL3string,COL4string)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'|';原始数据:123|456|DasaniBottled\|Water|789我对Col3值的期望是“DasaniBottled\|Water”,中间有一些特殊字符“\|”,因此导致Hive表列关闭位置从COL3开始,因为我使用“|”作为分隔符创建表。特殊字符\|确实有一个管道|其中的字符。有什么方法可以解决这个问题,让

hadoop - Hive 分区表的记录数

我在Hive中有一个名为“transaction”的表,该表分区在一个名为“DS”的列上,该列将包含类似“2018-05-05”的数据,“2018-05-09”、“2018-05-10”等此表是在完成当天的一夜之间填充的。在任何时候,该表都会有前一天的数据当我像这样查询交易表时SELECTCOUNT(*)FROMtrasactionWHEREDS>="currentdate";我明白了0行-这是正确的,因为尚未加载当前和future日期的数据当我运行以下查询时SELECTDISTINCTDSFROMtrasactionWHEREDS>="currentdate";我明白了2018-05

sql - HIVE SQL 将连续范围折叠成单行

考虑表中的以下记录:NAMEIDRATELOCDAYABCD123-5NYC2017-01-01ABCD123-5NYC2017-01-02ABCD123-6SFO2017-01-03ABCD123-6DEN2017-01-04ABCD345-4ATL2017-01-05ABCD345-4WAS2017-01-06ABCD123-7CLT2017-01-07ABCD123-7CLT2017-01-08我想要这样的输出:NAMEIDRATELOCSTARTDAYENDDAYABCD123-5NYC2017-01-012017-01-02ABCD123-6SFO2017-01-032017

hadoop - Hive 只获取一个值的最大出现次数

我有一个包含两列的hive表,我想获取出现次数最多的值例如,在我的下表中,一个值出现了两次,而c只出现了一次,这里的值占主导地位,所以我只想要输出中显示的值col1col2aa_value1aa_value2ac_value3bb_value1输出:col1col2aa_value1bb_value1 最佳答案 您正在寻找统计学家所说的众数。一个非常简单的方法是使用带有窗口函数的聚合:selectcol1,col2from(selectcol1,col2,count(*)ascnt,row_number()over(partitio

database - 在 presto、hive 中查询数组结构

col-1有dep_id(varchar)-112col-2有数组结构[{"emp_id":8291828,"name":"bruce",},{"emp_id":8291823,"name":"Rolli",}]我有一个用例,我需要展平和显示结果。例如,当查询dep_id-112的数据时,我需要在单独的行中显示emp_id。对于上面的数据,查询时我的结果应该是这样的idemp_id11282918281128291823获取数据的查询格式应该是什么? 最佳答案 完成这项工作有几个部分。首先,JSON数据将显示为VARCHAR,因此您

hadoop - 如何对 Hive 中具有不同行的数组中具有相同索引的元素求和

我将通过示例解释我需要在Hive中做什么。我收到两行:像这样的数组的第一行(1,3,6,7)第二行(3,6,7,1)我需要的结果(4,9,13,8)因此,我需要将所有行的所有数组的第一个索引的所有元素加在一起,并与第二个索引相同,依此类推... 最佳答案 基表:hive>selectvaluesfromt1;1,3,6,73,6,7,1按位置展开hive>selectpos,valuefromt1lateralviewposexplode(split(values,","))aaspos,value;0316273101132637

hadoop - 失败 : Execution Error, 在配置单元中的连接操作期间从 org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask​​ 返回代码 2

我正尝试在配置单元中对以下两个表运行连接查询-selectb.locationfromuser_activity_ruleainnerjoinuser_info_rulebwherea.uid=b.uidanda.cancellation=true;QueryID=username_20180530154141_0a187506-7aca-442a-8310-582d335ad78dTotaljobs=1OpenJDK64-BitServerVMwarning:ignoringoptionMaxPermSize=512M;supportwasremovedin8.0Executionl