HIVE安装系列之二:配置HIVE(用Mysql作为元数据仓库)

来源:互联网 发布:找不到windows hello 编辑:程序博客网 时间:2024/06/08 00:18

hive采用1.0.0版的,也是一个稳定版本。

这是下载地址:http://pan.baidu.com/s/1GXInO

jdbc驱动包,采用的是

这是下载地址:http://pan.baidu.com/s/1pJDj2CN

安装的虚拟机是Centos6系列的,属于红帽Linux。

放置mysql的Linux主机名我取名为combanc05,放置hive的我取名combanc03.

在安装hive之前,请确保已经配置了hadoop集群,请将hive安装在hadoop集群之上。


Hive里面应用Derby作为元数据仓库metastore,这是在软件中已经实现了的,
但是Derby有自身的缺点:只支持一个链接。所以必须要用mysql作为元数据仓库。
在combanc03上安装hive,在combanc05上安装mysql,这样可以让mysql允许远程访问。
具体安装mysql过程请参见mysql笔记本中的《在Linux中安装mysql》

#将HDFS系统上hive默认生成的文件夹删掉。
命令:[root@combanc03 ~]# hadoop fs -rmr /user/hive

#修改配置文件
命令:cd /combanc/apache-hive-1.0.0-bin/conf/
  • 修改hive-env.sh文件
#修改hive-env文件的模板
命令:mv hive-env.sh.template hive-env.sh
#修改hive-env.sh文件
命令:vim hive-env.sh
在这里你可以设置这些属性,也可以不设置HADOOP_HEAPSIZE,HADOOP_HOME

  • 修改hive-site.xml文件
#修改hive-default.xml文件的模版
命令:mv hive-default.xml.template hive-site.xml
你会看到提示信息说,这个hive-default.xml.template文件是系统自动生成的,仅提供给你让你观赏用的,你的任何改动都会让hive忽略掉这个脚本文件,问题很严重,Σ( ° △ °|||)︴。你想要改它必须跑到hive-site.xml中去改。
把<configuration></configuration>之间的内容全部删掉。

#修改这个hive-site.xml文件
命令:vim hive-site.xml
ctrl+v 进入可视行模式,按大写G 跑到最后一行,按d把它删掉。
在<configuration></configuration>之间填写上这些
<configuration>
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://combanc05: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>hadoop</value>
                  <description>password to use against metastore database</description>
        </property>
</configuration>

  • 启动hive
#到/combanc/apache-hive-1.0.0-bin/bin目录下面启动hive
命令:hive
会报错找不到com.mysql.jdbc.Driver驱动包

  • 添加驱动包
#把连接驱动放到hive的lib下面
命令:cp /root/Downloads/mysql-connector-java-5.1.32-bin.jar /combanc/apache-hive-1.0.0-bin/lib/
会报错combanc05也就是mysql所在的机器,不让连接。

  • 给root用户远程访问mysql授权!
修改mysql所在的机器combanc05,允许Hive所在的机器combanc03连接(以root用户的身份链接)
#在/usr/share/mysql文件夹中启动mysql
命令:service mysql start
#登陆mysql
命令:mysql -uroot -phadoop

#在mysql中运行一个授权语句,授权root用户可以在任何主机上访问mysql,用密码hadoop
命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hadoop' WITH GRANT OPTION;
如果root用户可以在combanc03上访问,则改成 'root'@'combanc03'就可以了。
如果你仅想操作hive库下面的所有表则 *.*  变成hive.*

  • 重新启动hive
#在combanc03这台机器上连接hive
命令:hive
然后就显示已经连接上hive,ok,成功。

  • 检查一下MySQL是否在成功的工作。
#在SQLyog里面连接一下192.168.1.105里面的mysql
里面多了一个hive库,这就是刚才新建的哪个。>jdbc:mysql://combanc05:3306/hive?createDatabaseIfNotExist=true
这就是刚才创建的people表的元数据信息。

people表里面的字段信息也保存在mysql(metastore)里面了

同时mysql中还记录了people表中的数据存储在hdfs的哪里。



0 0