Hive0.12+ 在Hadoop cdh3(1.0)中使用,会有如下错误:
log4j:ERROR Could not instantiate class [org.apache.hadoop.hive.shims.HiveEventCounter]. java.lang.RuntimeException: Could not load shims in class org.apache.hadoop.log.metrics.EventCounter at org.apache.hadoop.hive.shims.ShimLoader.createShim(ShimLoader.java:123) at org.apache.hadoop.hive.shims.ShimLoader.loadShims(ShimLoader.java:115) at org.apache.hadoop.hive.shims.ShimLoader.getEventCounter(ShimLoader.java:98) at org.apache.hadoop.hive.shims.HiveEventCounter.<init>(HiveEventCounter.java:34) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:330) at org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:121) at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:664) at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:647) at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:544) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:440) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:476) at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:354) at org.apache.hadoop.hive.common.LogUtils.initHiveLog4jDefault(LogUtils.java:127) at org.apache.hadoop.hive.common.LogUtils.initHiveLog4jCommon(LogUtils.java:77) at org.apache.hadoop.hive.common.LogUtils.initHiveExecLog4j(LogUtils.java:69) at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.setupChildLog4j(ExecDriver.java:611) at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.main(ExecDriver.java:681) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.hadoop.util.RunJar.main(RunJar.java:186) Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.log.metrics.EventCounter at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at org.apache.hadoop.hive.shims.ShimLoader.createShim(ShimLoader.java:120) ... 27 more log4j:ERROR Could not instantiate appender named "EventCounter".
原因是hive-log4j.properties中log4j.appender.EventCounter=org.apache.hadoop.hive.shims.HiveEventCounter
的配置,因为Hadoop的classpath中并没有这个类,因此报错。
解决办法:
1.将hive-exec-0.13.1.jar拷贝到各个Hadoop节点$HADOOP_HOME/lib/目录下,重启集群;
这个方法显然不大合适;
2.将hive-log4j.properties中的log4j.appender.EventCounter值改为org.apache.hadoop.metrics.jvm.EventCounter,因为$HADOOP_HOME/conf/log4j.properties中也是这样配置的。
另外,按照方法2修改之后,使用hive普通查询没问题,在MapJoin的时候,又报出这个错。
原因是MapJoin会启动一个Hadoop LocalTask,使用命令:
$HADOOP_HOME/bin/hadoop jar $HIVE_HOME/lib/hive-exec-0.13.1.jar org.apache.hadoop.hive.ql.exec.mr.ExecDriver -localtask -plan file:/tmp/plan.xml -jobconffile file:/tmp/jobconf.xml
该local task中使用了hive-exec-0.13.1.jar里面自带的hive-log4j.properties,其中的log4j.appender.EventCounter仍然是org.apache.hadoop.hive.shims.HiveEventCounter,因此又报错。
解决办法: 修改hive-exec-0.13.1.jar中的hive-log4j.properties,将log4j.appender.EventCounter值改为org.apache.hadoop.metrics.jvm.EventCounter
之后,使用MapJoin也没问题。
相关推荐
hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+...
6. **log4j-1.2.17.jar**:日志记录库,用于记录Hive和Hadoop运行时的日志信息。 7. **hive-common-2.1.1.jar**:Hive的通用库,包含了各种公用工具和类。 8. **httpcore-4.4.jar**:Apache HttpCore库,是...
总结起来,Hive 2.1.1与Hadoop 2.7.3的结合,为大数据处理提供了强大而灵活的平台,而HiveDrive的引入则进一步强化了Hive在ETL工作流中的角色。理解并掌握这些技术,对于大数据开发人员来说至关重要,可以有效提升...
3.集群能正常运行的条件是集群可节点宕机数应保证有超过集群机器总数一半的机器在运行,因此从经济和实用性来说,集群的节点一般是奇数个,本文部署4台机器,其容灾能力与部署3台机器一致,即只能宕机1台
综上所述,通过结合使用 Scribe、Hadoop、Log4j、Hive 和 MySQL 这些工具和技术,可以构建一套完整的日志数据采集、存储、处理和分析的解决方案。这对于深入理解用户行为、提升系统性能等方面都具有重要意义。
在Windows 10环境下搭建Hadoop生态系统,包括JDK、MySQL、Hadoop、Scala、Hive和Spark等组件,是一项繁琐但重要的任务,这将为你提供一个基础的大数据处理平台。下面将详细介绍每个组件的安装与配置过程。 **1. JDK...
在大数据领域,构建一个完整的生态系统是至关重要的,其中包括多个组件,如Hadoop、Spark、Hive、HBase、Oozie、Kafka、Flume、Flink、Elasticsearch和Redash。这些组件协同工作,提供了数据存储、处理、调度、流...
可用于数据库客户端连接、FineReport 等报表工具连接 包含 Jar 包列表: 01、hadoop-common-3.0.0-cdh6.3.1.jar 02、hive-exec-2.1.1-cdh6.3.1.jar ...10、slf4j-log4j12-1.7.25.jar 11、ST4-4.0.8.jar
然而,在Hive 3.0+版本中,由于采用了Log4j2作为默认的日志框架,开启审计日志的过程与Hive 1.0中使用Log4j有所不同。 在Hive 3.0+中,我们需要编辑`hive-log4j2.properties`配置文件来实现审计日志功能。以下是一...
3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步! 疫情大数据分析Python爬取数据+Springboot+MySQL+hadoop(存取)+Vue+ElementUI大屏展示...
### Centos+Hadoop+Hive+HBase 环境搭建详解 #### 一、Centos基础环境搭建 ##### 1.1 软件准备 为了搭建一个基于Centos的操作系统,需要准备以下软件: - **VMware-workstation-full-8.0.4-744019.exe**:这是...
Hive-1.1.0-cdh5.9.3是Cloudera Distribution Including Apache Hadoop(CDH)5.9.3版本中的配套Hive组件,这个版本的Hive在CDH的生态环境中扮演着至关重要的角色。 CDH是由Cloudera公司提供的一个全面、经过测试且...
Hive-1.1.0-cdh5.7.0是专为CDH5.7.0设计的,如果使用其他版本的Hadoop,可能会导致运行错误或性能问题。因此,正确选择和匹配Hadoop版本是成功部署Hive的关键步骤。 3. **安装与配置Hive** - **解压文件**:首先,...
- **HDFS支持**:在Hive中使用HDFS作为默认存储,确保Hive-site.xml中的`fs.defaultFS`与Hadoop的配置一致。 - **Hive与Hadoop的版本匹配**:确保Hive和Hadoop版本兼容,避免出现兼容性问题。 6. **启动与测试**...
这个压缩包文件"**hive-1.1.0-cdh5.7.0.tar**"是针对CDH(Cloudera Distribution Including Apache Hadoop)5.7.0版本的Hive 1.1.0发行版,它是大数据生态中一个基于Hadoop的数据仓库工具,能够将结构化的数据文件...
apache-hive-3.1.3-bin.tar.gz apache-zookeeper-3.5.10-bin.tar.gz hadoop-3.3.3.tar.gz spark-3.2.1-bin-hadoop3.2.tgz mysql-8.0.29-1.el8.x86_64.rpm-bundle
Sqoop 是一个用来在 Hadoop 和传统数据库之间进行数据迁移的工具,它可以将数据导入到 Hadoop 的 HDFS 中,也可以将 Hadoop 中的数据导出到关系型数据库中。在滴滴出行项目中,Sqoop 负责将 Hive 中经过分析的数据...
基于Flink+ClickHouse构建的分析平台,涉及 Flink1.9.0 、ClickHouse、Hadoop、Hbase、Kafka、Hive、Jmeter、Docker 、HDFS、MapReduce 、Zookeeper 等技术
标题中的"一键安装jdk+mysql+hadoop+hive+zeppelin.rar"表明这是一个包含Java开发环境(JDK)、MySQL数据库、Hadoop分布式计算框架、Hive数据仓库工具以及Zeppelin交互式数据分析平台的一键安装包。这个压缩包为用户...