草庐IT

hadoop - HDFS 联邦 : Submission of Map Reduce jobs among multiple Name nodes

根据HdfsFederation上的Apache文档,系统可通过多个名称节点的联合进行隔离扩展。多个名称节点/namespace为了横向扩展名称服务,联邦使用多个独立的名称节点/namespace。名称节点是联合的;Namenodes是独立的,不需要相互协调。Datanodes被所有Namenodes用作block的公共(public)存储。我唯一的疑问:我没有看到名称节点之间有任何中央协调器,因为所有节点都在运行隔离。对如何提交和处理作业感到困惑。1)如果我提交一个map-reduce作业,哪个名称节点将处理它?或者2)客户端是否应该知道必须为其提交作业的名称节点?如果客户端不知道哪

java - 使用 Java API 将数据上传到 HDFS

我已经搜索了一段时间,但似乎没有一个解决方案适合我。非常简单-我想使用JavaAPI将数据从我的本地文件系统上传到HDFS。Java程序将在已配置为通过shell(即hdfsdfs-ls等)与远程Hadoop集群通信的主机上运行。我在我的项目中包含了以下依赖项:hadoop-core:1.2.1hadoop-common:2.7.1hadoop-hdfs:2.7.1我的代码如下所示:FilelocalDir=...;FilehdfsDir=...;PathlocalPath=newPath(localDir.getCanonicalPath());PathhdfsPath=newPat

python - 在 HDFS 中查询列的行值

我在hdfs中有一个制表符分隔的文本文件,它是从其他人构建的一些文本分析中输出的,看起来像这样。真实文件有18k列宽,当每月刷新时,列数和列名都不是静态的。ProductID[Ilovepeanuts][Yourmomissilly][Let'seatpizza]P-ABCD001P-1234110我需要编写一个程序来搜索或查询“让我们吃披萨”并返回P-ABCD。我现在正在使用Python,但我对python和mapreduce都是新手,所以我无法思考如何解决这个问题。情况很奇怪,我还没有找到任何其他解决方案。我在想是否可以转动“table”,使其看起来像这样:ProductIDPhr

hadoop - HDFS 可以作为机器的 native 文件系统运行吗?

我正在学习使用ClouderaVM的教程。hadoop堆栈已预安装在VM中。任何时候我必须做操作我必须将文件从VM文件系统传输到HDFS,在我看来,将所有文件从native文件系统(在我的例子中是VMnative文件系统)复制到HDFS有点开销。hdfsdfs-putHDFS是在工业环境中作为本地文件系统运行,还是上述方法是事实上的运行方式。 最佳答案 您不能使用HDFS跳过该过程。在HDFS中存储文件意味着几个步骤,例如如果文件大于block大小,则将文件分成block,在名称节点中生成记录以存储与文件block相关的所有元数据,

hadoop - 为什么 Spark 选择在 shuffle 阶段通过网络发送数据而不是写入 HDFS 上的某个位置?

据我所知,spark尝试通过网络将数据发送到另一个节点的内存缓冲区,如果它不适合内存则溢出到磁盘,为什么spark不能从任何节点可以写入的地方写入HDFS读? 最佳答案 将其写入磁盘的传输速度要慢得多。最重要的是,您保证会产生在感兴趣的节点之间同步磁盘访问的开销。 关于hadoop-为什么Spark选择在shuffle阶段通过网络发送数据而不是写入HDFS上的某个位置?,我们在StackOverflow上找到一个类似的问题: https://stackover

hadoop - MrJob 花费大量时间 Copy local files into hdfs

我遇到的问题是:已经将我的input.txt(50MBytes)文件放入HDFS,我正在运行python./test.pyhdfs:///user/myself/input.txt-rhadoop--hadoop-bin/usr/bin/hadoopMrJob似乎花了很多时间将文件复制到hdfs(又是?)Copyinglocalfilesintohdfs:///user/myself/tmp/mrjob/test.myself.20150927.104821.148929/files/这符合逻辑吗?它不应该直接从HDFS使用input.txt吗?(使用Hadoop版本2.6.0)

hadoop - Cloudera Manager - HDFS 可用空间健康问题故障排除

我有一个由两台主机配置的集群-我正在运行的作业似乎正在创建大量日志,并且我的一个hdfs数据节点显示严重的健康问题为-四件事:如何清理这些日志并腾出空间?从/var/log/hadoop-hdfs手动删除它们是个好主意吗?如上/var/log/hadoop-hdfs目录只有610MBhdfs的空间在哪里被占用?如何配置日志文件以定期删除?我有HDFS、Spark和YARN-MR2服务已启动并正在运行,它们都在创建自己的日志。我也想清理那些。谢谢! 最佳答案 深入研究hdfs之后-要获取哪个目录的大小,请执行:hadoopfs-du-

java - 在启用权限的情况下在 hdfs 上写入文件

我尝试在启用权限的情况下使用Java(v1.8)在hdfs上写入文件。作为hadoop实例,我使用了现成的docker镜像:https://hub.docker.com/r/sequenceiq/hadoop-docker/我关注了WriteafileinhdfswithJava执行如下操作:Configurationconfiguration=newConfiguration();configuration.set("fs.defaultFS","hdfs://127.0.0.1:9000/user/root");configuration.set("hadoop.job.ugi",

hadoop - apache pig 没有连接到 hdfs

我有Hadoop版本2.6.3和pig-0.6.0我在单节点集群中启动并运行了所有守护进程。发射pig命令后。pig只连接到file:///而不是hdfs你能告诉我如何连接hdfs吗下面是我能看到的INFO日志2016-01-1020:58:30,431[main]INFOorg.apache.pig.backend.hadoop.executionengine.HExecutionEngine-Connectingtohadoopfilesystemat:file:///2016-01-1020:58:30,650[main]INFOorg.apache.hadoop.metrics

java - 是否可以使用java将数据附加到hdfs

我在hdfs中有一个制表符分隔的文件。我需要使用Java将用户输入附加到hdfs中的分隔文件。我不知道如何实现这个。如果有人告诉我其中的逻辑,那将对我非常有用。 最佳答案 org.apache.hadoop.dfs.DistributedFileSystem类有一个方法append,它返回一个流对象FSDataOutputStream,您可以在其中写入使用out.write。这将使您的工作完成。在此处引用文档http://archive.cloudera.com/cdh/2/hadoop-0.18.3+76.2/api/org/ap