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文件
命令: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>
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>
root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
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驱动包
- 添加驱动包
命令: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'就可以了。
如果你仅想操作hive库下面的所有表则 *.* 变成hive.*
- 重新启动hive
命令:hive
然后就显示已经连接上hive,ok,成功。
- 检查一下MySQL是否在成功的工作。
combanc05:3306/hive?createDatabaseIfNotExist=true
这就是刚才创建的people表的元数据信息。
people表里面的字段信息也保存在mysql(metastore)里面了
同时mysql中还记录了people表中的数据存储在hdfs的哪里。