1.启动hadoop集群时namenode可以启动,并且namenode所在的机器的datanode能够启动。但是集群中其他机器的datanode无法启动,日志中报错(datanode unsigned)

原因分析:

由于namenode进行过格式化,或者新加入的datanode之前在其他集群,导致hadoop集群启动时识别出此datanode不属于此集群,为了保护数据集群便不操作此节点。

  解决方案:

将新加入的节点的datanode存放数据的目录删除。重新启动,便可加入集群(PS:datanode的core-site.xml文件中的集群的namenode要配置为集群的namnode的地址)

2.Hive建表报key字段过长

FAILED: Error in metadata:javax.jdo.JDODataStoreException: An exception was thrown whileadding/validating class(es) : Specified key was too long; max key length is 767bytes

原因分析:

这个问题是因为hive对mysql的UTF-8编码方式有限制,修改一下mysql的编码方式即可

解决方案:

在mysql中执行

alter database hive_db character set latin1;   hive_db 用自己的database name替换即可。

3.Sqoop实现HDFS导入mysql时出错

在执行sqoop export --connect jdbc:mysql://mini1:3306/urlcontentanalyse --username root --password 123456 \
--table urlrule \
--export-dir /wc/output4/ \
--columns url \
--input-fields-terminated-by '\t'

的时候出现错误提示

Exception in thread "main" Java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected

在java中调用sqoop接口进行mysql和hdfs直接数据传输时,遇到以下错误:

Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected

这里需要注意,sqoop有两个版本:

sqoop-1.4.4.bin__hadoop-1.0.0.tar.gz(对应hadoop1版本)

sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz(对应hadoop2版本)

http://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.6/

出现上面的错误就是hadoop和对应的sqoop版本不一致,二者保持一致即可解决问题。

 4.Hive


Hive是使用java api创建自定义函数的时候出现如下报错信息:

java.lang.UnsupportedClassVersionError: cn/itcast/hive/UDF/UDFtoLower : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        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:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:270)
        at org.apache.hadoop.hive.ql.exec.FunctionTask.getUdfClass(FunctionTask.java:307)
        at org.apache.hadoop.hive.ql.exec.FunctionTask.createTemporaryFunction(FunctionTask.java:174)
        at org.apache.hadoop.hive.ql.exec.FunctionTask.execute(FunctionTask.java:74)
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:160)
        at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:85)
        at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1604)
        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1364)
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1177)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1004)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:994)
        at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:247)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:199)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:410)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:783)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:677)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616)
        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.run(RunJar.java:221)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
FAILED: Execution Error, return code -101 from org.apache.hadoop.hive.ql.exec.FunctionTask. cn/itcast/hive/UDF/UDFtoLower : Unsupported major.minor version 52.0

 原因分析:

由于hive版本和编写hive自定义的函数的javaAPI之间的兼容性问题导致。

解决方案:

在eclipse中:右击项目-->属性

之后选择edit编辑当前的JRE版本,设置为当前版本的上一个或者两个版本,基本就可以解决了。

5 hbase启动时提示如下错误:

2016-12-28 19:00:26,462 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2016-12-28 19:00:26,875ERROR [main] master.HMasterCommandLine: Master exiting
java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster

原因分析:

从网上查到原因是:Hbase中

缺少aws-Java-sdk-1.7.4.jar包。

解决方法:

去Hadoop\share\hadoop\tools\lib下找到该包,并存放到Hbase\lib下

6.Hbase启动时提示java_home查找不到

hduser@CSLAP106:~$ /usr/local/hbase/hbase-0.94.6.1/bin/start-hbase.sh
+======================================================================+
|      Error: JAVA_HOME is not set and Java could not be found         |
+----------------------------------------------------------------------+
| Please download the latest Sun JDK from the Sun Java web site        |
|       > http://java.sun.com/javase/downloads/ <                      |
|                                                                      |
| HBase requires Java 1.6 or later.                                    |
| NOTE: This script will find Sun Java whether you install using the   |
|       binary or the RPM based installer.                             |
+======================================================================+

在已经配置了java环境变量的情况下:

可能是在hbase_env.sh中配置java_home的那行备注了:

#export JAVA_HOME=/usr/jdk/

删除注释应该就可以了

7.Hive启动时报错:

"main" java.lang.IncompatibleClassChangeError: Found interface jline.Terminal, but class was expected

Logging initialized using configuration in jar:file:/home/hadoop/apps/hive/lib/hive-common-0.14.0.jar!/hive-log4j.properties
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/apps/hadoop-2.6.4/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/apps/hive/lib/hive-jdbc-0.14.0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Exception in thread "main" java.lang.IncompatibleClassChangeError: Found interface jline.Terminal, but class was expected
        at jline.ConsoleReader.<init>(ConsoleReader.java:191)
        at jline.ConsoleReader.<init>(ConsoleReader.java:186)
        at jline.ConsoleReader.<init>(ConsoleReader.java:174)
        at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:798)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:746)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:677)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616)
        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.run(RunJar.java:221)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

原因分析:

     ./hadoop-2.6.0/share/hadoop/yarn/lib/jline-0.9.94.jar
    ./apache-hive-1.2.0-bin/lib/jline-2.12.jar

hadoop中的jline-2.12.jar和hive中的版本不一致

解决方法:

将hive中的jline-2.12.jar拷贝到hadoop中

8.HIve启动出错:


java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient



SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/apps/hadoop-2.6.4/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/apps/hive/lib/hive-jdbc-0.14.0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
        at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:444)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:672)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616)
        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.run(RunJar.java:221)

原因分析:

经排查可能是hive的版本过高,

解决方案:

修改为低版本的hive

解决。

9.hive中注释显示中文字符乱码的解决方法:

hive元数据中utf8的修改

表或者字段有中文的时候需要修改hive的元数据库的设置。

以mysql为例子,当mysql的字符集设置成utf8的时候使用hive会有问题,详细见hive的wiki。

所以当hive使用mysql作为元数据库的时候mysql的字符集要设置成latin1。

为了保存那些utf8的中文,要将mysql中存储注释的那几个字段的字符集单独修改为utf8。

修改字段注释字符集

Sql代码

alter table COLUMNS modify column COMMENT varchar(256) character set utf8;

修改表注释字符集

Sql代码

alter table TABL_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

最后别忘记修改hive的jdbc连接,将字符集修改为utf8,如

Sql代码

1.javax.jdo.option.ConnectionURL

jdbc:mysql://192.168.0.128:3306/hive?characterEncoding=UTF-8
或者在hive-site.xml中的配置:
jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8

10 hadoop在格式化集群的时候 :hdfs namenode -format 时:报

SHUTDOWN_MSG: Shutting down NameNode at java.net.UnknownHostException: sparkproject1: sparkproject1

原因分析:找不到对应的sparkproject1

错误处理:运行hostname  查看自己的本机名

也就是说,Hadoop在格式化HDFS的时候,通过hostname命令获取到的主机名是localhost.localdomain,然后在/etc/hosts文件中进行映射的时候,没有找到

此时查看/etc/sysconfig/network文件中对应的hostname是不是和/etc/hosts文件中的名称一致。

解决办法:修改两个文件中的名称一致,并重启网络,service network restart

如果重启网络没有效果,重启机器可以解决

hadoop 错误锦集相关推荐

  1. Tomcat 错误锦集

    Tomcat 错误锦集 第一种错误 未完待续 第一种错误 org.apache.cxf.transport.servlet.ServletController invoke 警告: Can't fin ...

  2. PHP开发错误锦集(持续更新)

    1.trait 命名问题. 问题:trait 里定义的方法找不到 <?phpnamespace app\controllers;trait Example {public function ex ...

  3. Fabric-samples开发模式下chaincode操作流程及错误锦集

    首先简单介绍一下此次流程步骤,在go build阶段出现问题,然后说明一下如何解决的问题. 出现的问题的提示代码为: 问题1.go: github.com/hyperledger/fabric-cha ...

  4. 给linux系统增加一个系统调用并测试,超详细含错误锦集

    操作系统:给linux系统内核增加系统调用并测试 实验内容 实验环境 实验过程 1.安装环境 2.给内核增加系统调用 3.编译内核 4.安装内核 5.编辑测试文件 实验内容 1.给linux系统内核增 ...

  5. Android 线程错误锦集

    概述 学Android有一段时间了,一直觉得线程很难,原因大概是不常用吧! 正所谓陌生生难,就像刚刚接触编程都觉得编程不简单一样,多用用就熟悉了. 而线程正是Android初级者进阶的一个标志,必须要 ...

  6. iOS 错误锦集

    从今天开始,我打算把自己所有遇到的错误,无论大大小小,都保存下来,以供自己反思,少点粗心才能提高效率 1.This application is modifying the autolayout en ...

  7. 【Kotiln】 错误锦集- Caused by: kotlin.NotImplementedError: An operation is not implemented: not implemen

    正如标题所言, 我们在当继承一个抽象类or接口时,需要去实现它的一些方法, 正如以下所示 override fun hideLoading() {TODO("not implemented& ...

  8. Breeze安装常见错误锦集

    前端Web UI的日志如果还不能判断出具体问题所在,可以在部署机上输入命令 docker logs -f deploy-main 来获取更详细的日志 docker.registry.etcd.k8s这 ...

  9. Hadoop集群搭建之问题锦集

    **Hadoop集群搭建之问题锦集** 1.Centos7 ifconfig这个命令没找到的解决方法 yum -y install net-tools 2.修改文件的读写权限 chmod 777 /e ...

最新文章

  1. Vcastr 2.2 flv 网络播放器 参数设置
  2. java 桥接模式_JAVA设计模式之【桥接模式】
  3. 使用设备mac好还是随机mac好_省4000我给MBP16搭配了一块2T SSD:希捷 酷鱼飞翼 Fast SSD使用测评...
  4. start running 开始跑步减肥
  5. angular.element 动态添加和删除元素
  6. 关于Spring中的context:annotation-config/配置
  7. allwinner h3 通用DMA 驱动(SylixOS 操作系统)
  8. linux 内核 addr2line,内核调试 arm-none-linux-gnueabi-addr2line 工具使用
  9. 人工智能之模式识别(一)
  10. 大数据文字游戏_移动的大数据指南:千字以内的文章传播率最高
  11. 怎样选择ADC芯片?
  12. android 接口sign,[原创]小米APP登录接口env、envkey、sign、hash算法
  13. 交比不变性 matlab,交比 | 迪沙格定理
  14. Solidity ——push mapping 探赜索隐
  15. 视觉显著性python_OpenCV中的显著性检测(Saliency Detection)
  16. el-table表单增加show-summary表尾合计,表格错位和高度计算错误
  17. android 模拟器监听短信,android模拟器用命令和DDMS模拟来电和短信(示例代码)
  18. qmmp安装包linux版,Qmmp音频播放器1.2.1发布下载(附Ubuntu 18.04下安装方法)
  19. 上海亚商投顾:A股三大指数涨跌不一 ChatGPT、机器人概念齐掀涨停潮
  20. 大学教务人员管理系统(C++实现)

热门文章

  1. 论文笔记:Planning and Decision-Making for Autonomous Vehicles
  2. ZZULIOJ 2131 Can Win【思维建图+最大流】
  3. C++核心准则​T.123:使用常量表达式函数在编译时求值
  4. 一种基于人脸追踪和特征分析的疲劳驾驶预警平台
  5. 和ts一般怎么玩_TS夺冠后马上卖席位?微博电竞和其互关,以后热搜不愁了
  6. 你记得也好,最好你忘掉
  7. 1075 PAT Judge 测试点四
  8. Lightly 支持 Markdown 文件在线编写(文中提供详细 Markdown 语法)
  9. csharp高级练习题:ASCII85编解码【难度:3级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练
  10. 64位WIN7下虚拟机安装winxp