【十八掌●武功篇】第十掌:Hive之安装过程实践

这一篇博文是【大数据技术●降龙十八掌】系列文章的其中一篇,点击查看目录:这里写图片描述大数据技术●降龙十八掌


小系列列表
【十八掌●武功篇】第十掌:Hive之基本语法
【十八掌●武功篇】第十掌:Hive之原理与优化
【十八掌●武功篇】第十掌:Hive之高级知识
【十八掌●武功篇】第十掌:Hive之安装过程实践

1、 安装Hive

(1) 选择CDH版本的
选择版本hive-0.13.1-cdh5.3.6.tar.gz
(2) 解压文件
[hadoop@bigdata-senior03 sofeware]$ tar -zxf hive-0.13.1-cdh5.3.6.tar.gz -C /opt/modules/
这里写图片描述

2、 配置Hive

(1) 配置环境变量
设置HADOOP_HOME变量:
[hadoop@bigdata-senior03 hive-0.13.1-cdh5.3.6]$ vim /etc/profile
这里写图片描述
(2) 复制配置文件
从模板复制文件:
[hadoop@bigdata-senior03 hive-0.13.1-cdh5.3.6]$ cp conf/hive-default.xml.template conf/hive-site.xml
[hadoop@bigdata-senior03 hive-0.13.1-cdh5.3.6]$ cp conf/hive-env.sh.template conf/hive-env.sh
[hadoop@bigdata-senior03 hive-0.13.1-cdh5.3.6]$ cp conf/hive-exec-log4j.properties.template conf/hive-exec-log4j.properties
[hadoop@bigdata-senior03 hive-0.13.1-cdh5.3.6]$ cp conf/hive-log4j.properties.template conf/hive-log4j.properties
(3) 修改hive-env.sh
[hadoop@bigdata-senior03 hive-0.13.1-cdh5.3.6]$ vim conf/hive-env.sh
添加JAVA_HOME参数
export JAVA_HOME=/opt/modules/jdk1.7.0_67
这里写图片描述
(4) 修改hive-site.xml
hive-site.xml文件有一个bug,在第2783行后面缺少一个标签。需要补全property标签。
这里写图片描述

3、 安装MySQL数据库

Hive对mysql要去是最低版本为5.6.17版本的。用yum安装mysql可能需要更新yum源的版本。

(1) 更新yum mysql版本

● 下载mysql 的rpm文件:mysql57-community-release-el6-8.noarch.rpm
● 安装rpm,更新yum源里的mysql版本。

[hadoop@bigdata-senior03 hive-0.13.1-cdh5.3.6]$ sudo rpm -Uvh /opt/sofeware/mysql57-community-release-el6-8.noarch.rpm

● 查看yum源里的mysql
[hadoop@bigdata-senior03 hive-0.13.1-cdh5.3.6]$ cd /etc/yum.repos.d/
这里写图片描述
● 修改mysql-community.repo和mysql-community-source.repo文件
在两个文件中,将mysql5.7中的enabled改为0,将MySQL5.6中的enabled改为1。这样yum安装时就安装mysql5.6版本了。
这里写图片描述

(2) yum 安装mysql

[hadoop@bigdata-senior03 yum.repos.d]$ sudo yum -y install mysql-community-server

(3) 启动mysql

[hadoop@bigdata-senior03 yum.repos.d]$ sudo service mysqld start

(4) mysql 安全性设置

●安装完成后,默认root用户是没有密码的,并且有一些匿名用户,查看用户可以以下命令。
用root用户登录mysql : [hadoop@bigdata-senior03 yum.repos.d]$ mysql –uroot
切换到mysql库:mysql> use mysql;
● 用脚本初始化权限

[hadoop@bigdata-senior03 yum.repos.d]$ sudo mysql_secure_installation

这种初始化方式只适合于MySql 5.6版本。
提示输入当前root密码,当前密码为空:Enter current password for root (enter for none):
提示是否设置root密码: Set root password? [Y/n] y
提示是否移除匿名用户:Remove anonymous users? [Y/n] y
提示是否禁用root远程登录:Disallow root login remotely? [Y/n] n
提示是否移除test数据库:Remove test database and access to it? [Y/n] n
提示是否重新加载权限:Reload privilege tables now? [Y/n] y

● 再次查看用户信息
用root和密码登录: [hadoop@bigdata-senior03 yum.repos.d]$ mysql -uroot -p123456
切换到mysql库: mysql> use mysql;
查看用户信息,已经有了密码,并且匿名用户已经被删除了。

● 给root设置所有权限

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456'with grant option;

刷新权限。

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4、 在远程MySQL存储模式配置

(1) 部署架构图

这里写图片描述

hive 元数据存储在远程mysql数据库上,是通过MetaStore来进行访问的。所以要配置一个metastore服务。

(2) 配置hive-env.sh

配置好JAVA_HOME和HADOOP_HOME
这里写图片描述

配置了HADOOP_HOME参数后,hive就可以知道Hadoop在哪里,数据存储在哪里了。

(3) 修改hive-site.xml文件

●将hive.metastore.uris属性设置为thrift://bigdata-senior03.chybinmy.com:9083
这个是设置metastore服务在哪个机器上,端口是什么。thrift是一种协议,用于不同语言程序间,利用RPC(远程过程调用)方式进行通讯。

这里写图片描述

● 修改javax.jdo.option.ConnectionURL属性为:jdbc:mysql://bigdata-senior03.chybinmy.com:3306/remote_db?createDatabaseIfNotExist=true
javax.jdo.option.ConnectionURL属性的默认值为:
这里写图片描述

derby是hive默认的存储元数据的数据库,一般不用这个数据库,用mysql数据库。
这个是配置mysql的连接字符串,bigdata-senior03.chybinmy.com是mysql所在的主机名,remote_db是存储元数据的数据块名,createDatabaseIfNotExist是指如果数据库不存在就自动创建。

● 修改javax.jdo.option.ConnectionDriverName
这里写图片描述

● 修改连接Mysql的用户名和密码
这里写图片描述

(4) 拷贝mysql连接驱动包

metastore连接mysql需要有一个mysql连接驱动包,这里选择驱动包mysql-connector-java-5.1.26-bin.jar,将这个驱动包拷贝到hive根目录下的lib目录下。

[hadoop@bigdata-senior03 hive-0.13.1-cdh5.3.6]$ cp /opt/sofeware/mysql-connector-java-5.1.26-bin.jar /opt/modules/hive-0.13.1-cdh5.3.6/lib/

(5) 启动metastore服务

必须先启动metastore服务,再启动hive

[hadoop@bigdata-senior03 hive-0.13.1-cdh5.3.6]$ hive --service metastore

将metastore服务设置为守护进程

[hadoop@bigdata-senior03 hive-0.13.1-cdh5.3.6]$ nohup hive --service metastore > hive_metastore.run.log 2>&1 &

5、 启动Hadoop

start-dfs.sh

6、 启动Hive

此时,执行hive客户端,访问的元数据就是通过metastore来访问mysql上存储的元数据了。

7、 测试hive

(1) 创建hive表

hive> use default;
hive> create table demo1 (id int,name string);
hive> show tables;
demo1

(2) HDFS查看数据

hive表的数据实际是存储在HDFS的指定目录下的一个文件。
这里写图片描述


这一篇博文是【大数据技术●降龙十八掌】系列文章的其中一篇,点击查看目录:这里写图片描述大数据技术●降龙十八掌

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值