草庐IT

hadoop - 运行 Map Reduce 作业显示错误 - Mkdirs 无法创建/var/folders/

当我在Mac终端中运行mapreduce作业时:PawandeepSingh1$hadoopjarMaximumTemperature.jarExceptioninthread"main"java.io.IOException:Mkdirsfailedtocreate/var/folders/v1/lyx_f0rj615cy8s54_bk053h0000gp/T/hadoop-unjar3698429834837790177/META-INF/licenseatorg.apache.hadoop.util.RunJar.ensureDirectory(RunJar.java:128)a

Hadoop:是否可以以非 hdfs 用户身份运行 TestDFSIO 基准测试

是否可以以非hdfs用户身份执行TestDFSIO基准测试?此基准测试试图创建一个/benchmarks目录,但由于缺少权限而失败。有没有办法让这个基准测试使用我的hdfshome来存储数据? 最佳答案 应该可以通过设置配置参数“test.build.data”来实现,默认为“/benchmarks/TestDFSIO”。(参见:https://github.com/apache/hadoop/blob/release-2.6.0/hadoop-mapreduce-project/hadoop-mapreduce-client/ha

hadoop - 如果输入数据源在 HDFS 中不断增加,MapReduce 作业会发生什么情况?

我们有一个与HDFS一起运行的日志收集代理,即代理(如Flume)不断收集一些应用程序的日志,然后写入HDFS。读写过程不停地运行,导致HDFS的目标文件不断增加。这里的问题是,由于输入数据不断变化,如果我将收集代理的目标路径设置为作业的输入路径,MapReduce作业会发生什么情况?FileInputFormat.addInputPath(job,newPath("hdfs://namenode:9000/data/collect")); 最佳答案 map-reduce作业仅处理开始时可用的数据。Map-Reduce用于批量数据处

hadoop - 四节点群集上的Hadoop复制因子为1

我在四个节点上设置了hadoop。一个节点用于Namenode和辅助NameNode。其他三个是数据节点。我运行了一个复制系数为3的sqoop作业。该sqoop作业成功,并且数据在所有三个datanode上。用6个映射器完成这项工作大约需要1.5个小时。我以复制因子1进行了相同的工作,该工作也很成功,并且在12个映射器的情况下运行了大约1个小时。我的问题是:1.wheniranthejobforsecondtimewithreplicationfactorof1whereisthedatastored?(Isthedatasplitandstoredinallthethreedatan

hadoop - 数据存储在 HDFS 中的什么位置?有没有办法改变它的存储位置?

我是新手。我有一个3节点集群。NameNode、JobTracker和SecondaryNameNode在一个节点中运行,另外两个集群中有两个数据节点(HData1、HData2)。如果我将数据从本地系统存储到HDFS,如何找到它驻留在哪个节点?有没有一种方法可以明确指定它必须存储在哪个数据节点中?提前致谢! 最佳答案 是的,您可以使用hadoopfsck路径找到它您可以引用以下链接howdoeshdfschooseadatanodetostoreHowtoexpliciltydefinedatanodestostoreaparti

hadoop - Hive 动态分区,未创建正确的分区

我正在尝试将数据插入到分区表中,但并未创建所有分区(仅创建了空值和零值),请参见下文。hive>selectstate_code,district_code,count(*)frommarital_statusgroupbystate_code,district_code;TotalMapReducejobs=1启动的MapReduce作业:...Job0:Map:1Reduce:1CumulativeCPU:3.49secHDFSRead:193305HDFSWrite:240SUCCESSTotalMapReduceCPUTimeSpent:3seconds490msecOK280

java - Cloudera:在 HDFS 异常中上传文件

我使用带有VMcloudera-quickstart-vm-5.4.2-0-virtualbox的MACOSXYosemite。当我键入“hdfsdfs-puttestfile.txt”将文本文件放入HDFS时,我得到了一个DataStreamer异常。我注意到主要问题是我拥有的节点数为空。我在下面复制了完整的错误消息,我想知道我应该如何解决这个问题。>WARNhdfs.DFSClient:DataStreamer>Exceptionorg.apache.hadoop.ipc.RemoteException(java.io.IOException):>File/user/clouder

java - Cloudera Quickstart VM illegalArguementException : Wrong FS: hdfs: expected: file:

我有一个简单的java代码可以将一个文本文件从本地复制到hdfs。我正在使用cloudera的quickstart虚拟机。Configurationconf=newConfiguration();conf.addResource(newPath("/etc/hadoop/conf/core-site.xml"));conf.addResource(newPath("/etc/hadoop/conf/hdfs-site.xml"));FileSystemfs=FileSystem.get(conf);fs.copyFromLocalFile(newPath("/home/cloudera

hadoop - Hive 如何存储数据(从 HDFS 加载)?

我对Hadoop(HDFS和Hbase)和Hadoop生态系统(Hive、Pig、Impala等)相当陌生。我对NamedNode、DataNode、JobTracker、TaskTracker等Hadoop组件以及它们如何协同工作以高效方式存储数据有了很好的理解。在尝试了解Hive等数据访问层的基础知识时,我需要了解表的数据(在Hive中创建)的确切存储位置?我们可以在Hive中创建外部表和内部表。由于外部表可以在HDFS或任何其他文件系统中,因此Hive不会将此类表的数据存储在仓库中。内部表呢?该表将创建为Hadoop集群上其中一个数据节点上的目录。一旦我们从本地或HDFS文件系统

Java - 在 Hadoop 中下载序列文件

我在将二进制文件(在Hadoop中作为序列文件存储)复制到我的本地计算机时遇到问题。问题是我从hdfs下载的二进制文件不是我在运行map-reduce任务时生成的原始二进制文件。我用谷歌搜索了类似的问题,我猜问题是当我将序列文件复制到我的本地机器时,我得到了序列文件的标题加上原始文件。我的问题是:有没有办法避免下载header但仍保留我的原始二进制文件?我可以考虑两种方式:我可以将二进制文件转换为其他格式,如文本,这样我就可以避免使用SequenceFile。在执行copyToLocal后,我将其转换回二进制文件。我仍然使用序列文件。但是当我生成二进制文件时,我也会生成一些关于相应序列