在Hadoop2.6.0上安装Hive0.14.0

1.到http://www.apache.org/dyn/closer.cgi/hive/ 上下载hive0.14.0的版本

2.使用cp命令拷贝到Linux主机的hadoop用户下

我这里使用的hadoop用户为qhg

3.使用tar -zxvf 命令进行解压,解压完后由于名字太长,使用mv进行重命名

4.配置Hive的环境变量

在.bash_profile文件中添加HIVE_HOME,然后在PATH中加入HIVE_HOME/bin目录

 

然后source .bash_profile,使环境变量生效

 

5.修改hive的配置文件

  a.在hive/conf/下有几个模板文件

    

  b.复制hive-env.sh.template 文件并命名为hive-env.sh 

    命令为cp hive-env.sh.template hive-env.sh

    

  c.hive-env.sh 是hive的环境配置问价,需要修改hadoop的目录和hive的conf目录等

    使用vi 打开hive-env.sh文件

    

   wq保存退出。

  d.复制文件hive-default.xml.template并重命名为hive-site.xml

    命令:cp hive-default.xml.template hive-site.xml

    删除<configuration> </configuration>之间的内容,(在vi命令模式下输入:21,3395d 回车)

    将以下内容拷过去

 关于元数据库的设置

<property> 
      <name>hive.metastore.local</name> 
      <value>true</value> 
 </property> 
这项配置已经被废弃,如果不是local模式则指定下面的信息,不指定则默认为local模式
<property> 
 <name>hive.metastore.uris</name> 
 <value>thrift://hadoopmaster:9083</value> 
</property>

    

 1 <property> 
 2     <name>hive.metastore.local</name> 
 3     <value>true</value> 
 4 </property> 
 5 <property> 
 6 <name>javax.jdo.option.ConnectionURL</name>
 7 <value>jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8</value> 
 8 </property> 
 9 <property> 
10      <name>javax.jdo.option.ConnectionDriverName</name> 
11      <value>com.mysql.jdbc.Driver</value> 
12 </property> 
13 <property> 
14      <name>javax.jdo.option.ConnectionUserName</name> 
15      <value>root</value> 
16 </property> 
17 <property> 
18      <name>javax.jdo.option.ConnectionPassword</name> 
19      <value>root</value> 
20 </property>

  其中jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8,localhost:3306/hive为MySQL服务器的地址和端口号

  hive为MySQL中作为hive metastore的数据库,需要在后面装MySQL的时候进行创建。

6.使用MySQL作为hive的metastore

  a.切换到root用户安装MySQL

     yum install mysql / yum install mysql-server

  b.启动MySQL服务

    service mysqld start  (可以使用service mysqld status查看MySQL服务是否正确启动)

  c.将mysqld服务设置为开机自启动

    chkconfig mysqld on

  d.使用mysql_secure_installation 命令来设置mysql密码

    运行该命令后,会提示是否更改mysql密码,这里输入Y。

    然后输入新密码 root,再一次输入新密码root,接下来询问是否删除匿名用户,输入 n;

    紧接着询问是否关闭   root的远程登录,输入 n;

    询问是否删除mysql的测试数据库,输入 n ,然后询问是否重新刷新权限表,输入 Y。 

 e.为了使hive拥有远程登录和访问MySQL的权限,使用mysql -u用户名 -p密码 

    我在d过程中将root的密码设置为root了,所以执行的命令为 mysql -uroot -proot 回车进入MySQL shell

    

   在mysql shell 中执行 grant all on hive.* to 'root'@'%' identified by 'root'; 命令

   在这里,如果root的密码不是root则进行相应的修改

    

   并在MySQL中创建名为hive的数据库,(数据库的名字由javax.jdo.option.ConnectionURL 的 value 中的hive指定)

   

  f.切换到root用户,使用service mysqld restart重启MySQL服务

    

  g.最后还需要安装jdbc的驱动,

    

    利用rpm -qfl mysql-connector-java命令,查找mysql的JDBC驱动jar文件所在位置,

    通常情况放在/usr/share/java/mysql-connector-java.jar,将其拷贝至  $HIVE_HOME/lib目录中,同时修改该文件的权限

7.启动hive,启动之前确保hadoop成功启动

输入hive 回车

进入hive的命令行模式后执行一条简单sql验证hive

例: show databases;

 

posted @ 2014-12-13 16:29  GavinQiu  阅读(1526)  评论(0编辑  收藏  举报