Centos6.9下安装及配置hive1.2.1

在上一篇成功安装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
  • 配置远程登陆模式
            新建hive-site.xml文件。# vi hive-site.xml
            写入以下内容:
<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 [email protected]"%" 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安装完成~。