在IDE上调试Hive

[size=large]编译、调试Hive[/size]
最近在公司研究Hive源码,积累了一些经验,写了一些东西,陆续更新,希望对感兴趣的朋友有所帮助,本人新手欢迎拍砖指教,打字不易,转载请注明出处http://eclipse-cc.iteye.com/blog/1410012。

通过以下步骤您可以使用IDE修改、编译、调试Hive:
这里使用NetBeans编译并调试Hive(0.7.1)
1. 新建Java应用程序项目
2. 导入需要调试的源包
3. 在库中添加hive目录lib下的所有jar、Hadoop项目依赖(无hadoop调试需求的也可以直接导入hadoop的core)、mysql库(如果跟我一样,metastore用mysql存。BTW,我发现不同版本hive的meta表结构会不同,如生产环境采用hive 0.7.0版本,使用0.7.1可以正常访问,但是0.8.0访问时会因为取不到列信息而在validation过程中出错)
4. 这步很重要,在运行选项卡中将编译的源至于类路径之上,不明白的话复习下ClassLoader
5. 将hive配置文件放到项目默认包里
6. 这时候就可以编译、调试了,为了可以在IDE的console中输入hive脚本,需要改一下cliDriver类的命令采集代码,使用Scanner(System.in)什么的随便你了。

遇到的问题:
Hadoop版本不识别:修改shimloader类,显示对vars赋值
MySQL连不上:检查防火墙、远程连接授权
Windows上不能访问tmp目录:给Context类localScratchDir变量赋值

声明:以上解决问题的方法仅是为了快速编译与调试,解决问题的思想不可取。
### Hive 集群环境配置及启动测试教程 Hive 是一个基于 Hadoop 的数据仓库工具,用于大规模数据的存储和查询。以下是关于 Hive 集群环境配置及启动测试的详细说明。 #### 1. 环境准备 在开始配置之前,需要确保以下软件和环境已经正确安装和配置: - JDK 1.7+[^1] - Hadoop 2.X 集群环境已搭建完成 - Zookeeper 和 HBase 已经配置完毕[^1] - MySQL 5.1+ 作为元数据存储数据库[^1] #### 2. Hive 安装与配置 ##### 2.1 下载并解压 Hive 下载稳定版本的 Hive,并将其解压到目标目录: ```bash wget http://archive.apache.org/dist/hive/hive-2.1.0/apache-hive-2.1.0-bin.tar.gz tar -zxvf apache-hive-2.1.0-bin.tar.gz mv apache-hive-2.1.0-bin /usr/local/hive ``` ##### 2.2 配置环境变量 编辑 `~/.bashrc` 文件,添加 Hive 的环境变量: ```bash export HIVE_HOME=/usr/local/hive export PATH=$PATH:$HIVE_HOME/bin ``` 执行 `source ~/.bashrc` 使配置生效。 ##### 2.3 配置 Hive 进入 Hive 的配置目录,复制模板文件并进行修改: ```bash cd $HIVE_HOME/conf cp hive-default.xml.template hive-site.xml ``` 在 `hive-site.xml` 中添加以下内容以配置 MySQL 作为元数据存储: ```xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://<MySQL_IP>:3306/hive?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>your_password</value> </property> ``` 同时,确保 MySQL 已经按照特定参数编译并安装[^3]。 ##### 2.4 配置 Hadoop 支持 在 `hive-site.xml` 中添加以下配置以支持 Hadoop: ```xml <property> <name>hive.exec.scratchdir</name> <value>/tmp/hive</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> ``` #### 3. 启动 Hive 并进行测试 ##### 3.1 初始化 Hive 元数据库 执行以下命令初始化 Hive 的元数据库: ```bash schematool -dbType mysql -initSchema ``` ##### 3.2 启动 Hive CLI 启动 Hive 命令行界面并测试基本功能: ```bash hive ``` 在 Hive CLI 中创建一个简单的表并插入数据进行测试: ```sql CREATE TABLE test_table (id INT, name STRING); INSERT INTO test_table VALUES (1, 'test'); SELECT * FROM test_table; ``` ##### 3.3 测试 Hive on Hadoop 确保 Hadoop 集群正常运行后,在 Hive 中执行以下命令以验证其是否能够正常调用 Hadoop: ```sql SET hive.execution.engine=mr; SELECT COUNT(*) FROM test_table; ``` #### 4. 常见问题排查 - 如果 Hive 无法连接到 MySQL,请检查 MySQL 的用户权限和防火墙设置。 - 如果 Hive 在执行任务时失败,请检查 Hadoop 的日志文件以定位问题。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值