Articles of Hadoop的

Hadoop将数据移动到另一个用户

我在我的hdfs中有几百GB的userA(单节点configuration)。 我想将所有这些数据传送给用户B,这对于我正在设置的多节点configuration来说会更合适。 我尝试了以下没有成功: hadoop fs -chown -R userB:hadoop PATH ,当以hadoop fs -chown -R userB:hadoop PATHlogin时,我看不到数据,用userA很好,尽pipeuserB被设置为hdfs所有者。 尝试start-all.sh作为用户B,需要改变一些访问控制。 同样的事情我什么都看不到 试图在userA上强制<name>hadoop.tmp.dir</name> 试图将hadoop-userA dir重命名为hadoop-userB 列出目录时,我有以下几点 drwxr-xr-x – userB hadoop 0 2011-05-29 18:17 /user/userA/tmp 看起来数据仍然由userA所有。 任何想法如何解决? 附加 userB在组hadoop(当然)。

将默认HDFS复制因子从3更改是否会影响映射器的性能?

有一个HDFS / Hadoop集群设置,并正在调整。 我想知道,如果将默认的HDFS复制因子(默认值:3)更改为更大的值将会提高映射器的性能,但增加磁盘存储使用的代价是显而易见的。 我的推理是,如果数据已经复制到更多的节点,映射器作业可以并行运行在更多的节点,没有任何数据stream/复制? 任何人有任何意见?

如何从HP DL360 Gen 9中删除HDFS的RAID选项

我正在设置一个全新的DL360 G9服务器,用于Hadoop集群概念validation。 由于HDFS会照顾RAID,我需要在G9arrays控制器(Smart Array P440ar)中绕过这个选项。 我只是无法find那里 – 如果我能做到这一点。 计划的操作系统(RHEL 6.4)在configurationarrays控制器之前不会识别磁盘。 它只允许我设置一个RAID 0arrays。这是唯一的方法来安装操作系统?

可能ssh进入服务器,而不使用-i标志键?

我有3个EC2实例,它们都使用相同的私钥。 我正在这些节点之间build立一个hadoop集群,他们需要无密码input这个工作。 我怎样才能使用这个私钥轻松ssh进入无钥匙进入服务器? 我唯一拥有的是.pem文件。 我已经将文件扫描到主服务器上。

配对MySQL和NoSQL解决scheme

我们有一些相当大的数据集(用户事件和服务器日志信息 – > 100 GB),这对数据处理来说变得相当不便。 我已经看到很多关于NoSQL / Hadoop /等的活动,我想知道SV对配对解决scheme有什么看法。 绝对理想的情况是: 一个“主从”就像我们的实时MySQL和NoSQL / Hadoop服务器之间的同步,但是我们可以build立自定义索引/等等。 能够在微不足道的时间在NoSQL / Hadoop上运行标准聚合结果,例如: 总和(*)<1秒其中event_type ='date1'和'date2'之间的'blarg' 给我所有的传入search条件(我们logging)这个页面和这个页面的孩子在一个任意的时间段和他们的计数 一个简单(<10分钟)的方式来更新开发人员的机器。 思考? 我们已经尝试了许多关于MySQL的解决scheme,没有一个能够很好地满足这些要求。

pipe理Hadoop集群中的可用文件描述符

目前,我正在为我的雇主负责一个快速增长的Hadoop集群,该集群目前build立在0.21.0版本上,CentOS作为每个工作者和主节点的操作系统。 我已经完成了大部分标准configuration问题(负载均衡,HDFS的IO规划,确保有足够的磁盘空间可用于溢出操作等等),但是没有find关于pipe理文件描述符数量的好文档每个任务跟踪器,数据节点,映射器或Reducer所需的。 到目前为止,我已经阅读过的文档(跨Hadoop和HBase)隐约地指向溢出操作,当它试图写入磁盘时,会同时消耗大量的描述符。 这个文档当然不提​​供所述描述符的范围或预期的生命周期的细分。 唯一的build议是提高系统的限制,这是一个合理的解决办法,而且作为长期规划战略是虚假的。 我没有关于Hadoop对所需文件描述符数量的假设的信息。 因此,在普通作业(即,不依赖MultipleOutputs)的生命周期中,每个映射器,Reducer,任务跟踪器和数据节点所需的文件描述符总数的configuration相关计算将非常有用。 目前是否有这样的计算?如果是这样的话,我可以合理地估计一下,我的极限应该与定义的任意数量的工作相关吗? (为了增加这个问题的可能性,其他人会遇到这个问题,当可用的描述符池已经耗尽时,Hadoop会高兴地抛出java.io.EOFException和java.io.IOException(指向一个坏文件描述符)。因为这些例外所包含的信息是非常通用的,所以花了我几个小时来追查。)

用sudo'ing用户在ubuntu集群上发布命令的最安全的方法是什么?

这是关于Cloudera集群pipe理的一个未解答的问题的后续问题,但是我想把问题推广到所有的Ubuntu可能会帮助我得到答案。 我希望能够在我的所有群集节点上启动/停止相同的服务。 我看到如何做到这一点的唯一方法是为我的主节点上的根用户创build密钥给其他每个节点。 由于我遵循Ubuntu的build议,不使用root帐户,而是使用sudo'ing用户,所以我很犹豫触摸root帐户(即添encryption钥)。 也许另外一个办法是为我的用户添encryption钥到每个盒子,然后使用一些命令远程运行sudo? 我知道还有其他的情况,人们做类似的事情。 这种types的集群pipe理的标准做法是什么?

从HDFS删除临时目录

有没有从hdfs / tmp目录中删除旧文件的巧妙方法? (只是为了确定,我不是在谈论unix FS / tmp)

hadoop如何决定节点主机名是什么?

目前由jobtracker&namenode生成的url会返回像bubbles.local这样的主机名,或者只是气泡。 除非客户端机器在/ etc / hosts文件中指定了这些端口,否则这些端口不会被parsing。 当我在这些机器上运行hostname命令时,它会返回一个完整的域名(EG bubbles.example.com) 在这些机器上运行一个小的Javatesting InetAddress addr = InetAddress.getLocalHost(); byte[] ipAddr = addr.getAddress(); String hostname = addr.getHostName(); System.out.println(hostname); 像hostname命令一样产生输出。 还有什么地方可以抓住一个主机名来使用它的jobtracker / namenode用户界面? 这发生在8月初Hadoop 1.0.3和1.0.4-SNAPSHOT的集群中。 这些机器运行CentOS版本5.8(最终)。 我所指的生成的URL是这样的 http://example:50075/browseDirectory.jsp?namenodeInfoPort=50070&dir=/ 或http://example.local:50075/browseDirectory.jsp?namenodeInfoPort=50070&dir=/

磁盘已满时,HDFS datanode启动失败

我们的HDFS集群只有90%满,但有些datanode有一些100%满的磁盘。 这意味着当我们大量重启整个集群时,一些datanodes完全无法启动,如下所示: 2013-10-26 03:58:27,295错误org.apache.hadoop.hdfs.server.datanode.DataNode:java.io.IOException:Mkdirs无法创build/ mnt / local / sda1 / hadoop / dfsdata / blocksBeingWritten 在我们开始经历真正的数据丢失之前,只有三个人必须以这种方式失败。 目前我们通过减less为root用户保留的空间量来解决这个问题,但是我们最终会耗尽。 我们也经常运行重新平衡器,但是有些磁盘仍然保持在100%。 由于卷未失败,因此更改dfs.datanode.failed.volumes.tolerated设置不是解决scheme。 有任何想法吗?