`
wangzjie
  • 浏览: 75023 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hive安装/启动以及源码调试

    博客分类:
  • hive
阅读更多

hive安装

1、安装hadoop并启动

2、安装hive

3、配置metastore(默认是derby,多用户操作时要改成mysql库)

metastore_db无权限,或在EmbeddedMetastore模式下启用多个客户端都会报

Errorinmetadata:java.lang.RuntimeException:Unabletoinstantiateorg.apache.hadoop.hive.metastore.HiveMetaStoreClient

 

cphive-default.xml.template hive-default.xml以及hive-site.xml (hive-site.xml是个性化配置,优先级高于hive-default.xml)

配置hive-site.xml中的metastore配置:

 
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
  <description>JDBC connect string fora JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>Driverclassname fora JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>root</value>
  <description>username to use against metastore database</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>XXX</value>
  <description>password to use against metastore database</description>
</property>

记的添加Mysql的jar包到hive的lib中,否则Errorinmetadata:java.lang.RuntimeException:Unabletoinstantiateorg.apache.hadoop.hive.metastore.HiveMetaStoreClient

4、./hive就可以启动hive

5、hive thrift server

hive --service hiveserver -p10001来启动hive thrift服务(默认为10000端口)

nohup hive --service hiverserver -p10001可以在后台跑

6、排查问题时可以打开Hive的Debug日志,便于定位问题

./hive-hiveconfhive.root.logger=DEBUG,console

 

问题:

1、在cli中执行任何操作报异常(使用内置的derby)

 

FAILED: Error in metadata: MetaException(message:Got exception: org.apache.hadoop.hive.metastore.api.MetaException javax.jdo.JDODataStoreException: Error(s) were found while auto-creating/validating the datastore for classes. The errors are printed in the log, and are attached to this exception.
NestedThrowables:
java.sql.SQLSyntaxErrorException: In an ALTER TABLE statement, the column 'IS_STOREDASSUBDIRECTORIES' has been specified as NOT NULL and either the DEFAULT clause was not specified or was specified as DEFAULT NULL.)
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

 

 

 原来是要到hive目录下(即有metastore_db文件夹所在的位置),然后再执行hive命令,就能正常查了

 

hive源码编译

1、启用debug监听(我采用的是0.11.0版本)

hive --debug (默认是port=8000)

自定义端口使用:hive --debug:port=4000

debug模式只有在0.10.0以上版本才可以用。debug启动后会等待客户端连接,客户端连接上后就进入cli命令行

2、hive源码编译及eclipse调试

下载hive源码(可通过svn或下载src包),通过ant clean package eclipse-files后,导入到eclipse中。

监听hive debug时的远程端口,就可以进入debug模式。

 

hive脚本运行流程

hive启动脚本:hive脚本中加载ext中各*.sh中的方法

hive servername server参数

如hive --debug --help:

流程中会判断$1=‘--debug’则$DEBUG=‘--debug’, 里面有

if($DEBUG 存在){

if $2 如--help,就会执行debug_help方法。

else 设置HIVE_MAIN_CLIENT_DEBUG_OPTS的参数中加入debug相应参数

 

hive脚本最后的$TORUN "$@" ,TORUN其实就是cli,即执行/ext/cli.sh脚本,该脚本中主要是调用/ext/util/execHiveCmd.sh 来执行最后的CliDriver。

即exec $HADOOP jar ${HIVE_LIB}/hive-cli-*.jar $CLASS $HIVE_OPTS "$@"

其中:

$HADOOP=/var/root/soft/hadoop-0.20.2/bin/hadoop (hadoop脚本路径)

$CLASS=org.apache.hadoop.hive.cli.CliDriver

 

hadoop脚本中最终会执行:

exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"

 

hive的debug参数就是在hive脚本时放到HADOOP_OPTS中的

 

 

遇到的问题:

为了便于调试,在本机安装了hadoop和hive,然后启动hive --debug,一直不能进入debug模式,看hive进程,jdwp的设置没在参数中。弄了半天发现HADOOP_OPTS在hadoop的hadoop-env.sh里被赋值了,即把hive的HADOOP_OPTS的覆盖了(当时在hadoop-env.sh里设置了参数,而没有保留之前的$HADOOP_OPTS)

分享到:
评论

相关推荐

    hive 三种启动方式及用途

    最后,对于源码层面的理解,虽然这里没有具体提及,但深入源码可以帮助我们更好地理解Hive的工作原理,例如如何解析SQL语句、生成执行计划以及与Hadoop生态的交互机制,这对于解决高级问题和定制化需求很有帮助。...

    Apache Hive Cookbook_Code 源码

    `Chapter 2`可能涵盖了Hive的基本概念和安装配置,包括Hive架构、HDFS基础、Hive元数据存储以及如何设置和启动Hive服务。这一章通常会介绍如何创建数据库、表,以及如何加载数据到Hive中。此外,可能会讨论数据类型...

    hive编译源码的资料

    以上就是Hive源码编译的整个流程,涉及到的知识点包括Maven的使用、Java环境的配置、Hadoop的集成以及Hive的自定义和优化。在实际操作过程中,可能还会遇到各种问题,需要具备一定的解决问题的能力,例如排查依赖...

    php连接hive thrift的lib依赖包

    4. **环境问题**:确认Hadoop和Hive服务器运行正常,且Thrift服务器已启动,监听正确的端口。 5. **错误日志**:查看PHP运行时的错误日志,以获取更具体的错误信息,这对于定位问题非常关键。 解决这个问题通常涉及...

    电商数仓项目(十) Hive安装与配置.rar

    本项目将详细介绍Hive的安装与配置过程,以及如何结合Tez引擎优化查询性能。下面将对这两个主题进行深入解析。 首先,我们来了解Hive的核心概念。Hive是由Facebook开发的一个数据仓库工具,它允许用户使用SQL(HQL...

    Apache-Hive-Cookbook

    - 启动 Hive 服务。 - **工作原理**:Hive 依赖于 Hadoop 提供的数据存储功能,并利用 MapReduce 进行数据处理。 2. **部署 Hive Metastore** - **准备工作**:配置好数据库服务器用于存储元数据。 - **操作...

    apache-hive-1.2.1-src

    通过研究源码,开发者可以深入了解Hive的工作原理、内部架构以及如何扩展和定制Hive以满足特定需求。 Hive的核心组件包括: 1. **Metastore**:存储元数据,如表的结构、分区信息、字段类型等,通常使用MySQL或...

    HDP集成环境配置工具ambari2.7含源码

    1. **集成部署**:Ambari提供了一个统一的界面,可以安装、配置和管理Hadoop生态系统中的多个组件,如HDFS、YARN、MapReduce2、Hive、HBase等,极大地简化了Hadoop集群的搭建过程。 2. **可视化管理**:通过Web操作...

    hadoop 权威指南源码

    最后,结合实际问题,调试源码,解决实际开发中遇到的问题。 总结起来,《Hadoop 权威指南》的源码不仅提供了一个学习Hadoop的实践平台,也是提升大数据处理能力的重要资源。通过深入研究这些源码,开发者可以更好...

    大数据Windows下虚拟机内部Hadoop的安装使用

    总结来说,本教程涵盖了在Windows虚拟机内安装和配置Linux,以及在Linux上编译和运行Hadoop的基本步骤。通过这个过程,你可以在本地环境中测试和开发大数据处理算法,为后续的大规模集群部署打下坚实基础。

    hadoop2.6.5源码zip

    `hadoop2.6.5源码zip`文件包含了完整的Hadoop 2.6.5源代码,开发者可以深入研究其内部机制,了解如何实现MapReduce计算模型、HDFS分布式文件系统以及YARN资源调度器等核心组件。 1. **MapReduce**:MapReduce是...

    大数据采集技术-DataX安装.pptx

    在实际应用中,DataX支持的数据源非常广泛,包括关系型数据库(如MySQL、SQL Server、Oracle、PostgreSQL等)、大数据存储(如HDFS、Hive、HBase等)以及阿里云的OTS(Open Table Service)和ODPS(Open Data ...

    Ambari2.7.4集成Hue4.6.0

    而 Hue 是一个开源的 Hadoop 用户界面系统,它允许用户通过浏览器进行数据处理和分析,如执行 HDFS 操作、MapReduce 任务、Hive 查询以及浏览 HBase 数据。 集成 Hue 4.6.0 到 Ambari 2.7.4 的过程是为 Hadoop 集群...

    Hadoop开发者第一期入门专刊

    主要步骤包括配置Eclipse的Hive插件、连接Hive服务、编写和执行Hive查询、单步调试SQL执行过程。 ### Hive应用介绍 Hive是一个基于Hadoop的数据仓库工具,允许用户使用类似SQL的HQL语言进行数据查询。Hive的主要...

    Spark开发及本地环境搭建指南

    - **配置Profile**:根据实际需求选择不同的配置文件,例如Hadoop版本、是否引入Spark-Hive模块、是否运行在Yarn模式以及是否引入Ganglia组件等。 3. **编译准备** - **解决IDEA编译问题**:当前Spark代码中可能...

    apache-ambari-2.7.6-src.tar.gz

    它支持多种服务,如HDFS、YARN、MapReduce、Hive、HBase等,同时也可以自定义安装额外的服务。 2. **管理与监控**:一旦集群部署完成,Ambari提供了丰富的监控工具,包括实时性能指标、警报设置、日志查看等功能,...

    Hadoop深入浅出分享资料

    "VMWare视频同步讲义"是实践操作部分,可能指导用户如何在虚拟环境中安装和配置Hadoop集群,包括设置硬件资源、安装Java环境、配置Hadoop环境变量、启动和停止服务等步骤。这种实践操作对于理解Hadoop的实际运行至关...

    bigdata bench 用户手册

    - **编译源码**:从 Open MPI 官网下载源代码并按照官方文档进行编译安装。 - **配置网络**:确保 MPI 能够在集群中的所有节点之间正确通信。 - **测试**:使用 `mpirun` 工具运行简单的 MPI 程序,如 `mpi_hello_...

Global site tag (gtag.js) - Google Analytics