Hive安装配置(容器环境)大数据职业技能竞赛

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

提前准备MySQL服务

看这篇文章MySQL-5.7数据库离线安装

环境说明:

服务端登录地址详见各任务服务端说明。
补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问;
相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略;
所有任务中应用命令必须采用绝对路径;
进入Master节点的方式为
docker exec -it master /bin/bash
进入Slave1节点的方式为
docker exec -it slave1 /bin/bash
进入Slave2节点的方式为
docker exec -it slave2 /bin/bash
三个容器节点的root密码均为123456

提前准备好apache-hive-3.1.2-bin.tar.gz、mysql-connector-java-5.1.37.jar放在宿主机的/opt/下(模拟的自己准备,比赛时会提供)

Hadoop 完全分布式安装配置

 环境搭建请看这篇文章大数据模块A环境搭建

前提条件已经在容器里搭建完hadoop了,没搭建的请看这篇Hadoop 完全分布式安装配置

Hive安装配置

本任务需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:

1、 从宿主机/opt目录下将文件apache-hive-3.1.2-bin.tar.gz、mysql-connector-java-5.1.37.jar复制到容器Master中的/opt/software路径中(若路径不存在,则需新建),将Master节点Hive安装包解压到/opt/module目录下,将命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

第一步:从宿主机/opt目录下将文件apache-hive-3.1.2-bin.tar.gz、mysql-connector-java-5.1.37.jar复制到容器Master中的/opt/software路径中(若路径不存在,则需新建)
[root@Bigdata ~]# docker cp /opt/apache-hive-3.1.2-bin.tar.gz master:/opt/software
[root@Bigdata ~]# docker cp /opt/mysql-connector-java-5.1.37.jar master:/opt/software
第二步:将Master节点Hive安装包解压到/opt/module目录下
[root@master ~]# tar zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/

        重命名

[root@master ~]# mv /opt/module/apache-hive-3.1.2-bin /opt/module/hive

2、 设置Hive环境变量,并使环境变量生效,执行命令hive --version并将命令与结果截图容复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

第一步:设置Hive环境变量/etc/profile

[root@master ~]# vi /etc/profile

在文件末行插入

#HIVE_HOME
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin
第二步:使环境变量生效
[root@master ~]# source /etc/profile
第三步:执行命令hive --version
[root@master ~]# hive --version

        解决冲突问题
[root@master ~]# rm -rf /opt/module/hive/lib/log4j-slf4j-impl-2.10.0.jar 

        再次运行hive --version

[root@master ~]# hive --version

3、 完成相关配置并添加所依赖包,将MySQL数据库作为Hive元数据库。初始化Hive元数据,并通过schematool相关命令执行初始化,将初始化结果截图(范围为命令执行结束的最后10行)复制粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。

第一步:完成相关配置并添加所依赖包,将MySQL数据库作为Hive元数据库
        将mysql-connector-java-5.1.37.jar放到hive的lib里
[root@master ~]# cp /opt/software/mysql-connector-java-5.1.37.jar /opt/module/hive/lib/
        hive的guava包与hadoop版本不同,将hadoop的guava包放到hive中
cp /opt/module/hadoop/share/hadoop/common/lib/guava-27.0-jre-jar /opt/module/hive/lib
        删除hive中较低版本的guava-19.0.jar
[root@master ~]# rm -rf /opt/module/hive/lib/guava-19.0.jar
        复制一份模板hive-env.sh   
[root@master ~]# cp /opt/module/hive/conf/hive-env.sh.template /opt/module/hive/conf/hive-env.sh    
        加入一下环境变量
[root@master ~]# vi /opt/module/hive/conf/hive-env.sh

                文件最后添加以下:

export JAVA_HOME=/opt/module/java
export HADOOP_HOME=/opt/module/hadoop
export HIVE_CONF_DIR=/opt/module/hive/conf
export HIVE_AUX_JARS_PATH=/opt/module/hive/lib
第二步:配置hive-site.xml
[root@master ~]# vi /opt/module/hive/conf/hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--mysql的连接地址将下面的ip改成宿主机或mysql服务器的ip-->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://192.168.6.64:3306/hive?createDatabaseIfNotExist=true</value>
    </property>
<!--mysql用户名-->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
<!--mysql中hive用户密码-->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
	</property>
<!--mysql驱动-->
	<property>
		<name>javax.jdo.option.ConnectionDriverName</name>
		<value>com.mysql.jdbc.Driver</value>
	</property>
</configuration>
第三步:始化Hive元数据,并通过schematool相关命令执行初始化,将初始化结果截图(范围为命令执行结束的最后10行)
        启动Hadoop集群(启动过了就不用启动了)
start.all.sh
        在hdfs上创建一个文件夹
[root@master ~]# hdfs dfs -mkdir -p /user/hive/warehouse
        开始初始化
[root@master ~]# schematool -dbType mysql -initSchema --verbose

命令解释:
schematool:这是 Hive 自带的一个工具,用于管理和维护 Hive 元数据库(Metastore)的模式。通过它,你可以执行数据库模式的初始化、升级等操作。
-dbType mysql:指定你使用的数据库类型,这里是 mysql,意味着你将连接到 MySQL 数据库。如果你使用的是其他数据库(如 PostgreSQL、Oracle),可以将 mysql 替换为对应的数据库类型。
-initSchema:这个选项表示初始化 Hive 的数据库模式。执行此操作时,它会根据 Hive 的版本自动在 MySQL 数据库中创建表和必要的结构(例如表、索引等),以便 Hive 能够正常存储和查询元数据。
--verbose:该选项会在执行过程中提供详细的输出,帮助你查看执行的步骤和日志,便于排查问题。

初始化结果

上面的步骤已经完成任务了

下面是多余的操作

解决启动hive时有大量的日志问题

        解决前

把hive-log4j2.properties.template替换为log4j.properties

[root@master ~]# mv /opt/module/hive/conf/hive-log4j2.properties.template /opt/module/hive/conf/log4j.properties

解决后

执行下查看databases

END

一键三连是我写文章的动力!

声明:此文章为个人学习笔记,如文章有问题欢迎留言探讨,也希望您的指正 !

<think>好的,用户想获取关于大数据技能竞赛的知识点解析与实践指导。首先,我需要回顾用户提供的引用内容,看看里面有哪些关键信息可以利用。引用1提到了高职组的赛题,涉及大数据平台搭建、数据处理、分析及可视化,使用的技术包括Scala、Hive、Spark、Flink、Vue.js等。引用2是中职组的赛题,涉及数据可视化,特别是雷达图的设置。这说明竞赛可能分为不同层次,但都注重实际操作和技术应用。 接下来,用户的问题是要知识点解析和实践指导。我需要将这两个部分分开来回答,结构清晰。知识点方面,应该涵盖平台搭建、数据处理、数据分析、可视化、实时计算、开发语言和系统设计。每个部分要列出具体的技术或工具,比如Hadoop、Spark SQL、数据清洗方法、Echarts等,这样用户能明确需要掌握的内容。 实践指导部分需要分步骤,比如环境搭建、数据预处理、分析、可视化、优化和文档编写。这里要结合引用中的例子,比如模块A的平台搭建,模块B的数据处理,模块C的可视化。同时,要提到使用容器化技术如Docker,这可能来自引用1中的容器环境部分。优化部分可以涉及Spark的调优,比如内存管理和数据分区,这些是实际比赛中常见的考点。 然后要生成相关问题,考虑用户可能的进一步需求,比如平台选型、Spark调优方法、可视化工具比较、实时处理框架选择,以及比赛中的时间管理策略。这些问题能帮助用户深入准备竞赛。 需要确保回答符合系统级指令,使用正确的中文和LaTeX格式,比如独立公式用$$...$$。例如,提到数据标准化时可以用公式展示。同时,检查引用标识是否正确添加,如引用1和引用2的位置是否恰当。 最后,验证是否覆盖了用户需求的所有方面,知识点是否全面,实践步骤是否具体,问题是否相关。确保语言简洁,结构清晰,便于用户理解和应用。</think>### 大数据技能竞赛知识点解析与实践指导 #### 一、核心知识点解析 1. **大数据平台搭建** - 容器化部署:Docker/Kubernetes环境搭建与网络配置[^1] - 分布式存储:HDFS架构设计与数据分片策略 - 计算框架:Spark/Flink集群部署与资源管理 - 数据仓库:Hive元数据管理与分区表设计 2. **数据处理与分析** - ETL流程:使用Spark SQL进行数据清洗 $$ \text{数据标准化公式:}x_{\text{norm}} = \frac{x - \mu}{\sigma} $$ - 特征工程:One-Hot编码、缺失值处理 - 分布式计算:RDD算子优化与广播变量应用 3. **数据可视化** - ECharts/Vue.js集成开发 - 雷达图参数配置(如赛题要求的标记设置)[^2] - 动态仪表盘开发与数据绑定 4. **实时计算** - Flink窗口函数应用 - 状态管理与Checkpoint机制 - Kafka流式数据接入 5. **开发语言基础** - Scala函数式编程 - Python与Java混合编程接口 6. **系统设计** - Lambda/Kappa架构选型 - 数据安全与权限控制 #### 二、实践指导方法论 1. **环境搭建** - 使用Docker-Compose快速构建Hadoop+Spark+Hive环境 ```bash docker-compose -f bigdata-stack.yml up -d ``` 2. **数据预处理** - 处理脏数据示例(Spark实现): ```scala val cleanDF = rawDF.filter(col("age").between(18,60)) .na.fill(Map("income" -> 0)) ``` 3. **分析任务开发** - 用户画像标签计算: ```sql CREATE TABLE user_tags AS SELECT user_id, CASE WHEN purchase_freq > 5 THEN '高价值' ELSE '普通' END as value_tag FROM user_behavior; ``` 4. **可视化集成** - ECharts雷达图配置要点: ```javascript series: [{ type: 'radar', symbol: 'triangle', symbolSize: 10, data: radarData }] ``` 5. **性能优化** - Spark调优三要素: - 内存管理(`spark.executor.memoryOverhead`) - 数据本地化(`spark.locality.wait`) - 并行度控制(`spark.default.parallelism`) 6. **文档编写** - 包含架构图、数据流程图、核心算法说明
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xfcloud

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

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

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

打赏作者

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

抵扣说明:

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

余额充值