我为我的文件设置了复制因子,如下所示:
hadoop fs -D dfs.replication=5 -copyFromLocal file.txt /user/xxxx
Run Code Online (Sandbox Code Playgroud)
当NameNode重新启动时,它确保在复制的块复制.因此,存储(可能在nameNode)文件的复制信息.我怎样才能获得这些信息?
根据http://blog.cloudera.com/blog/2014/04/apache-hadoop-yarn-avoiding-6-time-consuming-gotchas/,确定每个节点并发运行任务数的公式为:
min (yarn.nodemanager.resource.memory-mb / mapreduce.[map|reduce].memory.mb,
yarn.nodemanager.resource.cpu-vcores / mapreduce.[map|reduce].cpu.vcores) .
Run Code Online (Sandbox Code Playgroud)
但是,将这些参数设置为(对于c3.2xlarges的集群):
yarn.nodemanager.resource.memory-mb = 14336
mapreduce.map.memory.mb = 2048
yarn.nodemanager.resource.cpu-vcores = 8
mapreduce.map.cpu.vcores = 1,
我发现当公式显示7应该是每个节点时,我只能同时运行4个任务.这是怎么回事?
我在AMI 3.1.0上运行Hadoop 2.4.0.
amazon-web-services elastic-map-reduce hadoop-streaming hadoop-yarn hadoop2
从" Hadoop The Definitive Guide " 一书中,在Namenodes和Datanodes主题下,提到:
namenode管理文件系统命名空间.它维护文件系统树以及树中所有文件和目录的元数据.此信息以两个文件的形式持久存储在本地磁盘上:命名空间映像和编辑日志.
辅助namenode,尽管它的名称不作为namenode.它的主要作用是定期将命名空间映像与编辑日志合并,以防止编辑日志变得太大.
我对这些文件命名空间和编辑日志有些困惑.
命名空间图像用于存储元数据.
所以,我的问题是
我在查询 ORC 文件格式表时遇到问题
我正在尝试以下查询:
INSERT INTO TABLE <db_name>.<table_name> SELECT FROM <db_name>.<table_name> WHERE CONDITIONS;
Run Code Online (Sandbox Code Playgroud)
这导致:
TaskAttempt 2 failed, info=[Error: Failure while running task:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveExceptio
Hive Runtime Error while processing row
at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:186)
at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:138)
at org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:324)
at org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:176)
at org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:168)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
at org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.call(TezTaskRunner.java:168)
at org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.call(TezTaskRunner.java:163)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
used by: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row
at org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:91)
at org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.pushRecord(MapRecordSource.java:68)
at org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.run(MapRecordProcessor.java:294)
at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:163)
... 13 more …Run Code Online (Sandbox Code Playgroud) 如何在长时间运行的EMR群集中对故障节点进行故障排除和恢复?
该节点几天前就停止了报告.主机看起来很好,也是HDFS.我只是从Hadoop Applications UI中注意到了这个问题.
我不知道如何解决这个错误:
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) 这是一个非常简单的问题:在spark中,broadcast可以用来有效地将变量发送给执行程序.这是如何运作的 ?
更确切地说:
broadcast或使用值时?.value方法时,引擎盖下会发生什么?我正在尝试使用cloudera Manager 5.9在单个VM中设置hadoop集群(为简单起见).以下是我的环境的详细信息:
Host OS -> Windows 10
Virtualization software -> Virtual box 5.1.10
Guest OS -> Cent OS 6.8
Run Code Online (Sandbox Code Playgroud)
我安装了Cloudera Manager,按照Cloudera Manager的说明,按照步骤操作.
大多数安装步骤都很顺利,但在最后一次检查时失败了.下面是屏幕截图.
从屏幕截图中可以看出,它给出了错误:
"意外错误.无法验证数据库连接."
我已经对Cloudera默认使用的Postgres DB的配置文件进行了必要的更改,也就是说它应该能够接受远程连接.
Cloudera经理的日志中没有错误.我也做了在线搜索,但没有成功.
谁能帮我解决这个错误?
我想实现一个maven项目,这有助于我对Hadoop MapReduce作业进行单元测试.我最大的问题是定义Maven依赖项以便能够使用测试类:MiniDFSCluster和MiniMRCluster.
我正在使用Hadoop 2.4.1.有任何想法吗?
任何人都可以告诉我,如果我使用Java应用程序请求使用Namenode HA设置对HDFS进行一些文件上传/下载操作,请求首先在哪里?我的意思是客户端如何知道哪个namenode是活动的?
如果您提供一些工作流程类型图或详细解释请求步骤(从头到尾),那将会很棒.
hadoop2 ×10
hadoop ×8
hadoop-yarn ×3
hdfs ×3
apache-spark ×1
apache-tez ×1
bigdata ×1
cloudera-cdh ×1
emr ×1
hive ×1
mapreduce ×1
postgresql ×1
replication ×1
unit-testing ×1
webhdfs ×1