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的哪里。