Hive的安装详解

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。hive的元数据信息是存在外部数据库的,这里使用mysql,所以建议先把hadoop装起来(hadoop的安装集群),mysql的安装下面有介绍(建议在同一台机器上,别装windows上不然可能会出现一堆问题)。
1、下载hive,我这里用的是apache-hive-1.2.1-bin.tar.gz,上传到hadoop集群(记得先把hadoop集群启起来)。
2、解压到/root下的apps文件夹下(没有该文件夹自己创建个,名字随意,我这个文件夹下原来解压了hadoop和zookeeper的),并改成个简单的名字hive

[root@mini1 ~]# tar -zxvf apache-hive-1.2.1-bin.tar.gz -C apps
[root@mini1 ~]# cd apps
[root@mini1 apps]# ll
总用量 12
drwxr-xr-x.  8 root   root   4096 10月 17 12:38 apache-hive-1.2.1-bin
drwxrwxr-x. 10 hadoop hadoop 4096 9月  30 22:04 hadoop-2.6.4
drwxr-xr-x. 10 root   root   4096 9月  12 19:05 zookeeper-3.4.6
[root@mini1 apps]# mv apache-hive-1.2.1-bin hive
[root@mini1 apps]# ll
总用量 12
drwxrwxr-x. 10 hadoop hadoop 4096 9月  30 22:04 hadoop-2.6.4
drwxr-xr-x.  8 root   root   4096 10月 17 12:38 hive
drwxr-xr-x. 10 root   root   4096 9月  12 19:05 zookeeper-3.4.6

3、进入配置文件夹,修改hive配置文件(原来的配置文件不动,自己写一个hive-site.xml即可)。

[root@mini1 ~]# cd apps/hive/conf/
[root@mini1 conf]# ll
总用量 188
-rw-rw-r--. 1 root root   1139 4月  30 2015 beeline-log4j.properties.template
-rw-rw-r--. 1 root root 168431 6月  19 2015 hive-default.xml.template
-rw-rw-r--. 1 root root   2378 4月  30 2015 hive-env.sh.template
-rw-rw-r--. 1 root root   2662 4月  30 2015 hive-exec-log4j.properties.template
-rw-rw-r--. 1 root root   3050 4月  30 2015 hive-log4j.properties.template
-rw-rw-r--. 1 root root   1593 4月  30 2015 ivysettings.xml
[root@mini1 conf]# vi hive-site.xml
<configuration>
//连接的mysql地址端口号,没有该数据库则创建
<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>
//mysql驱动
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
//连接的mysql的用户名
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
//连接的mysql的密码
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
</configuration>

注:配置文件不要有英文注释。
4、上传mysql连接jar包(我这里是mysql-connector-java-5.1.28.jar),将mysql的jar包拷贝到apps/hive/lib/下。启动hive(如果没有在本地安装mysql那肯定不行,我这台mini1安装了的。连都不能连接到,那么拷贝完mysqljar包后,进行5来安装mysql)

[root@mini1 ~]# cd apps/hive/lib
mv /root/mysql-connector-java-5.1.28.jar /root/apps/hive/lib
[root@mini1 lib]# ll my*
-rw-r--r--. 1 root root 960372 717 23:27 mysql-connector-java-5.1.34.jar

[root@mini1 lib]# cd ..
[root@mini1 hive]# cd bin
[root@mini1 bin]# ll
总用量 32
-rwxr-xr-x. 1 root root 1031 430 2015 beeline
drwxr-xr-x. 3 root root 4096 1017 12:38 ext
-rwxr-xr-x. 1 root root 7844 58 2015 hive
-rwxr-xr-x. 1 root root 1900 430 2015 hive-config.sh
-rwxr-xr-x. 1 root root  885 430 2015 hiveserver2
-rwxr-xr-x. 1 root root  832 430 2015 metatool
-rwxr-xr-x. 1 root root  884 430 2015 schematool
[root@mini1 bin]# ./hive
但是这个时候可能会报错Terminal initialization failed; falling back to unsupported。这是因为hive包里面有jline2.12而hadoop包里面也有但是版本低,启动会加载到hive,导致冲突问题。只要用jline2.12替换掉本机hadoop里面的即可
[root@mini1 bin]cd ../lib
[root@mini1 lib]# rm -f /root/apps/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar 
[root@mini1 lib]# cp jline-2.12.jar /root/apps/hadoop-2.6.4/share/hadoop/yarn/lib/

如果安装了mysql到第四步就完成了hive的安装启动,否则在本机安装mysql吧,如下。
5、
1)查看CentOS自带的mysql,一般是会自带的

[root@mini3 ~]# rpm -qa | grep mysql
mysql-libs-5.1.66-2.el6_3.i686

2)将自带的mysql卸载掉

[root@mini3 ~]# rpm -qa | grep mysql
mysql-libs-5.1.66-2.el6_3.i686
[root@mini3 ~]# rpm -e --nodeps mysql-libs-5.1.66-2.el6_3.i686
[root@mini3 ~]# rpm -qa | grep mysql
[root@mini3 ~]# 

3)将mysql上传到linux,我这里上传的是 MySQL-5.6.22-1.el6.i686.rpm-bundle.tar。
4)进入/usr/local目录。创建mysql目录,将Mysql解压到该包下

[root@mini3 ~]# cd /usr/local/
[root@mini3 local]# mkdir mysql
[root@mini3 local]# cd mysql
[root@mini3 mysql]# tar -xvf /root/MySQL-5.6.22-1.el6.i686.rpm-bundle.tar 
MySQL-shared-compat-5.6.22-1.el6.i686.rpm
MySQL-server-5.6.22-1.el6.i686.rpm
MySQL-client-5.6.22-1.el6.i686.rpm
MySQL-devel-5.6.22-1.el6.i686.rpm
MySQL-test-5.6.22-1.el6.i686.rpm
MySQL-shared-5.6.22-1.el6.i686.rpm
MySQL-embedded-5.6.22-1.el6.i686.rpm
[root@mini3 mysql]# ll
总用量 209556
-rw-r--r--. 1 7155 wheel 17846912 1124 2014 MySQL-client-5.6.22-1.el6.i686.rpm
-rw-r--r--. 1 7155 wheel  3167112 1124 2014 MySQL-devel-5.6.22-1.el6.i686.rpm
-rw-r--r--. 1 7155 wheel 83110552 1124 2014 MySQL-embedded-5.6.22-1.el6.i686.rpm
-rw-r--r--. 1 7155 wheel 54647656 1124 2014 MySQL-server-5.6.22-1.el6.i686.rpm
-rw-r--r--. 1 7155 wheel  1886612 1124 2014 MySQL-shared-5.6.22-1.el6.i686.rpm
-rw-r--r--. 1 7155 wheel  4141492 1124 2014 MySQL-shared-compat-5.6.22-1.el6.i686.rpm
-rw-r--r--. 1 7155 wheel 49769856 1124 2014 MySQL-test-5.6.22-1.el6.i686.rpm

5)在/usr/local/mysql下安装mysql
安装服务器端:rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm
安装客户端:rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm
但是可能会出现以下错误,缺少了依赖的关系,执行yum命令后再重新安装即可。

[root@mini3 mysql]# rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm
error: Failed dependencies:
        /usr/bin/perl is needed by MySQL-server-5.6.22-1.el6.i686
        libaio.so.1 is needed by MySQL-server-5.6.22-1.el6.i686
        libaio.so.1(LIBAIO_0.1) is needed by MySQL-server-5.6.22-1.el6.i686
        libaio.so.1(LIBAIO_0.4) is needed by MySQL-server-5.6.22-1.el6.i686
[root@mini3 mysql]#yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6
[root@mini3 mysql]#yum  update libstdc++-4.4.7-4.el6.x86_64
[root@mini3 mysql]# yum install perl

6)将mysql加到系统服务中并设置开机启动

[root@mini3 mysql]#chkconfig --add mysql
[root@mini3 mysql]#chkconfig mysql on

7)启动mysql

[root@mini3 mysql]#service mysql start

8)登录mysql,mysql安装好后会生成一个临时随机密码,存储位置在/root/.mysql_secret,复制下来。

[root@mini3 ~]# mysql -u root -p
Enter password: 粘贴刚复制的密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 5.6.22 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> 

9)修改mysql的密码,不然都不能进行操作sql相关操作

mysql>set password = password('root');

注:因为hive和mysql我都是安装在同一台机器mini1上的,所以是本地连接,所以我的hive的配置文件hive-site.xml中的连接写的是localhost。但是:默认情况下mysql为安全起见,不支持远程登录mysql,所以需要设置开启 远程登录mysql的权限
登录mysql后输入如下命令:
grant all privileges on . to ‘root’ @’%’ identified by ‘root’;
flush privileges;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值