`
wangmengbk
  • 浏览: 292169 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hive 安装&配置及常见问题解决

 
阅读更多

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

 

前提安装了hadoop

下载地址: http://apache.fayea.com/hive/hive-1.2.0/

版本: apache-hive-1.2.0-bin.tar.gz

解压: tar –zxvf apache-hive-1.2.0-bin.tar.gz

 

配置环境变量:

export HIVE_HOME=/opt/apache-hive-1.2.0-bin

export HIVE_CONF_DIR=$HIVE_HOME/conf

export HIVE_LIB=$HIVE_HOME/lib

export CLASSPATH=$CLASSPATH:$HIVE_LIB

export PATH=$HIVE_HOME/bin:$PATH

 

cd /opt/apache-hive-1.2.0-bin/conf 将hive-env.sh.template 拷贝为 hive-env.sh

cp hive-env.sh.template hive-env.sh

更改hive-env.sh的内容: 

vi hive-env.sh

 

HADOOP_HOME=/opt/soft-228238/hadoop-2.6.0

export HIVE_CONF_DIR=/opt/apache-hive-1.2.0-bin/conf

 

cp hive-default.xml.template hive-site.xml

vi hive-site.xml

修改如下配置中的信息:

 <property>

    <name>javax.jdo.option.ConnectionURL</name>

    <value>jdbc:oracle:thin:@192.168.XX.XXX:1521:dpap</value>

    <description>JDBC connect string for a JDBC metastore</description>

  </property>

 <property>

    <name>javax.jdo.option.ConnectionDriverName</name>

    <value>oracle.jdbc.driver.OracleDriver</value>

    <description>Driver class name for a JDBC metastore</description>

  </property>

 <property>

    <name>javax.jdo.option.ConnectionUserName</name>

    <value>user</value>

    <description>Username to use against metastore database</description>

  </property>

 <property>

    <name>javax.jdo.option.ConnectionPassword</name>

    <value>password</value>

    <description>password to use against metastore database</description>

  </property>

 

 将 数据库驱动包(oracle-jdbc-10.1.0.2.0.jar) 放入到 /opt/apache-hive-1.2.0-bin/lib 中

启动 hive

cd  /opt/apache-hive-1.2.0-bin/bin

执行:./hive --service metastore  (使用远端数据库 hive服务端程序)

./hive

hive -hiveconf hive.root.logger=DEBUG,console

schematool -dbType oracle -initSchema

 

常见问题:

  • 启动报错:

    Logging initialized using configuration in jar:file:/opt/apache-hive-1.2.0-bin/lib/hive-common-1.2.0.jar!/hive-log4j.properties

Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: 

${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:519)

at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:677)

 

 at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)

 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)

Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

 at org.apache.hadoop.fs.Path.initialize(Path.java:206)

 at org.apache.hadoop.fs.Path.<init>(Path.java:172)

 at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:560)

at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:505)

        ... 8 more

Caused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

at java.net.URI.checkPath(URI.java:1804)

 at java.net.URI.<init>(URI.java:752)

 at org.apache.hadoop.fs.Path.initialize(Path.java:203)

        ... 11 more

 

解决方案:cd  /opt/soft-228238/hadoop-2.6.0/bin     

执行: /hadoop fs -chmod -R 777 /tmp/hive

cd /opt/apache-hive-1.2.0-bin/conf  

vi  hive-site.xml (修改如下配置信息的value)

<property>

    <name>hive.exec.local.scratchdir</name>

    <value>/tmp/hive</value>

    <description>Local scratch space for Hive jobs</description>

  </property>

<property>

    <name>hive.downloaded.resources.dir</name>

    <value>/tmp/${hive.session.id}_resources</value>

    <description>Temporary local directory for added resources in the remote file system.</description>

  </property>

<property>

    <name>hive.querylog.location</name>

    <value>/tmp/hive</value>

    <description>Location of Hive run time structured log file</description>

  </property>

<property>

    <name>hive.server2.logging.operation.log.location</name>

    <value>/tmp/hive/operation_logs</value>

    <description>Top level directory where operation logs are stored if logging functionality is enabled</description>

  </property>

 

  • 错误2:

[ERROR] Terminal initialization failed; falling back to unsupported

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

  at jline.TerminalFactory.create(TerminalFactory.java:101)

  at jline.TerminalFactory.get(TerminalFactory.java:158)

 at jline.console.ConsoleReader.<init>(ConsoleReader.java:229)

at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)

at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)

at org.apache.hadoop.hive.cli.CliDriver.setupConsoleReader(CliDriver.java:787)

 at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:721)

 at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)

at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)

 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目录下存在老版本jline:

/hadoop-2.6.0/share/hadoop/yarn/lib:

-rw-r--r-- 1 root root   87325 Mar 10 18:10 jline-0.9.94.jar

解决方法是:

将hive下的新版本jline的JAR包拷贝到hadoop下:

cp  /opt/apache-hive-1.2.0-bin/lib/jline-2.12.jar ./

mv jline-0.9.94.jar jline-0.9.94.jar.bak

 

  • hive 连接 oracle 创建表失败

 使用 create table 命令创建表失败:

日志信息在 /temp/root/hive.log 目录查看日志错误信息:



 
 解决方案:

用解压缩工具打开${HIVE_HOME}/lib中的hive-metastore-1.2.0.jar,hive-jdbc-1.2.0-standalone.jar发现名为package.jdo的文件,打开该文件并找到下面的内容。

<field name="viewOriginalText" default-fetch-group="false">

        <column name="VIEW_ORIGINAL_TEXT" jdbc-type="LONGVARCHAR"/>

</field>

<field name="viewExpandedText" default-fetch-group="false">

        <column name="VIEW_EXPANDED_TEXT" jdbc-type="LONGVARCHAR"/>

</field>

可以发现列VIEW_ORIGINAL_TEXT和VIEW_EXPANDED_TEXT的类型都为LONGVARCHAR,对应于Oracle中的LONG,这样就与Oracle表只能存在一列类型为LONG的列的要求相矛盾,所以就出现错误了。

按照Hive官网的建议将该两列的jdbc-type的值改为CLOB,修改后的内容如下所示。

<field name="viewOriginalText"default-fetch-group="false">

             <column name="VIEW_ORIGINAL_TEXT" jdbc-type="CLOB"/>

</field>

<field name="viewExpandedText"default-fetch-group="false">

             <column name="VIEW_EXPANDED_TEXT" jdbc-type="CLOB"/>

</field>

修改以后,重启hive。

分享到:
评论

相关推荐

    Hue 常见问题解决方案,大数据平台的hue/hive常见问题总结 免费下载

    本文将围绕“Hue常见问题解决方案”这一主题,详细阐述Hue与Hive在大数据平台中可能遇到的问题以及相应的解决策略。 首先,我们来了解Hue的基本功能。Hue是Cloudera公司开发的一款开源Web应用程序,它提供了一个...

    Hadoop之hive安装

    本篇文章将指导您如何在CentOS 6.4下安装Hive,并解决可能遇到的错误。 环境及软件介绍 本篇文章使用的环境是CentOS 6.4-x86_64-bin-DVD1.iso,软件版本为Hadoop 2.2.0和Hive 0.12.0,以及MySQL 5.1.66。 MySQL ...

    hive on tez 常见报错问题收集

    以上就是针对Hive on Tez常见报错的分析及解决方案。在实际操作中,应根据具体环境和需求调整相关配置,确保Hive作业的稳定性和效率。同时,对于复杂的查询场景,理解Hive和Tez的工作原理以及它们之间的交互至关重要...

    Hive1.2.1安装指南

    本文档将详细介绍如何安装Hive 1.2.1版本,并解决在安装过程中可能遇到的一个常见错误。Hive是一款基于Hadoop的数据仓库工具,可以将结构化的数据文件映射成一张表,并提供SQL查询功能。通过Hive,用户可以使用SQL...

    hive的一些报错及解决方法

    ### Hive的一些报错及解决方法 #### 一、Hive连接报错 在更换网络接口卡后重新启动服务时,可能会遇到Hive连接失败的问题。...通过以上详细的步骤,可以有效地解决Hive在使用过程中遇到的各种常见问题。

    hadoop hive 安装指南

    #### 六、常见问题与解决方法 1. **无法连接到 MySQL 数据库** 确保 MySQL 服务已启动且允许远程访问。检查防火墙设置,确保端口 3306 已开放。 2. **JDBC 驱动程序找不到** 确认 JDBC 驱动程序已正确放置在 `...

    Hadoop使用常见问题以及解决方法

    "Hadoop 使用常见问题以及解决方法" Hadoop 作为一个大数据处理的开源框架,广泛应用于数据存储、处理和分析等领域。但是在使用 Hadoop 时,经常会遇到一些常见的问题,本文将对这些问题进行总结和解决。 Shuffle ...

    利用Hive进行复杂用户行为大数据分析及优化案例

    12_Hadoop及Hive配置支持snappy压缩 13_Hive中的常见调优 14_Hive中的数据倾斜及解决方案-三种join方式 15_Hive中的数据倾斜及解决方案-group by 16_Hive中使用正则加载数据 17_Hive中使用Python脚本进行预处理

    hadoop2.2+hbase0.96+hive0.12安装整合详细高可靠文档及经验总结

    综上所述,本文详细介绍了如何安装和整合Hadoop2.2、HBase0.96和Hive0.12,并提供了一些常见的问题解决方案。对于初次接触这些技术的新手来说,遵循上述步骤可以大大减少安装过程中可能出现的问题。此外,对于那些...

    Hive metastore 使用达梦数据库存储元数据

    总结起来,将Hive metastore迁移到达梦数据库涉及创建数据库用户和表空间、修改Hive配置文件以及初始化元数据等步骤。这个过程不仅可以提升元数据管理的性能,还可以利用达梦数据库的特性来增强数据安全性。然而,...

    hive2.1.1中orc格式读取报数组越界错误解决方法

    替换这些jar包意味着升级了Hive在CDH环境中的执行部分和ORC处理库,以解决在2.1.1版本中遇到的问题。 分发新jar包到各个服务器是必要的步骤,因为Hive通常在分布式环境中运行,每个节点都需要有正确的库才能正确...

    cdh继承tez引擎 cdh添加tez引擎 hive引擎增加

    成功编译后,将Tez的相关jar包安装到Hadoop的类路径中,这通常涉及到将编译后的jar文件复制到Hive的lib目录下,尽管这种方法在某些情况下可能会导致问题。 7. **Hive on Tez的配置**: 在Hive的配置文件(如`hive-...

    【63课时完整版】大数据实践HIVE详解及实战

    48.Hadoop及Hive配置支持snappy压缩 49.Hive中的常见调优 50.Hive中的数据倾斜及解决方案-三种join方式 51.Hive中的数据倾斜及解决方案-group by 52.Hive中使用正则加载数据 53. Hive中使用Python脚本进行预处理 第...

    hive搭建及使用入门简介(内含PPT、各种表创建sql及hive搭建使用笔记)

    “Hive搭建使用笔记”可能包含了实践过程中的注意事项、常见问题及其解决方案,是学习过程中宝贵的参考资料。 通过这个压缩包,你可以全面掌握Hive的基础知识,包括安装、配置、表管理和SQL操作。实践是学习最好的...

    Hive常见问题维护手册V1.01

    【Hive架构概述】 ...通过以上步骤,通常能有效地定位和解决 Hive 中遇到的大部分问题。然而,对于更复杂的问题,可能需要结合其他工具,如监控系统、集群资源管理器的 UI,或者进行更深入的代码分析。

    hadoop2.2 hbase0.96 hive0.12安装整合详细高可靠文档及经验总结

    #### 四、常见问题及解决方案 **4.1 Hadoop安装常见问题** - **权限问题**: 确保所有节点上Hadoop相关的目录具有正确的权限。 - **网络问题**: 检查各个节点之间的网络连通性。 - **日志分析**: 通过分析日志文件...

    Spark不能使用hive自定义函数.doc

    然而,在实际应用中,开发人员可能会遇到一个常见问题——Spark 无法直接使用 Hive 中定义的自定义函数(UDF)。本文将深入探讨这一问题,并提供解决方案。 #### 一、问题背景 当开发者尝试在 Spark 应用程序中...

    hive所有jar文件

    描述中提到,“用于Hive和HBase的连接,通过hive操作hbase上的表”,这表明这些JAR文件是为了解决Hive与HBase集成的问题。Hive-HBase连接器允许用户在Hive中创建外部表,将这些表映射到HBase的数据表,从而可以在...

Global site tag (gtag.js) - Google Analytics