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的工作原理,例如如何解析SQL语句、生成执行计划以及与Hadoop生态的交互机制,这对于解决高级问题和定制化需求很有帮助。...
`Chapter 2`可能涵盖了Hive的基本概念和安装配置,包括Hive架构、HDFS基础、Hive元数据存储以及如何设置和启动Hive服务。这一章通常会介绍如何创建数据库、表,以及如何加载数据到Hive中。此外,可能会讨论数据类型...
以上就是Hive源码编译的整个流程,涉及到的知识点包括Maven的使用、Java环境的配置、Hadoop的集成以及Hive的自定义和优化。在实际操作过程中,可能还会遇到各种问题,需要具备一定的解决问题的能力,例如排查依赖...
4. **环境问题**:确认Hadoop和Hive服务器运行正常,且Thrift服务器已启动,监听正确的端口。 5. **错误日志**:查看PHP运行时的错误日志,以获取更具体的错误信息,这对于定位问题非常关键。 解决这个问题通常涉及...
本项目将详细介绍Hive的安装与配置过程,以及如何结合Tez引擎优化查询性能。下面将对这两个主题进行深入解析。 首先,我们来了解Hive的核心概念。Hive是由Facebook开发的一个数据仓库工具,它允许用户使用SQL(HQL...
- 启动 Hive 服务。 - **工作原理**:Hive 依赖于 Hadoop 提供的数据存储功能,并利用 MapReduce 进行数据处理。 2. **部署 Hive Metastore** - **准备工作**:配置好数据库服务器用于存储元数据。 - **操作...
通过研究源码,开发者可以深入了解Hive的工作原理、内部架构以及如何扩展和定制Hive以满足特定需求。 Hive的核心组件包括: 1. **Metastore**:存储元数据,如表的结构、分区信息、字段类型等,通常使用MySQL或...
1. **集成部署**:Ambari提供了一个统一的界面,可以安装、配置和管理Hadoop生态系统中的多个组件,如HDFS、YARN、MapReduce2、Hive、HBase等,极大地简化了Hadoop集群的搭建过程。 2. **可视化管理**:通过Web操作...
最后,结合实际问题,调试源码,解决实际开发中遇到的问题。 总结起来,《Hadoop 权威指南》的源码不仅提供了一个学习Hadoop的实践平台,也是提升大数据处理能力的重要资源。通过深入研究这些源码,开发者可以更好...
总结来说,本教程涵盖了在Windows虚拟机内安装和配置Linux,以及在Linux上编译和运行Hadoop的基本步骤。通过这个过程,你可以在本地环境中测试和开发大数据处理算法,为后续的大规模集群部署打下坚实基础。
`hadoop2.6.5源码zip`文件包含了完整的Hadoop 2.6.5源代码,开发者可以深入研究其内部机制,了解如何实现MapReduce计算模型、HDFS分布式文件系统以及YARN资源调度器等核心组件。 1. **MapReduce**:MapReduce是...
在实际应用中,DataX支持的数据源非常广泛,包括关系型数据库(如MySQL、SQL Server、Oracle、PostgreSQL等)、大数据存储(如HDFS、Hive、HBase等)以及阿里云的OTS(Open Table Service)和ODPS(Open Data ...
而 Hue 是一个开源的 Hadoop 用户界面系统,它允许用户通过浏览器进行数据处理和分析,如执行 HDFS 操作、MapReduce 任务、Hive 查询以及浏览 HBase 数据。 集成 Hue 4.6.0 到 Ambari 2.7.4 的过程是为 Hadoop 集群...
主要步骤包括配置Eclipse的Hive插件、连接Hive服务、编写和执行Hive查询、单步调试SQL执行过程。 ### Hive应用介绍 Hive是一个基于Hadoop的数据仓库工具,允许用户使用类似SQL的HQL语言进行数据查询。Hive的主要...
- **配置Profile**:根据实际需求选择不同的配置文件,例如Hadoop版本、是否引入Spark-Hive模块、是否运行在Yarn模式以及是否引入Ganglia组件等。 3. **编译准备** - **解决IDEA编译问题**:当前Spark代码中可能...
它支持多种服务,如HDFS、YARN、MapReduce、Hive、HBase等,同时也可以自定义安装额外的服务。 2. **管理与监控**:一旦集群部署完成,Ambari提供了丰富的监控工具,包括实时性能指标、警报设置、日志查看等功能,...
"VMWare视频同步讲义"是实践操作部分,可能指导用户如何在虚拟环境中安装和配置Hadoop集群,包括设置硬件资源、安装Java环境、配置Hadoop环境变量、启动和停止服务等步骤。这种实践操作对于理解Hadoop的实际运行至关...
- **编译源码**:从 Open MPI 官网下载源代码并按照官方文档进行编译安装。 - **配置网络**:确保 MPI 能够在集群中的所有节点之间正确通信。 - **测试**:使用 `mpirun` 工具运行简单的 MPI 程序,如 `mpi_hello_...