Articles of Hadoop的

Hadoop滚动小文件

我在一个项目上运行Hadoop,需要一个build议。 通常默认情况下,Hadoop的“块大小”大约为64mb .. 还有一个build议,不要使用很多/小文件.. 由于flume的应用程序devise,目前我正在将非常非常小的文件放入HDFS中。 问题是,Hadoop <= 0.20不能追加到文件,从而我有太多的文件,我的地图 – 减less有效地运作.. 必须有一个正确的方法,简单地滚动/合并大约100个文件到一个.. 因此,Hadoop正在有效地读取1个大文件而不是10个文件 有什么build议么??

Hadoop {start | stop} -all.sh脚本是否通常使用w / cloudera 3群集,如果是这样的话,如何?

我有一个集群,我正在设置Cloudera 3,目前还不清楚我是否应该像使用标准的Apache Hadoop设置那样使用这些启动/停止脚本(我有一个特定的用户帐户所有的Hadoop的东西)。 与CDH3,我得到这些服务作为根运行。 用Cloudera 3发布全球启动和停止的安全和便捷的方法是什么? 用户是否想要使用这些脚本设置密钥为root可以login到其他框? 如果是这样, sudo su用户如何设置(只是sudo su和安装密钥?)? 另外,当我尝试运行sudo /usr/lib/hadoop-0.20/bin/start-all.sh (没有为root用户设置连接到删除框的密钥),我得到以下输出: starting namenode, logging to /usr/lib/hadoop-0.20/bin/../logs/hadoop-root-namenode-meez01.out May not run daemons as root. Please specify HADOOP_NAMENODE_USER <asks me for root@myserver's password> …. <similar message for jobtracker> 更新:我知道有人必须使用Cloudera ..这是一个阴谋让我支付他们的支持?! J / K。 如果有的话,现在让我来告诉你如何使用它

Ubuntu上的Hadoop – 两个不同的安装目录?

我最近从Apache提供的.deb安装了Hadoop 1.0.3。 该软件包安装正确,但似乎有两个目录有Hadoop相关的文件:/ usr / share / hadoop有jar和站点configuration文件,而/ etc / hadoop有hadoop-env.sh和其他一些XML; 到目前为止,我读过的所有Hadoop文献似乎都假定只有一个Hadoop安装目录; 有人可以详细说明这两个目录和他们各自的目的吗? 谢谢。

Rhadoop hdfs.init()错误

我最近安装了CDH5.1.0和R 3.1。*,并且安装了rmr2,rJava和rhdfs。 (以及所需的软件包并设置所需的环境variables)安装rhdfs后,我添加到我的/usr/lib/R/etc/Renviron.site文件: HADOOP_HOME="usr/lib/hadoop" HADOOP_CMD="usr/bin/hadoop" HADOOP_STREAMING="usr/lib/hadoop-mapreduce/hadoop-streaming-2.3.0-cdh5.1.0.jar" 然后我开始R并运行下面的代码: >library(rmr2) loading required packages … >library(rJava) >library(rhdfs) HADOOP_CMD=usr/bin/hadoop be sure to run hdfs.init() >hdfs.init() sh: 1: usr/bin/hadoop: not found Error in system(command, intern = TRUE) : error in running command 我已经看到了与java类path类似的问题,但我还没有发现在互联网上的其他任何地方这个具体的问题! 任何帮助将非常感激。

我应该在物理机器还是虚拟机上部署hadoop?

我们将在数百个(比如说300个)物理x86节点上部署一个hadoop集群。 由于我们没有太多的生产部署经验,所以有一个简单的问题,我们希望听到有经验的人的回应。 什么是最好的实践? 我们应该直接在物理盒子上部署hadoop,还是需要一个虚拟机层(即IaaS云)来pipe理hadoop集群的计算资源。 作出这个决定时应该关心什么?

zfs for Hadoop云而不是ext4

现在我有几个与ext4 linode。 我有一个hadoop设置。 如果我将我的文件系统从ext4迁移到zfs,我将获得什么好处。 响应时间会有什么好处吗? 数据在本地局域网中交换时的任何速度优化? 如果我在云中添加一个新的linode,同步时间会比ext4减less吗? 另外还有哪些方面呢?

/ usr / bin / env:python2.5:没有这样的文件或目录

我正尝试在我的EC2帐户上使用Cloudera的Hadoop Distribution。 为了configuration它,我正在使用这个教程。 一切似乎都很好,但是当我尝试运行hadoop-ec2 我得到以下错误: max@ubuntu:~/Desktop/cloudera-for-hadoop-on-ec2-py-0.3.0-beta$ ./hadoop-ec2 /usr/bin/env: python2.5: No such file or directory 我尝试运行which env得到这个/usr/bin/env ,在那里我有这些文件夹: Python和Python2.6 那么,我应该重新命名Python2.6到Python2.5还是有另一种方法来修改这个?

Hive元数据权限问题

在创buildDB /表时,我们在Hive上收到这个错误 hive> CREATE TABLE pokes (foo INT, bar STRING); FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Cannot get a connection, pool error Could not create a validated object, cause: A read-only user or a user in a read-only database is not permitted to disable read-only mode on a connection. NestedThrowables: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool […]

Hadoop的JAVA_HOME

我想configurationhadoop以伪分布模式运行。 我的configuration文件: core-site.xml : <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost/</value> </property> </configuration> hdfs-site.xml : <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> mapred-site.xml : <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:8021</value> </property> </configuration> 我使用的hadoop version命令hadoop version是: Hadoop 0.20.203.0 Subversion http://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-203 -r 1099333 Compiled by oom on Wed May 4 07:57:50 PDT 2011 我已经设置了JAVA_HOME环境variables:(我使用的是Fedora 15) /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64 export $JAVA_HOME的输出是: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64 但是当我运行start-dfs.sh它说: localhost: Error: JAVA_HOME […]

Hadoop集群中多个JobTracker节点的含义?

我得到的印象是,可能会有多个JobTracker节点configuration为共享同一组MR(TaskTracker)节点。 我知道,通常情况下,Hadoop集群中的所有节点应该具有相同的configuration文件集(传统上在/etc/hadoop/conf/ —至less在Hadoop的Cloudera Distribution(CDH) mapred-site.xml工作追踪器?例如: <configuration> <property> <name>mapred.job.tracker</name> <value>jt01.mydomain.not:8021</value> </property> <property> <name>mapred.job.tracker</name> <value>jt02.mydomain.not:8021</value> </property> … </configuration> 还是有一些其他允许的语法呢? 这样做的含义是什么? 每个JobTracker是否获取有关每个TaskTracker节点上的负载的信息? 换句话说,两个JobTracker只能根据来自TTs的八卦信息来协调他们在TT节点上的调度,还是需要彼此交谈? 这是logging在任何地方?