在上一篇成功安装mysql后,现在进行hive的安装和配置。由于这个过程出现许多问题,所以还是记一下。
一、下载hive
网址http://archive.apache.org/dist/hive/,我下载的版本是hive-1.2.1,然后上传到虚拟机/home/doc/下。
二、解压并改名。
# tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /home/apps/ # cd /home/apps/ # mv apache-hive-1.2.1-bin/ hive-1.2.1 |
三、配置hive
1、 添加环境变量,# vi /etc/profile,添加以下语句。
export HIVE_HOME=/home/apps/hive-1.2.1 export PATH=$PATH:$HIVE_HOME/bin |
然后# source /etc/profile使之生效。
2、修改hive配置文件
- 进入配置文件的目录 cd /home/apps/hive-1.2.1/conf/,如下图所示,后缀是.template的是临时的配置文件,要使之生效,需要改名去掉.template的后缀即可。
- 将我们需要配置的hive-env.sh.template 和 hive-log4j.properties.template改名。
# mv hive-env.sh.template hive-env.sh
# mv hive-log4j.properties.template hive-log4j.properties - 修改hive-env.sh文件 vi hive-env.sh
添加Java,Hadoop,Hive的地址
export JAVA_HOME=/home/apps/jdk1.7.0_45
export HADOOP_HOME=/home/apps/hadoop-2.6.4
export HIVE_HOME=/home/apps/hive-1.2.1 -
修改log4j文件 vi hive-log4j.properties将EventCounter修改成org.apache.hadoop.log.metrics.EventCounter
- 配置远程登陆模式
<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a 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>root</value> <description>password to use against metastore database</description> </property> </configuration> |
四、打开mysql并配置hive数据库及权限
# service mysqld start # mysql -u root -p mysql> create database hivedb; //配置hive源数据库 mysql> grant all privileges on *.* to root@"%" identified by "root" with grant option; mysql> flush privileges; mysql> quit; |
但是有报错:
怀疑是jdbc的问题,于是导入mysql-connector-java-5.1.46.jar的jdbc包到HIVE_HOME/lib下,但又出现以下问题:
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
查阅资料,是元数据库需要初始化,输入:schematool -dbType mysql -initSchema
但还是打不开hive有错。。。
于是打开hive.site,把localhost改成了ip地址
错误改变
用/hive/lib里面的jline2.12替换hadoop 中/hadoop/hadoop-2.6.1/share/hadoop/yarn/lib/jline-0.09*.jar,然后重启hive,成功。
五、运行hive命令即可启动hive
至此hive安装完成~。