1. Hadoop中遇到的问题

曾经所遇到的问题因为没有记录,所以忘了

(1)NameNode没有启动成功, 是因为你对HDFS多次格式化,导致datanode中与namenode中的VERSION文件里的namespaceID不一致(对于NameNode节点,该文件位于hdfs-site配置文件里dfs.name.dir參数所指定的路径下的current目录中, 对于DataNode节点, 该文件位于hdfs-site配置文件里dfs.data.dir參数所指定的路径下的current目录中.

解决方法: 第一种是把namespaceID的值改成一致,然后重新启动Hadoop;另外一种删除dfs.name.dir与dfs.data.dir參数指定的文件夹,然后使用bin/hadoop namenode -formate 又一次格式化,这样的方法有风险, 由于会删除全部原来在HDFS上的文件.

(2)Eclipse的Run On Hadoop就是一个坑, 其根本就没执行在集群上, (能够通过job.setNumReduceTasks设置ReducerTask个数,不管你设置多少个,都仅仅有一个,由于执行在本地,仅仅是文件数据在集群上, 也就是说Mapper与Reducer任务都执行在本地; 还能够通过控制台信息查看到: 假设是集群上则会有这种信息Running job: job_201405090934_0024, 假设是本地任务,则会显示Running job: job_local426339719_0001,看到没有,
中间有个local; 还能够通过web node1:50030查看任务执行情况,假设是本地任务,则不会在上面显示).

解决方法: 假设须要执行在集群上,要做三件事,例如以下:

//特别注意: 一定要设置,不然会报cannot read partitioner file错误
conf.set("fs.default.name","node1:49000");
//特别注意: 一定要设置,不然不会执行在集群上
conf.set("mapred.job.tracker","node1:49001");
//特别注意: 对相关类以及依赖的jar文件进行打包,这是执行在集群上必需要做的一步,不然集群找不到相关的Mapper等类文件
File jarpath;
try {
jarpath = JarTools.makeJar("bin");
conf.set("mapred.jar", jarpath.toString());
} catch (Exception e) {
logger.error("进行jar打包出错!");
e.printStackTrace();
return;
}

(3) Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

在执行时,Run Configurations 在Arguments中的 VM arguments 加入-Djava.library.path=/home/hadoop/hadoop-1.2.1/lib/native/Linux-i386-32

该路径根据你的实际路径为准

2.HBase问题

(1) Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (无法定位登录配置)

22:32:56,821 WARN                    ClientCnxn:1089 - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect

java.net.ConnectException: Connection refused

    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567)

    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)

    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)

22:32:56,951 WARN          RecoverableZooKeeper:253 - Possibly transient ZooKeeper, quorum=localhost:2181, exception=org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid

22:32:56,952 INFO                  RetryCounter:155 - Sleeping 1000ms before retry #0...

这是由于在代码中没有设置Zookeeper集群

//设置zookeeper集群
HBASE_CONFIG.set("hbase.zookeeper.quorum", "node2,node3,node4,node5,node6,node7,node8");

最好还设置HMaster

//设置HMatser
HBASE_CONFIG.set("hbase.zookeeper.master","node1:60000");

(2)

JobClient:1422 - Task Id : attempt_201405081252_0008_m_000000_0, Status : FAILED

java.lang.IllegalArgumentException: Can't read partitions file

    at org.apache.hadoop.mapreduce.lib.partition.TotalOrderPartitioner.setConf(TotalOrderPartitioner.java:116)

    at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)

    at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)

    at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:676)

    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:756)

    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:364)

    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:1190)

    at org.apache.hadoop.mapred.Child.main(Child.java:249)

Caused by: java.io.FileNotFoundException: File /tmp/partitions_de363500-5535-466b-91bb-36472457386d does not exist.

    at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:402)

    at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:255)

    at org.apache.hadoop.fs.FileSystem.getLength(FileSystem.java:816)

    at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1479)

    at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1474)

    at org.apache.hadoop.mapreduce.lib.partition.TotalOrderPartitioner.readPartitions(TotalOrderPartitioner.java:301)

    at org.apache.hadoop.mapreduce.lib.partition.TotalOrderPartitioner.setConf(TotalOrderPartitioner.java:88)

    ... 10 more



由于在生成HFile时使用了HFileOutputFormat与TotalOrderPartitioner(HFile对RowKey须要进行全局排序),所以须要分区文件, 可是TaskTracker找不到分区文件,要想TaskTracker读取分区文件,该文本必须存在与HDFS上, 所以须要设置一个參数:

Configuration conf = HbaseOperation.HBASE_CONFIG;
conf.set("fs.default.name","node1:49000");

对于详细解释,还需进一步研究.

(3)Wrong number of partitions in keyset

说明你的分区文件里的分区个数不等于reducer的个数减一,即Regions的个数不等于reducer的个数减一,事实上是由于你的任务执行在本地(这样仅仅有一个Reducer),而Regions有多个,有兴趣能够查看TotalOrderPartitioner的源码, 中间有一段代码为:

 for (int i = 0; i < splitPoints.length - 1; ++i) {
if (comparator.compare(splitPoints[i], splitPoints[i+1]) >= 0) {
throw new IOException("Split points are out of order");
}
}

HFileOutputFormat.configureIncrementalLoad(job, table);自己主动对job进行配置。TotalOrderPartitioner是须要先对key进行总体排序,然后划分到每个reduce中,保证每个reducer中的的key最小最大值区间范围,是不会有交集的。由于入库到HBase的时候,作为一个总体的Region,key是绝对有序的。

临时写到这里, 有些问题不记得了,以后遇到问题会继续更新,....

Hadoop与HBase中遇到的问题的更多相关文章

  1. 什么是Zookeeper,Zookeeper的作用是什么,在Hadoop及hbase中具体作用是什么

    什么是Zookeeper,Zookeeper的作用是什么,它与NameNode及HMaster如何协作?在没有接触Zookeeper的同学,或许会有这些疑问.这里给大家总结一下. 一.什么是Zooke ...

  2. Zookeeper的作用,在Hadoop及hbase中具体作用

    什么是Zookeeper,Zookeeper的作用是什么,在Hadoop及hbase中具体作用是什么 一.什么是Zookeeper ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hado ...

  3. 大数据之 ZooKeeper原理及其在Hadoop和HBase中的应用

    ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是Google Chubby的开源实现.分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知. ...

  4. Hadoop与HBase中遇到的问题(续)java.io.IOException: Non-increasing Bloom keys异常

    在使用Bulkload向HBase导入数据中, 自己编写Map与使用KeyValueSortReducer生成HFile时, 出现了以下的异常: java.io.IOException: Non-in ...

  5. Hadoop和HBase中出现 ssh登录 The authenticity of host 192.168.0.xxx can't be established.

    用ssh登录一个机器(换过ip地址),提示输入yes后,屏幕不断出现y,只有按ctrl + c结束 错误是:The authenticity of host 192.168.0.xxx can't b ...

  6. Hadoop集群中Hbase的介绍、安装、使用

    导读 HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群. 一.Hbase ...

  7. HBase中此类异常解决记录org.apache.hadoop.ipc.RemoteException(java.io.IOException):

    ERROR: Can't get master address from ZooKeeper; znode data == null   一定注意这只是问题的第一层表象,真的问题是: File /hb ...

  8. 使用bulkload向hbase中批量写入数据

    1.数据样式 写入之前,需要整理以下数据的格式,之后将数据保存到hdfs中,本例使用的样式如下(用tab分开): row1 N row2 M row3 B row4 V row5 N row6 M r ...

  9. 使用ganglia监控hadoop及hbase集群

    一.Ganglia简介 Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点.每台计算机都运行一个收集和发送度量数据(如处理器速度.内存使用量等)的名为 gm ...

随机推荐

  1. WampServer修改端口及菜单Localhost

    一.修改Apache端口 1.在界面中选Apache,弹出隐藏菜单选项,打开配置文件httpd.conf: 2.找到 Listen 80: 3.将 80 改成 8080(当然自己也可以设定别的不使用的 ...

  2. OpenCV中Mat的详解

    每次碰到Mat都得反复查具体的用法,网上的基础讲解不多,难得看到一篇,赶快转来收藏~ 原文地址:http://www.opencvchina.com/thread-1039-1-1.html 目标 我 ...

  3. CPU风扇故障导致自动关机

    今天在使用电脑时,突然自动关机,重启后过一段时间又自动关机,于是打开机箱后盖,插上电源观察各个部位运行情况,发现CPU风扇不转,判断问题就是由于CPU温度太高了.于是换个风扇,再开机情况就正常了.

  4. 移动端版本兼容js

    移动端版本兼容js <!--移动端版本兼容 --> <script type="text/javascript"> var phoneWidth = par ...

  5. php基础知识【函数】(3)字符串string

    一.大小写转换 1.strtolower()--转换为小写. echo strtolower("Hello WORLD!"); //hello world! 2.strtouppe ...

  6. phpcms 标签解析

    phpcms 每个pc标签对应modules控制器下一个 tag.class类 比如 {pc:content action="position" posid="2&quo ...

  7. 让LINQ中的查询语法使用自定义的查询方法

    使用LINQ时有两种查询语法:查询语法和方法语法 查询语法:一种类似 SQL 语法的查询方式 方法语法:通过扩展方法和Lambda表达式来创建查询 例如: List<, , , }; //查询语 ...

  8. 独家分享——大牛教你如何学习Web前端开发

    2014-12-18 14:35:42     引语 自从2008年接触网站开发以来到现在已经有六个年头了,今天偶然整理电脑资料看到当时为参加系里面一个比赛而做的第一个网站时,勾起了在这网站开发道路上 ...

  9. 批处理文件的@echo off是什么意思?

    @echo off 关闭回显 @echo on 打开回显 @echo off并不是DOS程序中的, 而是DOS批处理中的. 当年的DOS,所有操作都用键盘命令来完成, 当你每次都要输入相同的命令时, ...

  10. 字符串处理---统计每一行字符串当中的字符“u”个数

    package com.guoxiaoming.string; import java.io.BufferedReader; import java.io.FileInputStream; impor ...