云计算-我在java上运行Hadoop的例程 FindFileOnHDFS 结果报错了

问题描述

我在java上运行Hadoop的例程 FindFileOnHDFS 结果报错了

Exception in thread "main" java.lang.ClassCastException: org.apache.hadoop.fs.LocalFileSystem cannot be cast to org.apache.hadoop.hdfs.DistributedFileSystem
at org.apache.hadoop.examples.FindFileOnHDFS.getHDFSNodes(FindFileOnHDFS.java:43)
at org.apache.hadoop.examples.FindFileOnHDFS.main(FindFileOnHDFS.java:16)
怎么办?
例程的代码如下(代码是肯定没错的):
package org.apache.hadoop.examples;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.BlockLocation;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdfs.DistributedFileSystem;
import org.apache.hadoop.hdfs.protocol.DatanodeInfo;

public class FindFileOnHDFS {

public static void main(String[] args) throws Exception{
getHDFSNodes();
getFileLocal();
}

public static void getFileLocal() throws Exception {

Configuration conf = new Configuration();
FileSystem hdfs = FileSystem.get(conf);
Path fpath = new Path("/user/root/20120722/word.txt");

FileStatus fileStatus = hdfs.getFileStatus(fpath);
BlockLocation[] blkLocations = hdfs.getFileBlockLocations(fileStatus, 0, fileStatus.getLen());

int blockLen = blkLocations.length;

for(int i = 0 ; i < blockLen ; ++i ){
String[] hosts = blkLocations[i].getHosts();
System.out.println("block_"+i + "_location:" + hosts[i]);
}
}

public static void getHDFSNodes() throws Exception{
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
DistributedFileSystem hdfs = (DistributedFileSystem)fs;
DatanodeInfo[] dataNodeStats = hdfs.getDataNodeStats();

for( int i = 0 ; i < dataNodeStats.length ; ++i ){
System.out.println("DataNode_" + i + "_Node:" + dataNodeStats[i].getHostName());
}
}
}

时间: 2024-07-28 15:31:56

云计算-我在java上运行Hadoop的例程 FindFileOnHDFS 结果报错了的相关文章

ParallelX助力在GPU上运行Hadoop任务

文章讲的是ParallelX助力在GPU上运行Hadoop任务,在面对大规模计算密集型算法时,MapReduce范式的表现并不总是很理想.为了解决其瓶颈,一支小型创业团队构建了名为ParallelX的产品--它将通过利用GPU的运算能力,为Hadoop任务带来显著的提升. ParallelX的联合创始人Tony Diepenbrock表示,这是一个"GPU编译器,它能够把用户使用Java编写的代码转化为OpenCL,并在亚马逊AWS GPU云上运行".它的最终产品是一项与亚马逊Elas

hadoop集群-HADOOP集群主机上运行HADOOP相关命令回车后响应慢

问题描述 HADOOP集群主机上运行HADOOP相关命令回车后响应慢 HADOOP集群主机上运行HADOOP相关命令回车后响应慢,如集群主机上输入hivehbase shell或者hdfs dfs -ls / 回车后终端响应非常慢,至少10秒上才出来 Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.3.1-1.cdh5.3.1.p0.5/jars/hive-common-0.13.1-

用jep在java上运行python报错

问题描述 用jep在java上运行python报错 显示错误 ImportError: No module named site 代码是这样的 String SCRIPT_PATH = "D:\codes\Python\StockDataAnalysis\MatGraph.py"; try { Jep jep = new Jep(); jep.runScript(SCRIPT_PATH); } catch (Exception ex) { ex.printStackTrace(); }

云上运行 Hadoop 会面临哪些挑战

在云上运行Hadoop,很多人担心性能.因为一提到虚拟化就会有人想到有成本,往往得出有偏见的结论-在云上运行肯定比物理机器上运行性能差.确实,在云上运行Hadoop对平台方还是面临一些挑战的,下面主要讲述这些挑战及平台方怎么解决的. 作者:阿里封神来源:云栖博客|2016-06-02 14:15 收藏 分享 前言 在云上运行Hadoop,很多人担心性能.因为一提到虚拟化就会有人想到有成本,往往得出有偏见的结论-在云上运行肯定比物理机器上运行性能差.如果单独把10台物理机虚拟化跑Hadoop,这肯

Ubuntu上搭建Hadoop环境(伪分布式)

首先要了解一下Hadoop的运行模式: 单机模式(standalone)        单机模式是Hadoop的默认模式.当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置.在这种默认模式下所有3个XML文件均为空.当配置文件为空时,Hadoop会完全运行在本地.因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程.该模式主要用于开发调试MapReduce程序的应用逻辑. 伪分布模式(Pseudo-Distributed

byte-java 上传大文件(1G)报错 java.lang.OutOfMemoryError

问题描述 java 上传大文件(1G)报错 java.lang.OutOfMemoryError java.lang.OutOfMemoryError: Java heap space java.util.Arrays.copyOf(Arrays.java:2271) java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:113) java.io.ByteArrayOutputStream.ensureCapacity(Byt

《Spark 官方文档》在Mesos上运行Spark

在Mesos上运行Spark Spark可以在由Apache Mesos 管理的硬件集群中运行. 在Mesos集群中使用Spark的主要优势有: 可以在Spark以及其他框架(frameworks)之间动态划分资源. 可以同时部署多个Spark实例,且各个实例间的资源分配可以调整. 工作原理 在独立部署的Spark集群中,下图里的Cluster Manager代表Spark master.然而,在Mesos集群中,Mesos master将取代Spark master在下图中的地位. 如果一个S

java的class文件怎么在无jdk的电脑上运行?

问题描述 java的class文件怎么在无jdk的电脑上运行? 我是java初学者,和媳妇两地分居,想给她做几个小游戏.她是电脑白痴,所以要做成exe格式,求教!!! 解决方案 手动编译java,运行.class文件java jdk安装 环境变量配置 cmd 命令行 编译java文件 运行.class文件 CLASSPATH配置java jdk安装 环境变量配置 cmd 命令行 编译java文件 运行.class文件 CLASSPATH配置 解决方案二: -.远程!!给安装..不然太麻烦了呢.

自签名被阻止-自签名applet无法在浏览器上运行 被Java安全阻止

问题描述 自签名applet无法在浏览器上运行 被Java安全阻止 小弟刚学习写applet,按照<Java核心技术>中的一个小例子写了一段HTML和applet,用appletviewer打开没有问题,不过我想通过浏览器的方式打开,却发现被Java安全阻止,阻止原因是:"您的安全设置已阻止本地应用程序运行".后来在网上找解决之道,发现有人说需要给应用数字签名,于是我将class文件打包成jar文件,并且进行了数字签名,以为大功告成,孰不知双击html文件后,浏览器依然不能