开发者学堂课程【2020版大数据实战项目之 DMP 广告系统(第二阶段): CDH 搭建_Hive_安装和创建用户】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/677/detail/11775
CDH 搭建_Hive_安装和创建用户
一、安装 Hive
因为 Hive 需要使用 MySQL 作为元数据库,所以需要在 MySQL 为 Hive 创建用户,创建对应的表。因为并不需要 Hive 的 HA,所以在单机部署 Hive 即可。首先需要安装Hive的样包,需要先将 Hive 一样的安装到机器中,然后在 mysql 中创建账号,继而进行连接,也可以将 rot 用户给 Hive,但是安全性比较低。甚至可能出现 bug 之后,将整个数据库都删除了。所以要为 Hive 单独准备一个用户。第三步就是配置Hive让MySQL 知道如何连接 MySQL;第四步是初始化 Hive 在 mysql 中的一个表结构;第五步是启动 Hive。
1、安装 Hive 软件包
安装 Hive 依然使用 CDH 的 Yum 仓库yum install -y hive hive-metastore hive-server2
如果想要 Hive 使用 MySQL 作为元数据库,那需要给Hive 一个 MySQL的 JDBC 包yum install -y mysql-connector-java
ln -s /usr/share/java/mysql-connector-java.jar /usr/lib/hive/lib/mysql-connector-java.jar
操作:
[ root@cdh01 etc]# cldear
-bash : cldear: command not found
[ root@cdhe1 etc]#.
[ root@cdhe1 etc]# cd ~
[root@cdh01 ~]# yum install -y hive hive-metastore hive-server2.
以往使用 Hive 都是只有一个Hive命令,但是现在安装了三个服务,意思就是将这三个 Hive 命令分别独立出来了,分别对应三个命令,例如直接启动metastore就可以直接启动 meta store,由此可以体现出 cd 的人性化,接下来进行安装,安装成功。
Running rpm_check_ debug
Running Transaction Test
Transaction Testsucceeded
Running Transaction
Installing : hive-jdbc-1.1.0+cdh5.16.1+1431-1.cdh5.16.1.p0.3.el6.noarch
Installing : bigtop-tomcat-0.7.0+cdh5.16.1+0-1.cdh5.16.1.p0.3.el6.noarch
Installing : hive-1.1.0+cdh5.16.1+1431-1.cdh5.16.1.p0.3.el6.noarch
Installing : sentry-1.5.1+cdh5.16.1+559-1.cdh5.16.1.p0.3.el6.noarch
Installing : solr-4.10.3+cdh5.16.1+532-1.cdh5.16.1.p0.3.el6.noarch
The following warning applies to any collections configured to
use Non-Solrcloud mode. Any such collection configuration will
need to be upgraded, see upgrading cloudera Search for details.
Installing : hive-server2-1.1.0icdh5.16.1+1431-1.cdh5.16.1.p0.3.el6.noarch
Installing : hive-metastore-1.1.0+rdh5.16.1+1431-1.cdh5.16.1.p0.3.el6.noarch
Verifying: bigtop-tomcat-0.7.0+cdh5.16.1+0-1.cdh5.16.1.p0.3.el6.noarch
verifying: sentry-1.5.1+cdh5.16.1+559-1.cdh5.16.1.p0.3.el6.noarch
Verifying: hive-jdbc-1.1.0+cdh5.16.1+1431-1.cdh5.16.1.p0.3.el6.noarch
Verifying: hive-server2-1.1.0+cdh5.16.1+1431-1.cdh5.16.1.p0.3.el6.noarch
Verifying: hive-metastore-1.1.0+cdh5.16.1+1431-1.cdh5.16.1.p0.3.el6.noarch
Verifying: hive-1.1.0+cdh5.16.1+1431-1.cdh5.16.1.p0.3.el6.noarch
verifying: solr-4.10.3+cdh5.16.1+532-1.cdh5.16.1.p0.3.el6.noarch
Installed:
hive.noarch 0:1.1.0+cdh5.16.1+1431-1.cdh5.16.1.p0.3.el6
hive-metastore.noarch 0:1.1.0+cdh5.16.1+1431-1.cdh5.16.1.p0.3.el6hive-server2.noarch 0:1.1.0+cdh5.16.1+1431-1.cdh5.16.1.p0.3.el6
Dependency Installed:
bigtop-tomcat.noarch 0:0.7.0+cdh5.16.1+0-1.cdh5.16.1.p0.3.el6hive-jdbc.noarch 0:1.1.0+cdh5.16.1+1431-1.cdh5.16.1.p0.3.el6
sentry.noarch 0:1.5.1+cdh5.16.1+559-1.cdh5.16.1.p0.3.el6
solr.noarch 0:4.10.3+cdh5.16.1+532-1.cdh5.16.1.p0.3.el6
接下来还需要安装一个 cd 版本特有的步骤,安装 mysql 的一个 gdbc 的架包。架包可以在 mysql 数据库中找到
[ root@cdh01 ~]# yum install -y nysgl-connector-javal
mysgl-connector-javal 就是 mysql gdbc 的包,现在相当于将 mysql 的架包下载到目录中,依赖这么多东西的原因在于装这个包的时候依赖了很多其他架包和工具。
查看包的位置
[ root@cdh01 ~]# cd /usr/share/ j ava
[ rootd dh01 java]# Ls
发现很多刚刚下载的包:slf4j\wsdl4j.jar \mysql-connector-java-5.1.17.jar 上面的架包和下面的架包是一样的,下面的架包是上面的软链接,接下来将这个架包拷贝到hive目录内,mysql是需要一个架包连接这个目录,导入不需要直接将架包拷过去,只需要生成一个软链接。
[ root@cdh01 java]# Ln -S /usr/ share/ java/mysql -connec tor- java.jar/user/lib/hive/lib/hive/mysql-connector-java.jar
原本的Hive包就在lib下
软链接:
[ root@cdh01 java]# cd /usr/Lib
[ rootacdh0l tib]# Ls
anac Gnda- runt ime
hadoop
java
java-1.6.0
j vm-exports
r pm
yum -
plugins
avro
hadoop-0.20 -mapreduce java-1.3.1 java-1.7.0
j vm-private sendmail
Z ookeepe r
bigtop tomcat
hadoop-hdfs
java-1.4.0 java-1.8.0
Locale
sendmail . postfix
bigtop-utils
hadoop -map reduc e
java-1.4.1
java-ext
Lsb
sentry
ConsoleKit
hadoop-yarn
java-1.4.2 j Vm
parquet
solr
games
hive
java-1.5.0 j Vm- C ommmon python2. 6
tmpfiles.d
装的很多东西原本的程序包就在 libuser 下,进入更深一级,发现是非常熟悉的目录结构,
[ root@cdh0l Lib]# cd hive
[ root@cdh01 hive]# Ls
auxlib bin C Loude ra conf data doc s lib L ICENSE NOTICE REL EASE NOTES. txt
scripts sentry
[ root@cdh0l Lib]# cd lib
能看到刚才 mysql 中的包:mysql-connector-java.jar
这样就给 hive 增加了 mysql 连接的数据库,
3.配置 Hive
先进入 mysql,进行 hive 连接 mysql 所使用的用户名创建出来,
I [ root@cdh01 lib]# mysqL -u root p
Enter passwo rd:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.6.44 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. ALL rights reserved.
Oracle is a registered t rademark of Oracle Corporation and/or its
affiliates. other names may be t rademarks of their respective
owners .
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> C reate database metastore;
为 hive 存储原信息的数据库,
mysql> create database metastore;
Query 0K, 1 row affected (0.02 sec )
mysql> use metastore ;
Database changed
创建 Hive 用户
mysql> create user “hive”‘@’%’ identified by’hive’
//%代表所有位置允许登录
假如只用用户在本地登录,“hive”‘@’localhost’,在 create 的时候还需要指定一个密码,用户就创建出来了,但是用户目前还没有访问 metastore 的权限
mysql> revoke all privileges, grant option from 'hive'@'%' ;Query 0K, 0 rows affected (0.00 sec )
就是使用 metastore 所有表的权限
mysql> grant a1u privileges on metastore.* to‘hive@’%/;
Query 0K, 0 rows affected (0.00 sec )
mysql> flush privileges ;
Query 0K, 0 rows affected (0.00 sec )
revoke all privileges, grant option from 'hive'@'%' ;
收回所有权限,收回hive撤销权限,收回'hive'@'%',因为用户刚创立。
grant all privileges on metastore.* to‘hive@’%
/;赋予权限,赋予所有的权限,赋予 metastore 所有表的权限给 hive,这个位置在哪里有权限,在所有位置都有权限。
flush privileges ;
刷新权限。