草庐IT

apache-spark - 通过 Spark 加载的表在 Hive 中无法访问

无法从Hive访问通过Spark(pyspark)创建的Hive表。df.write.format("orc").mode("overwrite").saveAsTable("db.table")从Hive访问时出错:Error:java.io.IOException:java.lang.IllegalArgumentException:bucketIdoutofrange:-1(state=,code=0)在Hive中成功创建表,并能够在spark中读回该表。表元数据可访问(在Hive中),表中的数据文件(在hdfs中)目录。Hive表的TBLPROPERTIES是:'bucketi

hadoop - 免费数据仓库——Infobright、Hadoop/Hive 或什么?

我需要存储大量的小型数据对象(每月数百万行)。一旦他们被保存,他们就不会改变。我需要:安全地存储它们使用它们进行分析(主要是面向时间的)偶尔检索一些原始数据如果能和JasperReports或者BIRT一起使用就好了我的第一个镜头是InfobrightCommunity-只是一个面向列的MySQL只读存储机制另一方面,人们说NoSQL方法可能会更好。Hadoop+Hive看起来很有前途,但是文档看起来很差,版本号还不到1.0。我听说过Hypertable、Pentaho、MongoDB....您有什么建议吗?(是的,我在这里找到了一些主题,但那是一两年前的事了)编辑:其他解决方案:Mo

hadoop - 如何在将数据加载到 Hive 时指定输入文件格式

我正在尝试将数据从Gzip存档加载到Hive表中,但我的gzip文件具有扩展名,例如:apache_log.gz_localhost当我指定这些文件所在的HDFS目录位置时,Hive无法识别GZip压缩文件,因为它正在搜索扩展名为.gz的文件。是否可以在将数据加载到Hive时定义文件类型?类似(伪)的东西:setinput.format=gzip;LOADDATAINPATH/tmp/logs/INTOTABLEapache_logs;这是我创建表的SQL:CREATEEXTERNALTABLEaccess_logs(`ip`STRING,`time_local`STRING,`met

hadoop - Hive collect_list() 不收集 NULL 值

我正在尝试收集包含NULL的列以及该列中的一些值...但是collect_list忽略了NULL并仅收集其中具有值(value)的那些。有没有一种方法可以检索NULL以及其他值?SELECTcol1,col2,collect_list(col3)ascol3FROM(SELECT*FROMtable_1ORDERBYcol1,col2,col3)GROUPBYcol1,col2;实际的col3值0.9NULLNULL0.70.6结果col3值[0.9,0.7,0.6]我希望在应用collect_list之后有一个看起来像这样的配置单元解决方案[0.9,NULL,NULL,0.7,0.6

hadoop - 在 Hive 中使用保留字

我正在将数据迁移到Hive1.2,我意识到,默认情况下,我不再允许使用保留字作为列名。如果要使用保留字,则需要明确设置以下设置:hive.support.sql11.reserved.keywords=false我的问题是,更改此默认值是否会导致任何意外问题?在更改之前我应该​​注意什么问题?顺便说一句,这个更改记录在这张票中:https://issues.apache.org/jira/browse/HIVE-6617 最佳答案 此配置属性hive.support.sql11.reserved.keywords是在Hive1.2.

hadoop - 在 Hive 中, "Load data local inpath"是覆盖现有数据还是追加?

我希望在cron上运行到Hive的导入,并且希望只使用“将数据本地输入路径‘/tmp/data/x’加载到表X”到表中就足够了。后续命令会覆盖表中已有的内容吗?还是会追加? 最佳答案 本站http://wiki.apache.org/hadoop/Hive/LanguageManual在处理Hive时是你的friend。:)解决将数据加载到Hive的页面是http://wiki.apache.org/hadoop/Hive/LanguageManual/DML该页面指出iftheOVERWRITEkeywordisusedthent

hadoop - hive/hadoop 如何确保每个映射器都处理本地数据?

困扰我的2个基本问题:我如何确定配置单元用于存储我的表的32个文件中的每一个都位于其唯一的机器上?如果发生这种情况,我如何确定如果hive创建了32个映射器,它们中的每一个都将处理其本地数据?hadoop/hdfs是否保证了这种魔力,或者作为智能应用程序的hive是否确保它会发生?背景:我有一个由32台机器组成的Hive集群,并且:我所有的表都是用"CLUSTEREDBY(MY_KEY)INTO32BUCKETS"创建的我使用hive.enforce.bucketing=true;我验证过,确实每个表都存储为32个文件在user/hive/warehouse中我使用的HDFS复制因子为

sql - 使用HiveQL(Hadoop)在Hive中联接两个表

这个问题已经在这里有了答案:已关闭8年。PossibleDuplicate:SQLQueryJOINwithTableCREATEEXTERNALTABLEIFNOTEXISTSTestingTable1(ThisistheMAINtablethroughwhichcomparisonsneedtobemade)(BUYER_IDBIGINT,ITEM_IDBIGINT,CREATED_TIMESTRING)这是上面第一个表中的数据**BUYER_ID**|**ITEM_ID**|**CREATED_TIME**--------------+------------------+---

hadoop - hive中如何自动加载数据

最近想把日志文件加载到hive表中,想要一个可以从某个目录读取数据并自动加载到hive中的工具。这个目录可能包含很多子目录,比如某个目录是'/log',子目录是'/log/20130115'、'/log/20130116'、'/log/201301017'。有没有一些ETL工具可以实现这样的功能:一旦新数据存储在某个目录下,该工具可以自动检测到这些数据并将它们加载到hive表中。有没有这样的工具,我必须自己写脚本吗? 最佳答案 您可以使用Hive外部表并按天对表进行分区轻松地做到这一点。例如,创建您的表:createexternal

hadoop - $HIVE_HOME/bin/hive --service hiveserver

我是Hadoop/hive的新手。我已经安装了hadoop和hive。当我使用hive作为命令提示符时它工作正常但是我要实现hive的JDBC然后键入以下命令hive>$HIVE_HOME/bin/hive--servicehiveserver然后出现以下错误,所以请帮助我如何实现配置单元的jdbc请任何人帮助我...hduser@ubuntu:~$$HIVE_HOME/bin/hive--servicehiveserverStartingHiveThriftServerWARNING:org.apache.hadoop.metrics.jvm.EventCounterisdeprec