开发者学堂课程【2020版大数据实战项目之 DMP 广告系统(第二阶段): CDH 搭建_Hive_搭建完成】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/677/detail/11776
CDH 搭建_Hive_搭建完成
一、CDH 搭建_Hive_搭建
之前进行了前两步,第一步安装 hive 软件包,第二步在 mysql 中增加 hive 用户。还有三步要做,配置 hive,初始化 hive 在 mysql 中的表结构,以及启动 hive。这就是大致的步骤,步骤在笔记里面都有详细的解释。
1. 配置 Hive
第一步拷贝配置文件
MySQL>exit
Bye
[ root@cdh01 lib]#clear
[ root@cdh01 lib]# vi /etc/hive/conf/hive-site.xml
然后 insert,将刚才拷贝的内容粘贴进来
jdo .option . ConnectionURL
就是配置的 mysql 的 URL
第二个配置是 driver 的名称,driver 如果要使它连接 mysql,就需要将价包导入进来,但是在阿帕奇的版本里面默认得是有 mysql 的价包,对于 CDH 版本,还需要手动导入一下。使用的 user 名字是 hive,密码也是 hive。使用 autoCreateSchema 就是不让其自动创建 schema。
在启动 Hive 之前,要配置 Hive 一些参数,例如使用 MySQL 作为数据库之类的配置Hive 的配置文件在 /etc/hive/conf/hive-site.xml ,修改它为如下内容<!-- /usr/lib/hive/ conf/hive-site.xml -->
Hproperty>
<namejavax. jdo .option . ConnectionURL</name>
<value>jdbc : mysql: / / cdh01/ metastore
</value></property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com. mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName
</name><value>hive</value>
</property>
<property>
<name>javax.jdo.optionConnectionPassword</name>
<value>hive</value>
</property>
property>
<name>datanucleus.autoCreateSchema</name>
<value>false
</value><name>hive.metastore.uris</name>
cvalue>thrift:// cdh01:9083</value>
</property>
将 metastore 的 uris 设置为9083
</property>
<property>
<name>datanucleus.fixedDatastorec/name>
<value>true</value>
</ property>
<property>
<name>datanucleus .autoStartMechanism</name>
<value>SchemaTable</value>
property
<namez-hive.metastore.schema . verification</name>
cvalue>true</ value/property>
property
<name>-hive.support.concurrency</names
<description>Enable Hive's Table Lock Manager Service</description><value>true</value>
<property>
property
<name>-hive.support.concurrency</nameo
<value>true</value>
<property>
<name-hive.zookeeper.quorum</name>
<value>cdh01</ values
指定 keeper 的位置
2. 初始化 Hive 在 MySQL 中的表结构
虽然现在 hive 能连上 MySQL,但是 MySQL 中没有任何所需要的表,也可以手动执行 hive 语句,但是 hive 已经为我们提供了一个工具。
初始化schematol
[root@cdh01 lib]# vi /etc/hive/conf/hive-site.xml
[root@cdh01 lib]# /usr/lib/hive/bin/schematool -dbType mysql -initSchema-password hive -userName hive -url
usr/lib/hive/bin/schematool
就是 hive 原始包里面的 schematool
/usr/lib/hive/bin/schematool 读取 hive 的文件,/usr/lib/hive/bin 就是 hive 源文件的包。
执行命令,等待执行。
就完成了表的初始化,
查看
Mysql > show databases
有数据库metastore,
mysql> use metastore;
Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables
发现有很多的表,其中有些是权限相关的,有些表是版本。都是源信息的库和表。
退出 mysql,进行下一步的操作,
3.启动Hive
下一本是启动 hive,启动其中一个重要的服务,hive-metasotore,
[ root@cdh01 lib]# service hive-metastore startStarting Hive Metastore (hive-metastore) :[oK]
再打开一个服务,来接收外部 sql 查询的一个服务,start 之后就有了 gdbc 相关的支持,也可以使用 beeline 来进行一个连接尝试。
[ root@cdhe1 lib]# service hive-server2 startstarted Hive Server2 (hive-server2):
[oK]
[root@cdh01 lib]# beeline
[ root@cdhe1 lib]# beeline
which:nohbasein(/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.8.0_211/bin:/root/binBeeline version 1.1.0-cdh5.16.1 by Apache Hive
beeline>!connect jdbc:hive2://cdh01:10000 username password org.apache.hive.jdbc.HiveDrivef
连接命令不需要记住,可以复制拷贝的,这个时候再进行连接就可以发现已经可以连接到 jdbc 上了,然后 show table 查看表
Hive 执行速度很慢,执行完成发现只有一个库:default 退出:
0: jdbc :hive2: //cdh01: 10000>[root@cdh01 lib]#clear
链接 hive 没有问题,可以继续安装 kudu。