栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

构建数据仓库赛题解析

构建数据仓库赛题解析

 系列文章目录

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

集群安装搭建赛题解析

目录

构建数据仓库赛题解析

前言

在此鸣谢

资料链接

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/1ytGL3cLGQxGltl5bHrSBQQ 
提取码:yikm 

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.配置文件参考:




hive.metastore.warehouse.dir
????



javax.jdo.option.ConnectionDriverName
????



javax.jdo.option.ConnectionURL 
jdbc:mysql://????:3306/hive?createDatabaseIfNotExist=true&useSSL=false



javax.jdo.option.ConnectionUserName
????



javax.jdo.option.ConnectionPassword
????


考核条件如下:

导入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

 添加以下内容:


  

    hive.metastore.warehouse.dir
    /user/hive_remote/warehouse

    

    javax.jdo.option.ConnectionURL
    jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false
	JDBC connect string for a JDBC metastore

    

    javax.jdo.option.ConnectionDriverName
    com.mysql.jdbc.Driver

    

    javax.jdo.option.ConnectionUserName
    root

    

    javax.jdo.option.ConnectionPassword
    123456
 

    hive.metastore.schema.verification
    false
 

    datanucleus.schema.autoCreateALL
    true
 

 

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

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

 
 
 
    hive.metastore.warehouse.dir 
    ???? 
 
 
 
    hive.metastore.local 
    ???? 

  
 
    hive.metastore.uris 
    thrift://???? 
 
 

考核条件如下:

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

 

 添加以下内容:





    hive.metastore.warehouse.dir
    /user/hive_remote/warehouse

    


    hive.metastore.local
    false




    hive.metastore.uris
    thrift://slave1:9083


启动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;进行测试

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/350639.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号