Tag: hadoop

mapreduce组合键样本 – 不显示所需的输出

作为mapreduce和hadoop世界的新手,在尝试了基本的mapreduce程序后,我想尝试使用compositekey示例代码。 输入数据集如下: 国家,州,县,populationinmillions 美国,CA,阿拉米达,100 美国,CA,losangels,200 美国,CA,萨克拉曼多,100 美国,佛罗里达州,xxx,10 美国,佛罗里达州,YYY,12 期望的输出数据应如下所示: 美国,CA,500 美国,佛罗里达州,22 而是Country + State字段形成复合键。 我得到以下输出。 由于某种原因,人口没有增加。 有人能指出我正在做的错误。 另外请看一下实现WriteableComparable接口的Country.java类。 这个实现可能有问题。 美国,CA,100 美国,CA,200 美国,CA,100 美国,佛罗里达州,10 美国,佛罗里达州,12 每个国家+州都没有增加人口。 这是实现WritableComparable接口的Country类。 import java.io.DataInput; import java.io.DataOutput; import java.io.File; import java.io.IOException; import java.util.Iterator; import org.apache.commons.io.FileUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.io.WritableComparable; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import […]

Mapfile作为MapReduce作业的输入

我最近开始使用Hadoop,我在使用Mapfile作为MapReduce作业的输入时遇到了问题。 下面的工作代码在hdfs中编写了一个名为“TestMap”的简单MapFile,其中有三个Text类型的键和三个类型为BytesWritable的值。 这里是TestMap的内容: $ hadoop fs -text /user/hadoop/TestMap/data 11/01/20 11:17:58 INFO util.NativeCodeLoader: Loaded the native-hadoop library 11/01/20 11:17:58 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library 11/01/20 11:17:58 INFO compress.CodecPool: Got brand-new decompressor A 01 B 02 C 03 这是创建TestMap Mapfile的程序: import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.io.MapFile; import org.apache.hadoop.io.Text; import org.apache.hadoop.io.BytesWritable; import org.apache.hadoop.io.SequenceFile; […]

适用于Secure Hbase的Java客户端

嗨,我正在尝试为安全的hbase编写一个java客户端。 我想从代码本身做kinit,因为我使用的是用户组信息类。 任何人都可以指出我在哪里错了吗? 这是我试图连接o hbase的主要方法。 我必须在CONfiguration对象中添加配置而不是使用xml,因为客户端可以位于任何位置。 请参阅以下代码: public static void main(String [] args) { try { System.setProperty(CommonConstants.KRB_REALM, ConfigUtil.getProperty(CommonConstants.HADOOP_CONF, “krb.realm”)); System.setProperty(CommonConstants.KRB_KDC, ConfigUtil.getProperty(CommonConstants.HADOOP_CONF,”krb.kdc”)); System.setProperty(CommonConstants.KRB_DEBUG, “true”); final Configuration config = HBaseConfiguration.create(); config.set(CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHENTICATION, AUTH_KRB); config.set(CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHORIZATION, AUTHORIZATION); config.set(CommonConfigurationKeysPublic.FS_AUTOMATIC_CLOSE_KEY, AUTO_CLOSE); config.set(CommonConfigurationKeysPublic.FS_DEFAULT_NAME_KEY, defaultFS); config.set(“hbase.zookeeper.quorum”, ConfigUtil.getProperty(CommonConstants.HBASE_CONF, “hbase.host”)); config.set(“hbase.zookeeper.property.clientPort”, ConfigUtil.getProperty(CommonConstants.HBASE_CONF, “hbase.port”)); config.set(“hbase.client.retries.number”, Integer.toString(0)); config.set(“zookeeper.session.timeout”, Integer.toString(6000)); config.set(“zookeeper.recovery.retry”, Integer.toString(0)); config.set(“hbase.master”, “gauravt-namenode.pbi.global.pvt:60000”); config.set(“zookeeper.znode.parent”, “/hbase-secure”); config.set(“hbase.rpc.engine”, “org.apache.hadoop.hbase.ipc.SecureRpcEngine”); config.set(“hbase.security.authentication”, […]

如何将Jar文件传递给OOZIE shell节点中的shell脚本

嗨我在脚本中运行java程序时遇到错误,该脚本正在oozie shell action workflow中执行。 Stdoutput 2015-08-25 03:36:02,636 INFO [pool-1-thread-1] (ProcessExecute.java:68) – Exception in thread “main” java.io.IOException: Error opening job jar: /tmp/jars/first.jar Stdoutput 2015-08-25 03:36:02,636 INFO [pool-1-thread-1] (ProcessExecute.java:68) – at org.apache.hadoop.util.RunJar.main(RunJar.java:124) Stdoutput 2015-08-25 03:36:02,636 INFO [pool-1-thread-1] (ProcessExecute.java:68) – Caused by: java.io.FileNotFoundException: /tmp/jars/first.jar (No such file or directory) Stdoutput 2015-08-25 03:36:02,636 INFO [pool-1-thread-1] (ProcessExecute.java:68) – at java.util.zip.ZipFile.open(Native […]

Hadoop Basics的MapReduce程序中的java.lang.NoClassDefFoundError

我正在尝试Hadoop的Basic MapReduce程序,其教程在http://java.dzone.com/articles/hadoop-basics-creating 该类的完整代码是(代码存在于上面的url上) import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.KeyValueTextInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.util.GenericOptionsParser; public class Dictionary { public static class WordMapper extends Mapper { private Text word = new Text(); public void map(Text key, Text value, Context context) throws […]

Java Hadoop:我如何创建捕获器作为输入文件并提供输出,即每个文件中的行数?

我是Hadoop的新手,我已经设法运行wordCount示例: http ://hadoop.apache.org/common/docs/r0.18.2/mapred_tutorial.html 假设我们有一个包含3个文件的文件夹。 我希望每个文件都有一个映射器,这个映射器只计算行数并将其返回到reducer。 然后,reducer将输入每个映射器的行数作为输入,并将所有3个文件中存在的行总数作为输出。 所以,如果我们有以下3个文件 input1.txt input2.txt input3.txt 并且映射器返回: mapper1 -> [input1.txt, 3] mapper2 -> [input2.txt, 4] mapper3 -> [input3.txt, 9] 减速器将输出 3+4+9 = 16 我在一个简单的java应用程序中完成了这个,所以我想在Hadoop中完成它。 我只有一台计算机,并希望尝试在伪分布式环境中运行。 我怎样才能实现这个目标? 我应该采取什么适当的措施? 我的代码应该在apache的示例中看起来像那样吗? 我将有两个静态类,一个用于mapper,一个用于reducer? 或者我应该有3个类,每个映射器一个? 如果你能指导我完成这个,我不知道如何做到这一点,我相信如果我设法编写一些代码来做这些东西,那么我将来能够编写更复杂的应用程序。 谢谢!

Datanode守护程序未在Hadoop 2.5.0上运行

我在一台机器上设置Hadoop 2.5.0,我遇到的问题是没有运行的datanode,如jps命令的输出所示: $ jps 3404 Jps 2661 NodeManager 2606 ResourceManager 2484 NameNode 当我尝试手动运行它时我得到了这个: $HADOOP_HOME/sbin/hadoop-daemon.sh start datanode starting datanode, logging to /home/arbi/Programs/hadoop-2.5.0/logs/hadoop-arbi-datanode-ElOued.out 然后仍然没有,这里是hadoop-arbi-datanode-ElOued.out : ulimit -a for user arbi core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 15862 max locked […]

使用Java连接到远程HBase服务

我有一个小示例代码,我尝试建立与远程HBase实体的连接。 代码在没有安装HBase的Windows机器上运行,我尝试连接到安装并运行它的远程Ubuntu服务器。 以下代码段中的IP当然只是一个占位符。 代码如下: public static void main(String[] args) { Configuration conf = HBaseConfiguration.create(); HBaseAdmin admin = null; String ip = “10.10.10.10”; String port = “2181”; conf.set(“hbase.zookeeper.quorum”, ip); conf.set(“hbase.zookeeper.property.clientPort”, port); try { admin = new HBaseAdmin(conf); boolean bool = admin.tableExists(“sensor_data”); System.out.println(“Table exists? ” + bool); } catch (IOException e) { e.printStackTrace(); } } 但由于某种原因,我收到此错误: org.apache.hadoop.hbase.DoNotRetryIOException: […]

我该如何调试Hadoop map reduce

我试图建立一个地图减少工作。 它运行完成但最后会出现奇怪的数据。 当我尝试使用system.out.println(“调试数据”)进行调试时,它不会显示在屏幕上。 使用java API生成外部日志文件,尝试使用log.severe(“日志数据”)或使用log4j logger方法log.info(日志数据)打印到屏幕上无法正常工作/ 在地图缩减作业中出现exception时,我看到调试消息的唯一时间是无效的。 如何修复,以便我可以在文件或屏幕上看到我的调试消息?

不推荐使用$ HADOOP_HOME,Hadoop

我试图在单节点集群上安装Hadoop(我自己的labtop-ubuntu 12.04)。 我按照本教程并逐行检查了两次。 http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/ 一切似乎都正确。 我设置了所有core-site.xml,mapred-site.xml,hdfs-site.xml。 当我在hduser su中运行以下命令时: hduser@maziyar-Lenovo-IdeaPad-U300s:~$ /usr/local/hadoop/usr/sbin/start-all.sh 我收到以下错误: Warning: $HADOOP_HOME is deprecated. starting namenode, logging to /usr/local/hadoop/usr/libexec/../logs/hadoop-hduser-namenode-maziyar-Lenovo-IdeaPad-U300s.out cat: /usr/local/hadoop/usr/libexec/../etc/hadoop/slaves: No such file or directory cat: /usr/local/hadoop/usr/libexec/../etc/hadoop/masters: No such file or directory starting jobtracker, logging to /usr/local/hadoop/usr/libexec/../logs/hadoop-hduser-jobtracker-maziyar-Lenovo-IdeaPad-U300s.out cat: /usr/local/hadoop/usr/libexec/../etc/hadoop/slaves: No such file or directory 我将导出HADOOP_HOME_WARN_SUPPRESS =“TRUE”添加到hadoop-env.sh并仍然出现相同的错误。 在文件/home/hduser/.bashrc中,我猜我的错误来自于: # Set Hadoop-related environment variables export […]