草庐IT

hive-overwrite

全部标签

hadoop - Hive 上的 Avro 动态模式更改

我有一些数据采用avro格式v1并存储在分区dt=yyyymmdd下的HDFS中。现在数据在同一个分区下维护了两个版本,v1和v2。为两个不同的版本维护一个hive表是否可行? 最佳答案 Avrodefinesaschemaevolutionprotocol例如,如果v2只是添加了一个具有默认值的字段,然后使用该架构更新表,它可以读取全部旧数据,因为它会简单地返回默认值缺失的地方。如果你破坏了兼容性,你必须创建一个单独的表,然后将两者合并以获得一致的结果集 关于hadoop-Hive上的

hadoop - Hive进程内存大小

请您帮我理解Hive上下文中的512mb(以粗体突出显示)是什么?它的内存大小是多少?我在我的hive-site.xml文件中设置了exportHADOOP_HEAPSIZE=4192hadoop@master:~/hive/conf$ps-ef|grep'hive'hadoop558710Feb14?00:05:27/usr/lib/jvm/default-jdk/bin/java-Xmx4192m-Djava.net.preferIPv4Stack=true-Dhadoop.log.dir=/home/hadoop/hadoop-2.7.3/logs-Dhadoop.log.fil

hadoop - hive - 为什么 SLF4J : Class path contains multiple SLF4J bindings appears when I change output path

我需要将查询结果存储在工作流的工作区中。为此,我使用了:INSERTOVERWRITELOCALDIRECTORY'/apps/myProject/conf/oozie/workspaces/myWorkflow'ROWFORMATDELIMITEDFIELDSTERMINATEDBY','LINESTERMINATEDBY"\n"SELECT*FROMmyTableLIMIT10;但是我得到了错误:SLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foundbindingin[jar:file:/opt/cloudera/parce

hadoop - 如何在 impala 或 hive 上读取复杂类型数组 <string>?

我尝试读取hive上的复杂类型dog.owners(array)使用以下查询selectdog_id,concat_ws(',',collect_set(owners))asownersfromdoggroupbydog_id但我收到以下错误Argument2offunctionCONCAT_WSmustbe"stringorarray",but"array>"wasfound.看起来数据类型不匹配。我试图将列所有者创建为array>但我仍然遇到同样的错误。有没有办法阅读关于hive或黑斑羚的专栏? 最佳答案 selectdog_i

hadoop - 无法有效映射 HIVe 表中的 HBase 行键

我有一个HBase表,其中的行键如下所示。08:516485815:2013106:260070837:2014100:338289200:20141我使用以下查询创建一个Hive链接表。createexternaltablehb(keystring,valuestring)storedby'org.apache.hadoop.hive.hbase.HBaseStorageHandler'withserdeproperties("hbase.columns.mapping"=":key,e:-1")tblproperties("hbase.table.name"="hbaseTable

hadoop - Hive 2.3.2 Local模式找不到Hadoop安装

根据我一直在阅读的内容,您可以在没有Hadoop或HDFS的情况下运行Hive(例如在使用Spark或Tez的情况下),即通过设置fs.default.name在本地模式下和hive.metastore.warehouse.dir到本地路径。但是,当我这样做时,出现错误:StartingHivemetastoreservice.Cannotfindhadoopinstallation:$HADOOP_HOMEor$HADOOP_PREFIXmustbesetorhadoopmustbeinthepath我的hive-site.xml文件:mapred.job.trackerlocalh

hadoop - 如何使用 ORC 存储 Hive 表以进行复杂查询?

也许这个问题太笼统了,但我认为值得一试。我正在处理一个包含270个字段的表。它按日期分区(如dt=20180101)。然而,当我们用查询访问这个表时,我们实际上是在进行全表扫描,因为我们在where子句中使用了不是dt的字段。我想知道为该表启用分桶的正确方法是什么。我可以选择其中一个where子句字段并为此启用分桶。例如:PARTITIONEDBY(dtINT)CLUSTEREDBY(class)INTO16BUCKETS另一种方法是使用多个字段进行分桶:PARTITIONEDBY(dtINT)CLUSTEREDBY(class,other_field,other_field_2)IN

hadoop - 我们可以在查询之前对 Hive 表的列进行排序吗?

我的Hive表是ORC格式,当where子句中的列排序时,其中的查询运行最快。但就我而言,目前没有。在查询之前对列进行排序的语法是什么。 最佳答案 如果我正确理解你的问题,你有一个未排序的ORC表。并且您想查询该表,但想在查询“之前”对数据进行“排序”!这没有任何意义,因为您将触发一些“查询”以对已排序的数据触发另一个查询。排序可能是一项代价高昂的操作,具体取决于您的实现方式。但是,在查询数据时可以使用许多其他选项来加快查询速度。遵循一些细节。使用Tez执行引擎。它比Hive启动的传统MR作业快得多。启用谓词下推(PPD)以在存储层

hadoop - 动态模式的解决方案 - HIVE/AVRO

要求跟上目标ORC表的架构演变。我从源接收JSON事件。我们计划将它们转换为AVRO(因为它支持模式演化)。由于模式可以每天/每周更改,我们需要不断摄取新数据JSON文件,将它们转换为AVRO并将所有数据(旧/新)存储在ORC配置单元表中。我们如何解决这个问题? 最佳答案 您可以采用以下方法,这是解决此问题的众多不同方法之一。1。创建HBASE表首先读取AVRO数据并在HBASE中创建表。(您可以使用spark高效地完成此操作)即使在未来,HBASE表也会负责模式的演变。2。创建Hive包装表创建指向HBASE表的配置单元包装表(存

hadoop - 为什么 Hive 返回 FAILED : SemanticException. ..Unable To Instantiate

我已经安装了Hive,将它添加到PATH,并且能够在终端中使用hive命令打开它。但是,当我尝试运行诸如之类的基本命令时显示表格;我遇到了错误:失败:SemanticExceptionorg.apache.hadoop.hive.ql.metadata.HiveException:java.lang.RuntimeException:无法实例化org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient我遵循的说明并未建议必须实例化任何内容。作为引用,我正在使用Hadoop:权威指南(第4版)一书并在我的机器上本地运行它。运