设为首页 加入收藏

TOP

Hive本地模式安装及遇到的问题和解决方案(一)
2015-08-31 19:59:44 来源: 作者: 【 】 浏览:132
Tags:Hive 本地 模式 安装 遇到 问题 解决方案

Hive有三种运行模式:


1.内嵌模式:将元数据保存在本地内嵌的Derby数据库中,这得使用Hive最简单的方式,不过使用内嵌模式的话,缺点也比较明显,因为一个内嵌的Derby数据库每次只能访问一个数据文件,这也就意味着不支持多会话连接。这种情况应对本地测试可能都有所不足,仅供初学者熟悉应用Hive;


2.本地模式:这种模式是将元数据库保存在本地的独立数据库中(比如说MySQL),这样就能够支持多会话和多用户连接;


3.远程模式:如果我们的Hive客户端比较多,在每个客户端都安装MySQL服务还是会造成一定的冗余和浪费,这种情况下,就可以更进一步,将MySQL也独立出来,将元数据保存在远端独立的MySQL服务中。


因为只有一台电脑,所以本文主要介绍Hive的本地模式安装。


安装前准备


1.正确安装Hadoop
?2.下载文件:
apache-hive-1.1.0-bin.tar.gz:https://hive.apache.org/downloads.html
?JDBC:http://download.softagency.net/MySQL/Downloads/Connector-J/


解压文件并配置Hive环境变量


解压文件


tar zxf apache-hive-1.1.0-bin.tar.gz
mv apache-hive-1.1.0-bin /usr/local/
tar zxf mysql-connector-java-5.1.35.tar.gz


配置环境变量vim /etc/profile


export HIVE_HOME=/usr/local/apache-hive-1.1.0-bin
export PATH=${PATH}:${HIVE_HOME}/bin


修改Hive配置


hive-config.sh


hive-env.sh


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


hive-site.xml


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

? ? javax.jdo.option.ConnectionURL
? ? jdbc:mysql://localhost:3306/hive
? ? JDBC connect string for a JDBC metastore


? ? javax.jdo.option.ConnectionDriverName
? ? com.mysql.jdbc.Driver
? ? Driver class name for a JDBC metastore


? ? javax.jdo.option.ConnectionUserName
? ? 数据库用户名
? ? Username to use against metastore database


? ? javax.jdo.option.ConnectionPassword
? ? 数据库密码
? ? password to use against metastore database


#如果不配置下面的部分会产生错误1.

? ? hive.exec.local.scratchdir
? ? 自定义目录
? ? Local scratch space for Hive jobs
?


? ? hive.downloaded.resources.dir
? ? 自定义目录
? ? Temporary local directory for added resources in the remote file system.


? ? hive.querylog.location
? ? 自定义目录
? ? Location of Hive run time structured log file


? hive.server2.logging.operation.log.location
? ? 自定义目录/operation_logs
? ? Top level directory where operation logs are stored if logging functionality is enabled


hive-log4j.properties


#cp hive-log4j.properties.template hive-log4j.properties
#vim hive-log4j.properties
hive.log.dir=自定义目录/log/


在HDFS上建立/tmp和/user/hive/warehouse目录,并赋予组用户写权限。


HADOOP_HOME/bin/hadoop fs -mkdir? ? ? /tmp
HADOOP_HOME/bin/hadoop fs -mkdir? ? ? /user/hive/warehouse
HADOOP_HOME/bin/hadoop fs -chmod g+w? /tmp
HADOOP_HOME/bin/hadoop fs -chmod g+w? /user/hive/warehouse


Mysql配置


#创建数据库
mysql> create database hive;
#赋予访问权限
mysql> grant all privileges on hive.* to root@localhost identified by '密码' with grant option;
mysql> flush privileges;
#将JDBC复制到Hive库目录用于java程序与mysql的连接
cp mysql-connector-java-5.1.35/mysql-connector-java-5.1.35-bin.jar /usr/local/apache-hive-1.1.0-bin/lib/


完成以上操作后,启动Hadoop,再在终端输入hive启动Hive,若Hive成功启动,Hive本地模式安装完成。


错误1.


Logging initialized using configuration in file:/usr/local/apache-hive-1.1.0-bin/conf/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:472)
? ? at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:671)
? ? at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
? ? at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
? ? at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
? ? at sun.reflect.DelegatingMethodAcces

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HBase快速导入数据--BulkLoad 下一篇ImportTsv-HBase数据导入工具

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: