草庐IT

hadoop - Hive 中 LEFT OUTER JOIN 的全表扫描问题

我正在尝试对配置单元中的2个表执行LEFTOUTERJOIN操作。可以理解,我们在连接的情况下包括了过滤条件和连接条件,从where条件中模仿它们以避免全表扫描。引用:https://gist.github.com/randyzwitch/9abeb66d8637d1a0007c尽管这样做,我的查询还是产生了大量的映射器和缩减器,就好像它在进行全表扫描一样。这是我的查询和解释计划。我不擅长理解这个解释计划。m.date_id和d.REC_CREATED_DATE是各自表中的分区列,因此它实际上应该只扫描这些分区。任何改进我的查询的建议都会有很大帮助。hive>EXPLAINSELECT

hadoop - 无法启动配置单元外壳——无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

几个月前我安装了hive0.14。它运行良好。但是当我现在开始时,它会让我陷入错误。安装hive后,我只在我的ubuntu机器上安装了spark、mysql、hbase,但是hbase也没有启动。认为java可能是一个问题,因为我安装了两个jdk版本,卸载了整个java包并安装了oraclejava7并将我的JAVA_HOME指向/usr/lib/jvm/java-7-oracle。这并没有解决我的问题所以安装一个新的hive版本1.0.1,这也不利于我。我在谷歌上搜索了很多相同的错误并尝试应用它但没有运气。我不确定最近安装的spark是否导致我不匹配。有人可以帮我解决这个问题。以下是

hadoop - Hive 和 JsonSerDe 的数据问题

我正在使用JSON格式的Twitter数据并创建我的Hive结构来存储数据。我还使用SerDeorg.openx.data.jsonserde.JsonSerDe来序列化/反序列化每一行。我有一个问题列是地理列(碰巧是我的应用程序最重要的列)。本栏目的结构如下(完整结构在底部):geostruct,type:string>这适用于具有正确数据的行:“地理”:{“类型”:“点”,“坐标”:[0.123337,0.955139]}然而,我的大部分数据都包含地理列的以下内容:“地理”:“无”这会导致以下SerDe错误:数据不是JSONObject而是值为None的java.lang.Stri

hadoop - 确定 Hive 表上的分桶配置

我很好奇是否有人可以提供更多关于如何在Hive表上配置分桶属性的说明。我看到它有助于连接,我相信我读到将它放在您将用于连接的列上是很好的。那可能是错误的。我也很好奇如何确定要选择的桶数。如果有人能就如何确定所有这些事情给出一个简短的解释和一些文档,那就太好了。在此先感谢您的帮助。克雷格 最佳答案 如果你想先在你的表中实现分桶,你应该设置属性设置hive.enforce.bucketing=true;它将强制分桶。carnality:列的可能值的数量。如果您使用ClusterBy子句实现分桶,您的分桶列应该具有高亲和性,那么您将获得更

shell - 如何将一个目录中的多个CSV表递归加载到Hive中

我已经创建了一个具有指定模式但没有数据的外部Hive表,比如表A。现在假设我在HDFS目录中有CSV文件,按以下方式组织:20150718/dir1/dir2/file1.csv20150718/dir1/dir2/file2.csv...................20150718/dir1/dir2/..../dirN/file10000.csv换句话说,这些文件可能在目录20150718中的多个不同级别的目录中。如何在一个Hive/shell命令中加载这些CSV文件?另一个注意事项是我计划随着时间的推移根据日期创建分区,那么我应该如何进行?仍然是新的Hive用户,非常感谢您的

hadoop - Hive - Hbase 集成事务更新与时间戳

我是hadoop和大数据的新手,这几天只是想弄清楚将我的数据存储移动到hbase的可能性,我遇到了一个问题,你们中的一些人可能会帮助我。所以它就像,我有一个hbase表"hbase_testTable",其列族为:"ColFam1"。我已将"ColFam1"的版本设置为10,因为我必须维护此列系列的最多10次更新的历史记录。哪个工作正常。当我尝试通过具有显式时间戳值的hbaseshell添加新行时,它工作正常。基本上我想使用时间戳作为我的版本控制。所以我指定时间戳为put'hbase_testTable''1001','ColFam1:q1','1000$',3'3'是我的版本。一切正

sql - Hive 查询执行问题

执行hive查询时,这里是输出,想知道“Map1”和“Reducer2”,1和2是什么意思?Map1:21/27Reducer2:0/1Map1:22/27Reducer2:0/1Map1:23/27Reducer2:0/1Map1:24/27Reducer2:0/1Map1:26/27Reducer2:0/1Map1:27/27Reducer2:0/1Map1:27/27Reducer2:1/1提前致谢,林 最佳答案 Hive查询被MapReduce框架解释为Map-Reduce任务。该任务根据输入获得分配的映射器和缩减器。当任务

hadoop - 如何按字符解析Hive中的数据&

数据是这样的:fsid=4778&awid=5&url=http%3a%2f%2fwww.abcd.com%2f2-03&pfhid=-356847895&event=Login&Incorrect=Falsefsid=3478&awid=5&url=http%3a%2f%2fwww.abcd.com%2f2-03&pfhid=-356847895&event=Login&userid=10598&Incorrect=False我想看看我一共有多少fsid,一共有多少userid,很多记录都没有userid。我正在使用Hive,也许这不是最好的方法,如果这是一个平面文本文件,我知道如何

hadoop - Hive - 移动 HDFS 上的现有仓库位置

我有一个我们已经使用了一段时间的HDP集群和Hive中充满数据的现有数据库和表我们决定将hive的数据仓库在HDFS上的位置从/apps/hive/warehouse更改为自定义目录我在hive-site.xml中更改了hive.metastore.warehouse.dir并且在我们创建新的dbs/tables时考虑了更改然而,现有内容仍在/apps/hive/warehouse中。有没有办法在不破坏Hive或重新导入所有内容的情况下移动它? 最佳答案 过去做过这样的事情。您需要进行hack操作并直接更新HIVE元存储中的值:使用

hadoop - 预期 org.apache.hadoop.hive.ql.io.orc.OrcStruct,收到 org.apache.hadoop.hive.ql.io.orc.OrcSerde$OrcSerdeRow

当我读取orcfile并将数据写入orcfile时,出现以下错误:expectedorg.apache.hadoop.hive.ql.io.orc.OrcStruct,receivedorg.apache.hadoop.hive.ql.io.orc.OrcSerde$OrcSerdeRow是不是MapoutputValue.class不对?thisismyprogram:packagecom.baifendian.basicPlatform.hive.ql.io.orc;importjava.io.IOException;importjava.util.List;importjava.