Tag: hadoop

Mapreduce wordcount作业中找不到类的exception

我正在尝试在hadoop中运行wordcount作业。但总是得到一个类未找到exception。我发布了我写的类和我用来运行作业的命令 import java.io.IOException; import java.util.*; import org.apache.hadoop.fs.Path; import org.apache.hadoop.conf.*; import org.apache.hadoop.io.*; import org.apache.hadoop.mapreduce.*; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.TextInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; public class WordCount { public static class Map extends Mapper { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(LongWritable key, Text value, Context context) throws […]

如何将Hadoop Path对象转换为Java File对象

有没有办法将有效的和现有的Hadoop Path对象更改为有用的Java File对象。 有没有一种很好的方法可以做到这一点,还是我需要大胆地编写提交代码? 更明显的方法不起作用,似乎它是一个常见的代码 void func(Path p) { if (p.isAbsolute()) { File f = new File(p.toURI()); } } 这不起作用,因为Path :: toURI()返回“hdfs”标识符,Java的File(URI uri)构造函数只识别“文件”标识符。 有没有办法让Path和File一起工作? ** 好的,一个特定的有限例子怎么样。 Path[] paths = DistributedCache.getLocalCacheFiles(job); DistributedCache应该提供文件的本地化副本,但它返回一个Path。 我假设DistributedCache制作文件的本地副本,它们位于同一磁盘上。 鉴于这个有限的例子,hdfs希望不在等式中,有没有办法让我可靠地将Path转换为文件? **

使用Hiveserver2 Thrift Java客户端时请求挂起

这是这个问题的后续问题 ,我在哪里询问Hiveserver 2 thrift java客户端API是什么。 如果您不需要任何更多背景,这个问题应该能够在没有背景的情况下站立。 无法找到有关如何使用hiverserver2 thrift api的任何文档,我把它放在一起。 我能找到的最佳参考是Apache JDBC实现 。 TSocket transport = new TSocket(“hive.example.com”, 10002); transport.setTimeout(999999999); TBinaryProtocol protocol = new TBinaryProtocol(transport); TCLIService.Client client = new TCLIService.Client(protocol); transport.open(); TOpenSessionReq openReq = new TOpenSessionReq(); TOpenSessionResp openResp = client.OpenSession(openReq); TSessionHandle sessHandle = openResp.getSessionHandle(); TExecuteStatementReq execReq = new TExecuteStatementReq(sessHandle, “SHOW TABLES”); TExecuteStatementResp execResp = client.ExecuteStatement(execReq); TOperationHandle […]

hadoop java.net.URISyntaxException:绝对URI中的相对路径:rsrc:hbase-common-0.98.1-hadoop2.jar

我有一个连接到HBASE的map reduce作业,我无法弄清楚我遇到这个错误的位置: Exception in thread “main” java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.RunJar.main(RunJar.java:212) Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: rsrc:hbase-common-0.98.1-hadoop2.jar at org.apache.hadoop.fs.Path.initialize(Path.java:206) at org.apache.hadoop.fs.Path.(Path.java:172) at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.findOrCreateJar(TableMapReduceUtil.java:703) at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addDependencyJars(TableMapReduceUtil.java:656) at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addHBaseDependencyJars(TableMapReduceUtil.java:573) at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addDependencyJars(TableMapReduceUtil.java:617) at org.apache.hadoop.hbase.mapreduce.HFileOutputFormat2.configureIncrementalLoad(HFileOutputFormat2.java:398) at org.apache.hadoop.hbase.mapreduce.HFileOutputFormat2.configureIncrementalLoad(HFileOutputFormat2.java:356) […]

Spark 1.6-无法在hadoop二进制路径中找到winutils二进制文件

我知道有一个非常相似的post( 无法在hadoop二进制路径中找到winutils二进制文件 ),但是,我已经尝试了建议的每一步,但仍然出现相同的错误。 我正在尝试在Windows 7上使用Apache Spark版本1.6.0来执行此页面上的教程http://spark.apache.org/docs/latest/streaming-programming-guide.html ,具体使用此代码: ./bin/run-example streaming.JavaNetworkWordCount localhost 9999 但是,此错误不断出现: 阅读本文后, 无法在hadoop二进制路径中找到winutils二进制文件 我意识到我需要winutils.exe文件,所以我用它下载了一个hadoop二进制2.6.0,定义了一个名为HADOOP_HOME的环境变量: with value C:\Users\GERAL\Desktop\hadoop-2.6.0\bin 并将它放在路径上,如下所示:%HADOOP_HOME% 但是当我尝试代码时仍会出现相同的错误。 有谁知道如何解决这个问题?

如何导入org.apache Java依赖项w /或没有Maven

所以快速的背景是我正在创建一个使用许多不同导入的java程序 import org.apache.hadoop.conf.*; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.*; import org.apache.hadoop.mapreduce.*; import org.apache.hadoop.util.*; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; 我知道Netbeans没有找到这些文件,因为我的计算机上没有这些文件。 但有没有办法让Netbeans自动连接org.apache并检索这些文件? 或者我只需要下载它们。 有人建议使用Maven,但我不确定这是否是正确的解决方案或如何解决这个问题? 谢谢

Hadoop Writable和java.io.serialization之间有什么联系和区别?

要实现Writable接口,可以在Hadoop中序列化对象。 那么Hadoop Writable和java.io.serialization之间的联系和区别是什么?

Hadoop gzip压缩文件

我是hadoop的新手,并试图处理维基百科转储。 它是一个6.7 GB的gzip压缩xml文件。 我读到hadoop支持gzip压缩文件,但只能由mapper在单个作业上处理,因为只有一个映射器可以解压缩它。 这似乎对处理有限制。 还有其他选择吗? 比如将xml文件解压缩并拆分成多个块并用gzip重新压缩它们。 我从http://researchcomputing.blogspot.com/2008/04/hadoop-and-compressed-files.html上读到了关于hadoop gzip的内容。 谢谢你的帮助。

通过Java API从远程主机进行HDFS访问,用户身份validation

我需要通过Java API从远程桌面使用HDFS集群。 一切正常,直到写访问。 如果我正在尝试创建任何文件,我会收到访问权限exception。 路径看起来不错,但exception表示我的远程桌面用户名,这当然不是我需要访问所需的HDFS目录。 问题是: – 有没有办法在Java API中使用“简单”身份validation来表示不同的用户名? – 您能否在Java API示例中指出hadoop / HDFS中的身份validation/授权方案的一些很好的解释? 是的,我已经知道’whoami’在这种情况下可能会使用shell别名重载但我宁愿避免像这样的解决方案。 此处的具体细节是我不喜欢通过SSH和脚本使用管道等一些技巧。 我想使用Java API执行所有操作。 先谢谢你。

job.setOutputKeyClass和job.setOutputReduceClass在哪里引用?

我认为他们指的是减速机,但在我的程序中我有 public static class MyMapper extends Mapper 和 public static class MyReducer extends Reducer 所以,如果我有 job.setOutputKeyClass( NullWritable.class ); job.setOutputValueClass( Text.class ); 我得到以下例外 Type mismatch in key from map: expected org.apache.hadoop.io.NullWritable, recieved org.apache.hadoop.io.Text 但如果我有 job.setOutputKeyClass( Text.class ); 没有问题。 我的代码是否有错误,或者这是因为NullWritable还是其他? 我还必须使用job.setInputFormatClass和job.setOutputFormatClass吗? 因为没有它们我的程序运行正常。