Tag: hadoop

DataNode无法在Hadoop中启动

我尝试在Ubuntu 11.04和Java 6 sun上安装Hadoop。 我正在使用hadoop 0.20.203 rc1 build。 我一直在使用java-6-sun在Ubuntu 11.04上遇到问题。 当我尝试启动hadoop时,由于“无法访问存储”,datanode无法启动。 2011-12-22 22:09:20,874 INFO org.apache.hadoop.hdfs.server.common.Storage: Cannot lock storage /home/hadoop/work/dfs_blk/hadoop. The directory is already locked. 2011-12-22 22:09:20,896 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Cannot lock storage /home/hadoop/work/dfs_blk/hadoop. The directory is already locked. at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.lock(Storage.java:602) at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:455) at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:111) at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:354) at org.apache.hadoop.hdfs.server.datanode.DataNode.(DataNode.java:268) at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1480) at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1419) at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1437) at […]

JSch:存储在hdfs上的私钥的addIdentity

我需要从hadoop集群连接到sftp服务器。 我想知道是否有办法从存储在hdfs中的私钥加载身份。 实际上似乎JSch对象只接受本地路径: try { String privateKeyPath = “hdfs://namenode:8020/path/to/privatekey”; // need this one to be an hdfs path JSch jsch = new JSch(); jsch.addIdentity(privateKeyPath); // [..] } catch (Exception ex) { // [..] } 任何想法?

如何在HBase上使用带有SingleColumnValueFilter的自定义比较器?

我试图使用两个SingleColumnValueFilter对象来过滤HBase表中的行,以返回属于该列的长值范围内的所有记录。 根据SingleColumnValueFilter的文档,它会对列值进行字典比较,除非您将其传递给自己的比较器。 api显示SingleColumnValueFilter将WritableByteArrayComparable作为实现此目的的方法。 我写了一个扩展WritableByteArrayComparable并覆盖compare方法的类。 public class LongWritableComparable extends WritableByteArrayComparable { public LongWritableComparable() { super(); } public LongWritableComparable(byte[] value) { super(value); } public LongWritableComparable(Long value) { super(Bytes.toBytes(value)); } @Override public int compareTo(byte[] otherValue) { byte[] thisValue = this.getValue(); long thisLong = Bytes.toLong(thisValue); long otherLong = Bytes.toLong(otherValue); if (thisLong == otherLong) { return 0; } if (thisLong […]

在本地/远程集群上运行java hadoop作业

我正在尝试在本地/远程集群上运行hadoop作业。 将来这项工作将从Web应用程序执行。 我正试图从eclipse执行这段代码: public class TestHadoop { private final static String host = “localhost”; public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException { run(); } static void run() throws IOException, InterruptedException, ClassNotFoundException { Configuration conf = new Configuration(); // run on other machine/cluster conf.set(“fs.default.name”, “hdfs://” + host + “:8020”); conf.set(“mapred.job.tracker”, “hdfs://” + host + […]

Hadoop选项没有任何效果(mapreduce.input.lineinputformat.linespermap,mapred.max.map.failures.percent)

我正在尝试实现一个MapReduce作业,其中每个映射器将占用150行文本文件,并且所有映射器将同步运行; 此外,无论有多少地图任务失败,它都不会失败。 这是配置部分: JobConf conf = new JobConf(Main.class); conf.setJobName(“My mapreduce”); conf.set(“mapreduce.input.lineinputformat.linespermap”, “150”); conf.set(“mapred.max.map.failures.percent”,”100″); conf.setInputFormat(NLineInputFormat.class); FileInputFormat.addInputPath(conf, new Path(args[0])); FileOutputFormat.setOutputPath(conf, new Path(args[1])); 问题是hadoop为每一行文本创建了一个映射器,它们似乎按顺序运行,如果单个文件失败,则作业失败。 据我推断,我所应用的设置没有任何效果。 我做错了什么?

Hadoop:LongWritable无法强制转换为org.apache.hadoop.io.IntWritable

我想取一个输入文件中给出的温度的平均值,我的Mapper和Reducer synatax似乎对我好,但我仍然收到以下错误: Unable to load realm info from SCDynamicStore 13/02/17 08:03:28 INFO mapred.JobClient: Task Id : attempt_201302170552_0009_m_000000_1, Status : FAILED java.lang.ClassCastException: org.apache.hadoop.io.LongWritable cannot be cast to org.apache.hadoop.io.IntWritable at org.apache.hadoop.examples.TempMeasurement$TempMapper.map(TempMeasurement.java:26) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370) at org.apache.hadoop.mapred.Child$4.run(Child.java:255) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121) at org.apache.hadoop.mapred.Child.main(Child.java:249) 我的Mapperfunction是这样的: public static class TempMapper extends Mapper{ @Override protected […]

引起:java.lang.ClassNotFoundException:org.apache.zookeeper.KeeperException

当我在Eclipse IDE下运行JAVA程序(不能使用新的HTable)时,我遇到以下错误: Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/zookeeperKeeperException at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:185) at org.apache.hadoop.hbase.client.HTable.(HTable.java:154) at org.apache.hadoop.hbase.client.HTable.(HTable.java:132) at HBaseConnector.main(HBaseConnector.java:27) Caused by: java.lang.ClassNotFoundException: org.apache.zookeeper.KeeperException at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) … 4 more import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import […]

Spring + Maven + Hadoop

我在Spring + Maven + Hadoop环境中遇到了问题。 我正在使用Apache Hadoop,但不要使用SpringSource提供的spring-hadoop。 我在maven中添加了以下依赖关系,以便在java中使用hadoop。 org.apache.hadoop hadoop-core 0.20.2 org.mortbay.jetty jetty org.mortbay.jetty jetty-util org.mortbay.jetty jsp-2.1 org.mortbay.jetty jsp-api-2.1 org.mortbay.jetty servlet-api-2.1 javax.servlet servlet-api javax.servlet.jsp jsp-api tomcat jasper-compiler tomcat jasper-runtime 我执行了hadoop mapreduce工作。 Mapreduce工作运作良好。 但我无法在Hadoop Web UI中看到“正在运行的作业”列表中执行的作业( http://xxx.xxx.xxx.xxx:50030/jobtracker.jsp ) 我开始没有hadoop命令(ex-bin / hadoop -jar …. jar),但只是java应用程序。 这可能是原因吗?

Spark on yarn jar上传问题

我正在尝试使用spark over yarn运行一个简单的Map / Reduce java程序(CentOS上的Cloudera Hadoop 5.2)。 我试过这2种不同的方式。 第一种方式如下: YARN_CONF_DIR=/usr/lib/hadoop-yarn/etc/hadoop/; /var/tmp/spark/spark-1.4.0-bin-hadoop2.4/bin/spark-submit –class MRContainer –master yarn-cluster –jars /var/tmp/spark/spark-1.4.0-bin-hadoop2.4/lib/spark-assembly-1.4.0-hadoop2.4.0.jar simplemr.jar 此方法给出以下错误: 诊断:应用程序application_1434177111261_0007失败2次,因为AM容器的appattempt_1434177111261_0007_000002退出,退出时使用exitCode:-1000,原因是:资源hdfs:// kc1ltcld29:9000 / user / myuser / .sparkStaging / application_1434177111261_0007 / spark-assembly-1.4.0-hadoop2。在src文件系统上更改了4.0.jar(预计1434549639128,是1434549642191 然后我试着没有–jars: YARN_CONF_DIR=/usr/lib/hadoop-yarn/etc/hadoop/; /var/tmp/spark/spark-1.4.0-bin-hadoop2.4/bin/spark-submit –class MRContainer –master yarn-cluster simplemr.jar 诊断:应用程序application_1434177111261_0008由于AM容器导致appattempt_1434177111261_0008_000002退出,失败了2次,因为:文件不存在:hdfs:// kc1ltcld29:9000 / user / myuser / .sparkStaging / application_1434177111261_0008 / spark-assembly-1.4。 0-hadoop2.4.0.jar。试图这个尝试..申请失败。 ApplicationMaster主机:N / […]

如何在HBase中实现分页?

我是Hbase的新手,我需要使用Java和Jersey以及Hbase作为我的数据库来实现分页。 我需要一些帮助,我怎样才能实现与Hbase的分页,因为数据将在不同地区之间分配。 我想每页显示1000条记录。 请告诉我如何在不使用任何filter的情况下实现此目的。 真的很感激。