我不知道如何解决这个错误:
Vertex failed, vertexName=initialmap, vertexId=vertex_1449805139484_0001_1_00, diagnostics=[Task failed, taskId=task_1449805139484_0001_1_00_000003, diagnostics=[AttemptID:attempt_1449805139484_0001_1_00_000003_0 Info:Error: org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /user/hadoop/gridmix-kon/input/_temporary/1/_temporary/attempt_14498051394840_0001_m_000003_0/part-m-00003/segment-121 could only be replicated to 0 nodes instead of minReplication (=1). There are 4 datanode(s) running and no node(s) are excluded in this operation.
at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget(BlockManager.java:1441)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2702)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:584)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:440)
at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2014)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2010)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1561)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2008)
at org.apache.hadoop.ipc.Client.call(Client.java:1411)
at org.apache.hadoop.ipc.Client.call(Client.java:1364)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
at com.sun.proxy.$Proxy17.addBlock(Unknown Source)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606) …Run Code Online (Sandbox Code Playgroud) 问题 -
我正在AWS EMR中运行1个查询.抛出异常是失败的 -
java.io.FileNotFoundException: File s3://xxx/yyy/internal_test_automation/2016/09/17/17156/data/feed/commerce_feed_redshift_dedup/.hive-staging_hive_2016-09-17_10-24-20_998_2833938482542362802-639 does not exist.
Run Code Online (Sandbox Code Playgroud)
我在下面提到了这个问题的所有相关信息.请检查.
查询 -
INSERT OVERWRITE TABLE base_performance_order_dedup_20160917
SELECT
*
FROM
(
select
commerce_feed_redshift_dedup.sku AS sku,
commerce_feed_redshift_dedup.revenue AS revenue,
commerce_feed_redshift_dedup.orders AS orders,
commerce_feed_redshift_dedup.units AS units,
commerce_feed_redshift_dedup.feed_date AS feed_date
from commerce_feed_redshift_dedup
) tb
Run Code Online (Sandbox Code Playgroud)
例外 -
ERROR Error while executing queries
java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.tez.TezTask. Vertex failed, vertexName=Map 1, vertexId=vertex_1474097800415_0311_2_00, diagnostics=[Vertex vertex_1474097800415_0311_2_00 [Map 1] killed/failed due to:ROOT_INPUT_INIT_FAILURE, Vertex Input: commerce_feed_redshift_dedup initializer failed, vertex=vertex_1474097800415_0311_2_00 …Run Code Online (Sandbox Code Playgroud) 正如tez的github页面所说,tez非常简单,其核心只有两个组成部分:
数据处理管道引擎,和
数据处理应用程序的主人,可以将上述任意数据处理"任务"组合到任务-DAG中
那么我的第一个问题是,tez-examples.jar中存在的现有mapreduce作业如wordcount如何转换为task-DAG?哪里?或者他们不......?
而我的第二个也是更重要的问题是这个部分:
tez中的每个"任务"都有以下内容:
谁负责在tez任务之间拆分输入数据?它是用户提供的代码还是Yarn(资源管理器)甚至是tez本身?
输出阶段的问题是相同的.提前致谢
有没有比较Stinger vs Impala vs Drill的性能基准(真实的)?此外,这是首选 - 我的用例将主要针对Hive上的临时交互式查询.谢谢.
Hive版本:1.2.1
组态:
set hive.execution.engine=tez;
set hive.merge.mapredfiles=true;
set hive.merge.smallfiles.avgsize=256000000;
set hive.merge.tezfiles=true;
Run Code Online (Sandbox Code Playgroud)
HQL:
ALTER TABLE `table_name` PARTITION (partion_name1 = 'val1', partion_name2='val2', partion_name3='val3', partion_name4='val4') CONCATENATE;
Run Code Online (Sandbox Code Playgroud)
我使用HQL来合并特定表/分区的文件.但是,执行后输出目录中仍有很多文件; 而且它们的大小远远小于256000000.那么如何减少输出文件的数量.
顺便说一句,使用MapReduce而不是Tez也没有用.
是否可以使用Tez而不是MR作业生成索引?当我们尝试设置hive.execution.engine = Tez并尝试生成索引时,索引创建失败.以下是我使用的命令列表:
CREATE TABLE table02(column1 String,column2 bigint,column3 string); CREATE INDEX table02_index ON TABLE table02(column3)AS'Compact'with DEFERRED REBUILD; ALTER INDEX table02_index ON table02 REBUILD;
索引创建失败,出现以下错误消息: FAILED:Execution Error,从org.apache.hadoop.hive.ql.exec.tez.TezTask返回代码1
因此,对于表上的索引创建,我们总是必须设置hive.execution.engine = mr,即使我们要使用TEZ对该表中的数据执行查询吗?这是TEZ的限制吗?
阅读了什么是配置单元之后,它是数据库吗?,一位同事昨天提到,他能够在进行“分组依据”后过滤一个15B表,并将其与另一个表联接,仅10分钟就产生了6B条记录!我想知道这在Spark中是否会更慢,因为现在与DataFrames相比,它们是否具有可比性,但我不确定,因此是问题所在。
Hive比Spark快吗?还是这个问题没有意义?对不起,我的无知。
他使用的是最新的Hive,这似乎是在使用Tez。
有人会知道并向我解释 Tez 的这些设置之间的区别吗?
hive.tez.container.size和tez.task.resource.memory.mb
谢谢。
我想在Hive-Tez上运行查询后得到Map-Reduce日志的解释吗?INFO:之后的行表示什么?在这里我附上了一个样本
INFO : Session is already open
INFO : Dag name: SELECT a.Model...)
INFO : Tez session was closed. Reopening...
INFO : Session re-established.
INFO :
INFO : Status: Running (Executing on YARN cluster with App id application_14708112341234_1234)
INFO : Map 1: -/- Map 3: -/- Map 4: -/- Map 7: -/- Reducer 2: 0/15 Reducer 5: 0/26 Reducer 6: 0/13
INFO : Map 1: -/- Map 3: 0/118 Map 4: 0/118 Map 7: 0/1 Reducer 2: 0/15 Reducer 5: …Run Code Online (Sandbox Code Playgroud) apache-tez ×10
hadoop ×7
hive ×7
hadoop-yarn ×3
mapreduce ×3
apache-spark ×2
hdfs ×2
apache-drill ×1
apache-flink ×1
bigdata ×1
hadoop2 ×1
hiveql ×1
impala ×1
memory ×1
merge ×1
tez ×1