标签: hadoop

在reduce阶段之后合并输出文件

在mapreduce中,每个reduce任务将其输出写入名为part-r-nnnnn的文件,其中nnnnn是与reduce任务关联的分区ID.map/reduce是否合并这些文件?如果有,怎么样?

hadoop mapreduce

74
推荐指数
4
解决办法
7万
查看次数

容器超出了内存限制

在Hadoop v1中,我已经分配了每个7GB的mapper和reducer slot,大小为1GB,我的mappers和reducer运行正常.我的机器有8G内存,8个处理器.现在使用YARN,当在同一台机器上运行相同的应用程序时,我收到了容器错误.默认情况下,我有这样的设置:

  <property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>1024</value>
  </property>
  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>8192</value>
  </property>
  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>8192</value>
  </property>
Run Code Online (Sandbox Code Playgroud)

它给了我错误:

Container [pid=28920,containerID=container_1389136889967_0001_01_000121] is running beyond virtual memory limits. Current usage: 1.2 GB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used. Killing container.
Run Code Online (Sandbox Code Playgroud)

然后我尝试在mapred-site.xml中设置内存限制:

  <property>
    <name>mapreduce.map.memory.mb</name>
    <value>4096</value>
  </property>
  <property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>4096</value>
  </property>
Run Code Online (Sandbox Code Playgroud)

但仍然得到错误:

Container [pid=26783,containerID=container_1389136889967_0009_01_000002] is running beyond physical memory limits. Current usage: 4.2 GB of 4 GB physical memory used; 5.2 GB of 8.4 GB virtual memory used. …
Run Code Online (Sandbox Code Playgroud)

hadoop mapreduce mrv2 hadoop-yarn

74
推荐指数
4
解决办法
12万
查看次数

使用Eclipse/Maven建立Hadoop - 缺少工件jdk.tools:jdk.tools:jar:1.6

我试图在eclipse 3.81,m2e插件的maven项目中导入cloudera的org.apache.hadoop:hadoop-client:2.0.0-cdh4.0.0, 来自cdh4 maven repo,在win7上使用oracle的jdk 1.7.0_05

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.0.0-cdh4.0.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

The container 'Maven Dependencies' references non existing library 'C:\Users\MyUserId\.m2\repository\jdk\tools\jdk.tools\1.6\jdk.tools-1.6.jar'
Run Code Online (Sandbox Code Playgroud)

更具体的是,maven声明缺少以下工件

Missing artifact jdk.tools:jdk.tools:jar:1.6
Run Code Online (Sandbox Code Playgroud)

怎么解决这个?

java maven-2 hadoop maven cloudera

73
推荐指数
5
解决办法
12万
查看次数

集成测试Hive作业

我正在尝试使用Hive Thrift和JDBC接口编写一个非平凡的Hive作业,而我在设置一个像样的JUnit测试时遇到了麻烦.非平凡,我的意思是这项工作至少会产生一个MapReduce阶段,而不是只处理Metastore.

测试应该启动一个Hive服务器,将一些数据加载到一个表中,在该表上运行一些非平凡的查询,并检查结果.

我根据Spring参考连接了Spring上下文.但是,MapReduce阶段的作业失败,抱怨没有Hadoop二进制文件存在:

java.io.IOException:无法运行程序"/ usr/bin/hadoop"(在目录"/ Users/yoni/opower/workspace/intellij_project_root"中):error = 2,没有这样的文件或目录

问题是Hive Server在内存中运行,但依赖于Hive的本地安装才能运行.为了让我的项目自成一体,我需要嵌入Hive服务,包括HDFS和MapReduce集群.我尝试使用相同的Spring方法启动Hive服务器并将其指向MiniDFSClusterMiniMRCluster,类似于Hive QTestUtil源和HBaseTestUtility中使用的模式.但是,我无法让它发挥作用.

经过三天试图纠缠Hive集成测试后,我想我会问社区:

  1. 你如何推荐我集成测试Hive工作?
  2. 您是否有使用内存HDFS,MR和Hive实例的集成测试Hive作业的JUnit示例?

我看过的其他资源:

编辑:我完全清楚,针对Hadoop集群(无论是本地还是远程),可以针对全栈Hive实例运行集成测试.如上所述,问题在于,这不是有效测试Hive工作流的可行解决方案.

java testing hadoop hive mapreduce

71
推荐指数
2
解决办法
8513
查看次数

Hive在哪里存储HDFS中的文件?

我想知道如何找到Hive表与它们所代表的实际HDFS文件(或更确切地说,目录)之间的映射.我需要直接访问表文件.

Hive将文件存储在HDFS中的哪个位置?

hadoop hive hdfs

67
推荐指数
5
解决办法
13万
查看次数

HDFS错误:只能复制到0个节点,而不是1个

我在EC2中创建了一个ubuntu单节点hadoop集群.

测试简单的文件上传到hdfs可以从EC2机器上运行,但不能在EC2之外的机器上运行.

我可以通过远程机器的Web界面浏览文件系统,它显示一个在服务中报告的datanode.已打开安全性中从0到60000(!)的所有tcp端口,所以我不认为是这样.

我收到了错误

java.io.IOException: File /user/ubuntu/pies could only be replicated to 0 nodes, instead of 1
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1448)
at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:690)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:342)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1350)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1346)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:742)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1344)

at org.apache.hadoop.ipc.Client.call(Client.java:905)
at org.apache.hadoop.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:198)
at $Proxy0.addBlock(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
at $Proxy0.addBlock(Unknown Source)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:928)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:811)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:427)
Run Code Online (Sandbox Code Playgroud)

namenode log只会给出相同的错误.其他人似乎没有任何有趣的东西

有任何想法吗?

干杯

hadoop amazon-ec2

67
推荐指数
5
解决办法
9万
查看次数

在Hive中执行任何查询时,有没有办法获取列名和输出?

在Hive中,当我们执行查询(如:)时 select * from employee,我们在输出中没有得到任何列名(比如我们在RDBMS SQL中获得的名称,年龄,工资),我们只获取值.

在执行任何查询时,有没有办法让列名与输出一起显示?

rdbms hadoop hive

66
推荐指数
3
解决办法
9万
查看次数

Hadoop中Amazon S3和S3n之间的差异

当我将Hadoop集群连接到Amazon存储并将文件下载到HDFS时,我发现s3://无法正常工作.在互联网上寻求帮助时,我发现我可以使用S3n.当我用S3n它工作.我不明白使用S3S3n我的Hadoop集群之间的区别,有人可以解释一下吗?

hadoop amazon-s3 hdfs

65
推荐指数
3
解决办法
4万
查看次数

通过键Spark写入多个输出 - 一个Spark作业

如何在单个作业中使用Spark写入依赖于键的多个输出.

相关:通过键Scalding Hadoop写入多个输出,一个MapReduce作业

例如

sc.makeRDD(Seq((1, "a"), (1, "b"), (2, "c")))
.writeAsMultiple(prefix, compressionCodecOption)
Run Code Online (Sandbox Code Playgroud)

确保cat prefix/1

a
b
Run Code Online (Sandbox Code Playgroud)

cat prefix/2

c
Run Code Online (Sandbox Code Playgroud)

编辑:我最近添加了一个新的答案,其中包括完整的导入,皮条客和压缩编解码器,请参阅/sf/answers/3228263111/,除了之前的答案,这可能会有所帮助.

hadoop scala hdfs output apache-spark

63
推荐指数
4
解决办法
6万
查看次数

如何从命令提示符检查ZooKeeper是否正在运行?

我正在探索设置kafka的几个选项,我知道Zookeeper必须启动并运行才能启动kafka.

我想知道如何找到以下内容.

1)我的zookeeper实例的主机名和端口---我检查了zoo.cfg,我只能找到ClientPort而不是主机名,hostname是我的盒子的主机名吗?

2)检查ZooKeeper是否正常运行---我试图做一个ps -ef | grep "zoo"我找不到的东西.可能是我用错了关键词来搜索?

任何帮助将非常感激?

hadoop config ps apache-kafka apache-zookeeper

62
推荐指数
7
解决办法
12万
查看次数