草庐IT

hadoop - 限制每个数据节点的非 dfs 使用

由于Hadoop疯狂的数据分布和管理,我面临一个奇怪的问题。由于非DFS使用,我的一两个数据节点已完全填满,而其他节点几乎为空。有没有办法让非dfs的使用更加统一?[我已经尝试过使用dfs.datanode.du.reserved但这也无济于事]问题示例:我有16个数据节点,每个节点有10GB的空间。最初,每个节点都有大约。7GB可用空间。当我开始处理5GB数据的作业(复制因子=1)时,我希望作业能够成功完成。可惜!当我监视作业执行时,突然发现一个节点空间不足,因为非dfs使用量约为6-7GB,然后它重试,另一个节点现在空间不足。我真的不想进行更高的重试,因为那不会提供我正在寻找的性能

hadoop - 从维基百科加载 30000 个文档

我有一个wikipediaurl,我想使用wikiAPI从该页面和其他引用页面加载内容,最多30000个文档,我可以遍历url并执行此操作,但这不是一种有效的方法。有没有其他方法可以实现这一目标。我需要它来在hadoop中填充我的HDFS。 最佳答案 您可以下载维基媒体软件和数据库图像,设置维基百科并在本地访问它。这是很好的描述,应该比通过网络请求该数量的页面更有效。参见:http://www.igeek.co.za/2009/10/16/how-to-mirror-wikipedia/还有许多其他来源和经过预处理的页面。问题来了,

hadoop hdfs 从 cdh3 迁移到 cdh4

我有两个hadoop集群,我的目标是使用hadoop-cp将所有hdfs文件从cluster1复制到cluster2集群1:Hadoop0.20.2-cdh3u4集群2:Hadoop2.0.0-cdh4.1.1现在,即使只是在cluster2上远程对cluster1运行dfs-ls命令,如下所示:hadoopfs-lshdfs://cluster1-namenode:8020/hbase我遇到异常:ls:因本地异常而失败:java.io.IOException:响应为空。;主机详细信息:本地主机是:“cluster2-namenode/10.21.xxx.xxx”;目标主机是:“clu

高内存机器上的Hadoop单节点配置

我有一个ApacheHadoop1.1.1的单节点实例,其默认参数值(参见例如[1]和[2])在具有大量RAM和非常有限的可用磁盘空间大小的机器上。然后,我注意到这个Hadoop实例在映射任务期间浪费了大量磁盘空间。为了利用高RAM容量并减少磁盘空间使用,我应该注意哪些配置参数? 最佳答案 您可以使用多个mapred.*参数来压缩映射输出,这将大大减少存储映射器输出所需的磁盘空间量。参见thisquestion一些好的指示。请注意,不同的压缩编解码器会有不同的问题(即GZip比LZO需要更多的CPU,但你必须自己安装LZO)。Thi

java - 在Configuration中设置HDFS的根目录

我有一个目录结构:/DIRfilesDIRusr我的HDFS在hdfs://db:123可用,所以我创建配置:configuration.set("fs.default.name","hdfs://db:123");那么所有的目录/路径都是相对于根的(/)。我创建了一个目录files,这是我想要保存所有文件的地方。我是否必须手动将/files/附加到代码中每个路径的开头,或者我是否可以创建配置:configuration.set("fs.default.name","hdfs://db:123/files");无需更改代码? 最佳答案

hadoop - hdfs将数据分布式存储在datanode中

我构建了HDFS(2个数据节点)。我将数据存储在HDFS的数据节点中。我想使用两个数据节点平衡存储数据。但是当我使用CLI(hadoopfs-put)时,我只存储了一个数据节点有没有人知道如何将数据准确地存储为两个单独的数据? 最佳答案 听起来你在问如何设置复制因子。如果你有2个数据节点,复制因子2将确保所有文件都存储在两个节点上。您可以在Hadoopconf目录中的hdfs-site.xml中进行设置。你想设置:dfs.replication2您还可以运行setrep命令来更改特定文件或目录的复制因子:hadoopfs-setre

java - 如何从现有的 Web 应用程序访问 HDFS(Hadoop 文件系统)

我已经在我的集群上安装了hadoop1.0.4,有1个主服务器和3个从服务器,现在我想通过我的Web应用程序访问我的HDFS文件系统,以存储和访问现有Web应用程序的数据。由于我的Web应用程序目前使用MySQL作为数据库,我想用HDFS替换它。那么可以使用什么,以便我能够通过现有的Web应用程序访问HDFS?出于后端数据迁移的目的,我正在使用sqoop和flume,但我希望应用程序与HDFS进行实时同步。因为我从网页保存的应该直接到HDFS,而我要搜索的应该直接来自HDFS。请提出建议。提前致谢。 最佳答案 这就像用橙子代替苹果。

java - 如何获取 Hadoop 执行的已完成作业的统计信息?

当我们在Hadoop上运行数据密集型作业时。Hadoop执行作业。现在我想要的是工作完成的时间。它会给我有关的统计数据执行的工作即;耗时、mapper数量、reducer数量等有用信息。作业执行期间在浏览器中显示的信息,如作业跟踪器、数据节点。但是我如何才能在我的应用程序中获得统计信息,该应用程序在Hadoop上运行作业并在作业完成时为我提供报告之类的结果。我的应用程序是在JAVA中任何可以帮助我的API。我们将不胜感激。 最佳答案 查看JobClient的以下方法:getMapTaskReports(JobID)getReduce

java - 如何计算 MR 作业中 HDFS 中的文件数?

就此而言,我是Hadoop和Java的新手。我正在尝试从我正在编写的MapReduce驱动程序计算HDFS上文件夹中的文件数。我想在不调用HDFSShell的情况下执行此操作,因为我希望能够传入我在运行MapReduce作业时使用的目录。我尝试了很多方法,但由于我对Java的经验不足,都没有成功实现。如有任何帮助,我们将不胜感激。谢谢,游牧。 最佳答案 您可以只使用文件系统并遍历路径内的文件。这是一些示例代码intcount=0;FileSystemfs=FileSystem.get(getConf());booleanrecurs

database - 创建 Hive Metastore 数据库表错误

我正在运行ClouderaManager(免费版),我到达了向导创建HiveMetastore数据库的地步。显示此错误并停止配置过程。使用/var/run/cloudera-scm-agent/process/40-hive-metastore-create-tables/hadoop-conf作为HADOOP_CONF_DIR我似乎找不到任何可能导致此问题的信息?到目前为止,一切都已正确配置,安装的一切以及用户名和密码都是正确的。有人以前见过这个错误吗?想法?错误日志:atsun.reflect.DelegatingConstructorAccessorImpl.newInstanc