构建数据仓库赛题解析

 系列文章目录

“红亚杯”-大数据环境搭建与数据采集技能线上专题赛赛题

集群安装搭建赛题解析

目录

构建数据仓库赛题解析

前言

在此鸣谢

资料链接

hive介绍

安装数据库(5 / 5分)

安装并配置MySQL

设置MySQL密码

MySQL 密码安全策略

远程登录MySQL 

Hive基础环境配置(8 / 8分)

hive基础环境配置

配置HIVE元数据至MySQL(9 / 9分)

导入MySQL依赖包

slave1:hive-site.xml

配置HIVE客户端(3 / 3分)

master:hive-site.xml

启动Hive(5 / 5分)


构建数据仓库赛题解析

前言

根据“红亚杯”-大数据环境搭建与数据采集技能线上专题赛以及鈴音.博主文章结合整理,附上资料链接。

在此鸣谢

鈴音.

资料链接

链接:https://pan.baidu.com/s/1ssv79w85JKAF7wjPBd-Eyw 
提取码:vd1a

hive介绍

hive表面意思是蜂巢,Hive 是基于 Hadoop 的数据仓库。

互联网现在进入了大数据时代,大数据是现在互联网的趋势,而 Hadoop 就是大数据时代里的核心技术。

但是 Hadoop 的 MapReduce 操作专业性太强。

所以 Facebook 在这些基础上开发了 Hive 框架。

毕竟世界上会 SQL 的人比会 Java 的人多的多。

hive 可以说是学习 Hadoop 相关技术的一个突破口。

  • slave2安装mysql server用于存放元数据;

  • slave1作为hive server作为thrift 服务器;

  • master作为client客户端进行操作。

Hive Metastore服务将Hive表和分区的元数据存储在关系数据库中,并提供Metastore服务API供客户端(包括Hive)访问元数据。

安装数据库(5 / 5分)

1.环境中已经安装mysql-community-server,注意mysql5.7默认安装后为root用户随机生成一个密码;

  • 直接查看密码:grep "temporary password" /var/log/mysqld.log
  • 登入数据库:mysql -uroot -p
  • 输入随机密码即可登录

2.根据要求设置密码,注意对应的安全策略修改;

  • 设置密码强度为低级:set global validate_password_policy=????;
  • 设置密码长度:set global validate_password_length=????;
  • 修改本地密码:alter user 'root'@'localhost' identified by '????';

3.根据要求满足任意主机节点root的远程访问权限(否则后续hive无法连接mysql);

  • GRANT ALL PRIVILEGES ON *.* TO '????'@'%' IDENTIFIED BY '????' WITH GRANT OPTION;

4.注意刷新权限;

  • flush privileges;

5.参考命令

  • 启动mysql服务:sudo systemctl start mysqld.service
  • 关闭mysql服务:sudo systemctl stop mysqld.service
  • 查看mysql服务:sudo systemctl status mysqld.service

考核条件如下:

安装并配置MySQL

1. 判断是否安装mysql-community-server(1.00 / 1分)

操作环境: slave2

卸载系统自带的Mariadb

rpm -qa|grep mariadb
rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps

 安装MySQL

mkdir -p /usr/mysql
tar -xvf /usr/package/mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar -C /usr/mysql/

安装 MySQL 组件

使用 rpm -ivh 命令依次安装以下组件:

(1)首先安装 mysql-community-common (服务器和客户端库的公共文件),使用命令:

rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm

若是出现“100%”,则表示安装成功:

(2)其次安装 mysql-community-libs(MySQL 数据库客户端应用程序的共享库),使用命令:

rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm

 若是出现“100%”,则表示安装成功:

(3)之后安装 mysql-community-libs-compat(MySQL 之前版本的共享兼容库),使用命令:

rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm

若是出现“100%”,则表示安装成功

(4)之后安装 mysql-community-client(MySQL 客户端应用程序和工具),使用命令:

rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm

若是出现“100%”,则表示安装成功:

(5)最后安装 mysql-community-server(数据库服务器和相关工具),使用命令:

rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm

若是出现“100%”,则表示安装成功:

2. 判断是否开启MySQL服务(1.00 / 1分)

操作环境: slave2

启动MySQL服务

重载所有修改过的配置文件:

systemctl daemon-reload

开启服务:

systemctl start mysqld

开机自启:

systemctl enable mysqld

设置MySQL密码

3. mysqld.log日志下生成初临时密码(1.00 / 1分)

操作环境: slave2

安装完毕后,/var/log/mysqld.log 文件中会自动生成一个随机的密码,我们需要先取得这个随机密码,以用于登录 MySQL 服务端:

grep "temporary password" /var/log/mysqld.log
mysql -uroot -p

MySQL 密码安全策略

4. 设置MySQL本地root用户密码为123456(2.00 / 2分)

操作环境: slave2

设置密码强度为低级:

set global validate_password_policy=0;

设置密码长度:

set global validate_password_length=4;

修改本地密码:

alter user 'root'@'localhost' identified by '123456';

退出:\q

远程登录MySQL 

以新密码登陆 MySQL:

mysql -uroot -p123456 

创建用户:

create user 'root'@'%' identified by '123456'; 


允许远程连接:

grant all privileges on *.* to 'root'@'%' with grant option;

刷新权限:

flush privileges;

 

Hive基础环境配置(8 / 8分)

Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。

1.将指定版本的Hive安装包解压到指定路径,添加系统并生效;
2.修改Hive运行环境

# 配置Hadoop安装路径
export HADOOP_HOME=????
# 配置Hive配置文件存放路径为conf
export HIVE_CONF_DIR=????
# 配置Hive运行资源库路径为lib
export HIVE_AUX_JARS_PATH=????

3.由于客户端需要和Hadoop通信,为避免jline版本冲突问题,将Hive中lib/jline-2.12.jar拷贝到Hadoop中,保留高版本.

考核条件如下:

hive基础环境配置

1. 将Hive安装包解压到指定路径/usr/hive(安装包存放于/usr/package/)(2.00 / 2分)

操作环境: master、slave1

2. 设置HIVE系统环境变量($HIVE_HOME)(2.00 / 2分)

操作环境: master、slave1

设置环境变量:

vim /etc/profile

 添加以下内容:

#hive 
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin 
export PATH=$PATH:$HIVE_HOME/bin

 生效环境变量:

source /etc/profile

传到slave1并使其生效:

 

3. 设置HIVE运行环境(2.00 / 2分)

操作环境: master、slave1

在master,slave1上,修改 hive-env.sh 中 HADOOP_HOME 环境变量。

cd /usr/hive/apache-hive-2.1.1-bin/conf
cp -p hive-env.sh.template hive-env.sh
vim hive-env.sh

 

添加以下内容:

export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export HIVE_CONF_DIR=/usr/hive/apache-hive-2.1.1-bin/conf
export HIVE_AUX_JARS_PATH=/usr/hive/apache-hive-2.1.1-bin/lib

4. 解决jline的版本冲突(2.00 / 2分)

操作环境: master、slave1

hadoop和hive的jar包版本不同,保留一个高版本的jar包,删掉低版本的jar包。

slave1和master上执行

cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/
rm -rf /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/guava-11.0.2.jar
cp /usr/hive/apache-hive-2.1.1-bin/lib/guava-14.0.1.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/

 

配置HIVE元数据至MySQL(9 / 9分)

1.slave1作为服务器端需要和Mysql通信,所以服务端需要将Mysql的依赖包放在Hive的lib目录下。
mysql-connector-java是MySQL的JDBC驱动包,用JDBC连接MySQL数据库时必须使用该jar包。

2.配置文件参考:

<configuration>
<!-- Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>????</value>
</property>
<!-- 数据库连接driver,即MySQL驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>????</value>
</property>
<!-- 数据库连接JDBC的URL地址-->
<property>
<name>javax.jdo.option.ConnectionURL</name> 
<value>jdbc:mysql://????:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
</property>
<!-- MySQL数据库用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>????</value>
</property>
<!-- MySQL数据库密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>????</value>
</property>
</configuration>

考核条件如下:

导入MySQL依赖包

1. 驱动拷贝(依赖包存放于/usr/package/)(2 / 2分)

操作环境: slave1

因为服务端需要和 MySQL通信,所以服务端需要 MySQL的 lib 安装包到 Hive_Home/conf 目录下。
注意:mysql.jar 放在 slave2 中的目录下,需要将其远程复制到 slave1的 hive 的 lib 中。
将jar包传至slave2中,再执行。

scp mysql-connector-java-5.1.47-bin.jar root@slave1:/usr/hive/apache-hive-2.1.1-bin/lib

slave1:hive-site.xml

2. 配置元数据数据存储位置为/user/hive_remote/warehouse(1 / 1分)

操作环境: slave1

3. 配置数据库连接驱动为MySQL(2 / 2分)

操作环境: slave1

4. 配置连接JDBC的URL地址主机名及默认端口号3306,数据库为hive,如不存在自行创建,ssl连接方式为false(2 / 2分)

操作环境: slave1

5. 配置数据库连接用户(1 / 1分)

操作环境: slave1

6. 配置数据库连接密码(1 / 1分)

操作环境: slave1

 编辑hive-site.xml

vim hive-site.xml

 添加以下内容:

<configuration>
  <!--Hive产生的元数据存放位置-->
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive_remote/warehouse</value>
</property>
    <!--数据库连接JDBC的URL地址-->
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>
	<description>JDBC connect string for a JDBC metastore</description>
</property>
    <!--数据库连接driver,即MySQL驱动-->
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
</property>
    <!--MySQL数据库用户名-->
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
</property>
    <!--MySQL数据库密码-->
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
 </property>
<property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
 </property>
<property>
    <name>datanucleus.schema.autoCreateALL</name>
    <value>true</value>
 </property>
</configuration>

 

配置HIVE客户端(3 / 3分)

1.master作为客户端,可进入终端进行操作;
2.关闭本地模式;
3.将hive.metastore.uris指向metastore服务器URL;
4.配置文件参考:

<configuration> 
<!-- Hive产生的元数据存放位置--> 
<property> 
    <name>hive.metastore.warehouse.dir</name> 
    <value>????</value> 
</property> 
<!--- 使用本地服务连接Hive,默认为true--> 
<property> 
    <name>hive.metastore.local</name> 
    <value>????</value> 
</property>
 <!-- 连接服务器--> 
<property> 
    <name>hive.metastore.uris</name> 
    <value>thrift://????</value> 
</property> 
</configuration> 

考核条件如下:

master:hive-site.xml

1. 配置元数据存储位置为/user/hive_remote/warehouse(1 / 1分)

操作环境: master

2. 关闭本地metastore模式(1 / 1分)

操作环境: master

3. 配置指向metastore服务的主机为slave1,端口为9083(1 / 1分)

操作环境: master

编辑hive-site.xml

 vim hive-site.xml

 

 添加以下内容:

<configuration>

<!--Hive产生的元数据存放位置-->
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive_remote/warehouse</value>
</property>
    
<!---使用本地服务连接Hive,默认为true-->
<property>
    <name>hive.metastore.local</name>
    <value>false</value>
</property>

<!--连接服务器-->
<property>
    <name>hive.metastore.uris</name>
    <value>thrift://slave1:9083</value>
</property>
</configuration>

启动Hive(5 / 5分)

1.服务器端初始化数据库,并启动metastore服务;
2.客户端开启Hive client,即可根据创建相关数据操作。

考核条件如下:

1. 初始化数据库,启动metastore服务,开启客户端(5 / 5分)

操作环境: slave1、master

每次启动hive前要先启动hadoop,不然就会报错:

启动hadoop(master上执行):

cd /usr/hadoop/hadoop-2.7.3/
sbin/start-all.sh

初始化数据库(slave1上执行):

schematool -dbType mysql -initSchema

 slave1上执行:

cd /usr/hive/apache-hive-2.1.1-bin
bin/hive --service metastore

 

 master上执行:

cd /usr/hive/apache-hive-2.1.1-bin
bin/hive

 

 出现hive>后执行show databases;进行测试

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕铭yikm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值