hive on spark集群环境部署(彻底摆脱做毕设没环境)

这篇具有很好参考价值的文章主要介绍了hive on spark集群环境部署(彻底摆脱做毕设没环境)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

#所需安装包下载路径
(1)mysql
rpm包路径:https://downloads.mysql.com/archives/community/
connect路径:https://downloads.mysql.com/archives/c-j/
(2)hive
https://mirrors.huaweicloud.com/apache/hive/hive-3.1.3/
(3)spark
https://mirrors.huaweicloud.com/apache/spark/spark-2.3.0/

1.mysql安装部署

1.1安装包下载

 1.1.1所需下载的rpm包hive on spark集群环境部署(彻底摆脱做毕设没环境),大数据环境部署,hive,spark,hadoophive on spark集群环境部署(彻底摆脱做毕设没环境),大数据环境部署,hive,spark,hadoop

 1.1.2所需驱动包下载hive on spark集群环境部署(彻底摆脱做毕设没环境),大数据环境部署,hive,spark,hadoop

1.2上传到集群环境

(1)这里如果安装了lrzsz可以直接拖动过来,如果没有安装
命令行输入:sudo yum install -y lrzsz

(2)没有的话就用xftp

hive on spark集群环境部署(彻底摆脱做毕设没环境),大数据环境部署,hive,spark,hadoop

1.3卸载干扰依赖,安装所需依赖

1.3.1卸载干扰依赖
[student@hadoop102 mysql]# sudo yum remove mysql-libs
1.3.2安装所需的依赖
[student@hadoop102 mysql]# sudo yum install libaio
[student@hadoop102 mysql]# sudo yum -y install autoconf

1.4切换root用户执行安装脚本

1.4.1切换root用户

[student@hadoop102 mysql]$ su root

 1.4.2执行脚本

[root@hadoop102 mysql]# sh install_mysql.sh

1.4.3脚本解析

#!/bin/bash
set -x
[ "$(whoami)" = "root" ] || exit 1
[ "$(ls *.rpm | wc -l)" = "7" ] || exit 1
test -f mysql-community-client-8.0.31-1.el7.x86_64.rpm && \
test -f mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm && \
test -f mysql-community-common-8.0.31-1.el7.x86_64.rpm && \
test -f mysql-community-icu-data-files-8.0.31-1.el7.x86_64.rpm && \
test -f mysql-community-libs-8.0.31-1.el7.x86_64.rpm && \
test -f mysql-community-libs-compat-8.0.31-1.el7.x86_64.rpm && \
test -f mysql-community-server-8.0.31-1.el7.x86_64.rpm || exit 1

# 卸载MySQL
systemctl stop mysql mysqld 2>/dev/null
rpm -qa | grep -i 'mysql\|mariadb' | xargs -n1 rpm -e --nodeps 2>/dev/null
rm -rf /var/lib/mysql /var/log/mysqld.log /usr/lib64/mysql /etc/my.cnf /usr/my.cnf

set -e
# 安装并启动MySQL
yum install -y *.rpm >/dev/null 2>&1
systemctl start mysqld

#更改密码级别并重启MySQL
sed -i '/\[mysqld\]/avalidate_password.length=4\nvalidate_password.policy=0' /etc/my.cnf
systemctl restart mysqld

# 更改MySQL配置
tpass=$(cat /var/log/mysqld.log | grep "temporary password" | awk '{print $NF}')
cat << EOF | mysql -uroot -p"${tpass}" --connect-expired-password >/dev/null 2>&1
set password='000000';
update mysql.user set host='%' where user='root';
alter user 'root'@'%' identified with mysql_native_password by '000000';
flush privileges;
EOF

1.4.4退出root用户到student用户

[student@hadoop102 mysql]# exit

1.4.5登录测试

[student@hadoop102 mysql]$ mysql -uroot -p000000

hive on spark集群环境部署(彻底摆脱做毕设没环境),大数据环境部署,hive,spark,hadoop

2.hive安装部署

2.1安装hive

2.1.1把hive-3.1.3.tar.gz上传到linux的/opt/software目录下

2.1.2解压hive-3.1.3.tar.gz到/opt/module/目录下面

[student@hadoop102 software]$ tar -zxvf /opt/software/hive-3.1.3.tar.gz -C /opt/module/

2.1.3修改hive-3.1.3-bin.tar.gz的名称为hive

[student@hadoop102 software]$ mv /opt/module/apache-hive-3.1.3-bin/ /opt/module/hive

2.1.4修改/etc/profile.d/my_env.sh,添加环境变量

[student@hadoop102 software]$ sudo vim /etc/profile.d/my_env.sh
#添加内容

#HIVE_HOME
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin

#修改好后,刷新一下环境变量
[student@hadoop102 software]$ source /etc/profile.d/my_env.sh

2.1.5解决日志Jar包冲突,进入/opt/module/hive/lib目录

[student@hadoop102 lib]$ mv log4j-slf4j-impl-2.17.1.jar log4j-slf4j-impl-2.17.1.jar.bak

2.1.6Hive元数据配置到MySQL

2.1.6.1拷贝驱动
#将MySQL的JDBC驱动拷贝到Hive的lib目录下。
[student@hadoop102 lib]$ cp /opt/software/mysql/mysql-connector-j-8.0.31.jar /opt/module/hive/lib/
2.1.6.2配置Metastore到MySQL
#在$HIVE_HOME/conf目录下新建hive-site.xml文件。

[student@hadoop102 conf]$ vim hive-site.xml
#添加如下内容。
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!--配置Hive保存元数据信息所需的 MySQL URL地址-->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;allowPublicKeyRetrieval=true</value>
    </property>

    <!--配置Hive连接MySQL的驱动全类名-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
    </property>

    <!--配置Hive连接MySQL的用户名 -->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <!--配置Hive连接MySQL的密码 -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>000000</value>
    </property>

    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>

    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>

    <property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
    </property>

    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hadoop102</value>
    </property>

    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>
    
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
    </property>

    <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
    </property>
</configuration>

2.2启动Hive

2.2.1初始化元数据库

2.2.1.1登陆MySQL
[student@hadoop102 conf]$ mysql -uroot -p000000
2.2.1.2新建Hive元数据库
mysql> create database metastore;
2.2.1.3初始化Hive元数据库
[student@hadoop102 conf]$ schematool -initSchema -dbType mysql -verbose
2.2.1.4修改元数据库字符集
2.2.1.4.1添加字段注释
#Hive元数据库的字符集默认为Latin1,由于其不支持中文字符,所以建表语句中如果包含中文注释,会出现乱码现象。如需解决乱码问题,须做以下修改。
修改Hive元数据库中存储注释的字段的字符集为utf-8。

mysql> use metastore;
mysql> alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
2.2.1.4.2添加表注释
mysql> alter table TABLE_PARAMS modify column PARAM_VALUE mediumtext character set utf8;

2.2.2启动hive客户端 

2.2.2.1启动Hive客户端

#先启动hadoop
[student@hadoop102 hive]$ hdp.sh start
=================== 启动 hadoop集群 ===================
 --------------- 启动 hdfs ---------------
Starting namenodes on [hadoop102]
Starting datanodes
Starting secondary namenodes [hadoop104]
 --------------- 启动 yarn ---------------
Starting resourcemanager
Starting nodemanagers
 --------------- 启动 historyserver ---------------
[student@hadoop102 hive]$ hive

2.2.2.2查看一下数据库

hive (default)> show databases;
OK
database_name
default
Time taken: 0.966 seconds, Fetched: 1 row(s)

3.hive on spark配置

3.1兼容性问题hive3.1.3默认支持spark2.3.0,注意我们所下载的包

hive on spark集群环境部署(彻底摆脱做毕设没环境),大数据环境部署,hive,spark,hadoop

3.2 配置spark

3.2.1上传并解压解压spark-3.3.0-bin-without-hadoop.tgz

[student@hadoop102 software]$ tar -zxvf spark-2.3.0-bin-without-hadoop.tgz -C /opt/module/
[student@hadoop102 software]$ mv /opt/module/spark-2.3.0-bin-without-hadoop /opt/module/spark

3.2.2修改spark-env.sh配置文件

#修改文件名使其生效
[student@hadoop102 software]$ mv /opt/module/spark/conf/spark-env.sh.template /opt/module/spark/conf/spark-env.sh


#编辑文件
[student@hadoop102 software]$ vim /opt/module/spark/conf/spark-env.sh
#增加hadoop classpath

export SPARK_DIST_CLASSPATH=$(hadoop classpath)

3.2.3配置SPARK_HOME环境变量

[student@hadoop102 software]$ sudo vim /etc/profile.d/my_env.sh
#添加如下内容

#SPARK_HOME
export SPARK_HOME=/opt/module/spark
export PATH=$PATH:$SPARK_HOME/bin

#source刷新环境变量
[student@hadoop102 software]$ source /etc/profile.d/my_env.sh

 3.2.4在hive中创建spark配置文件

[student@hadoop102 software]$ vim /opt/module/hive/conf/spark-defaults.conf
#添加如下内容
spark.master                             yarn
spark.eventLog.enabled                   true
spark.eventLog.dir                       hdfs://hadoop102:8020/spark-history
spark.executor.memory                    1g
spark.driver.memory					     1g


#在HDFS创建如下路径,用于存储历史日志。(必须)
[student@hadoop102 hadoop]$ hadoop fs -mkdir /spark-history

  3.2.5向HDFS上传Spark纯净版jar包

#说明1:采用Spark纯净版jar包,不包含hadoop和hive相关依赖,能避免依赖冲突。
#说明2:Hive任务最终由Spark来执行,Spark任务资源分配由Yarn来调度,该任务有可能被分配到集群的任何一个节点。所以需要将Spark的依赖上传到HDFS集群路径,这样集群中任何一个节点都能获取到。

[student@hadoop102 hadoop]$ hadoop fs -mkdir /spark-jars
[student@hadoop102 hadoop]$ hadoop fs -put /opt/module/spark/jars/* /spark-jars

 3.2.6修改hive-site.xml文件

[student@hadoop102 ~]$ vim /opt/module/hive/conf/hive-site.xml
添加如下内容。
<!--Spark依赖位置(注意:端口号8020必须和namenode的端口号一致)-->
<property>
    <name>spark.yarn.jars</name>
    <value>hdfs://hadoop102:8020/spark-jars/*</value>
</property>
  
<!--Hive执行引擎-->
<property>
    <name>hive.execution.engine</name>
    <value>spark</value>
</property>

 3.2.7Hive on Spark测试

#启动hive客户端
[student@hadoop102 hive]$ hive

#创建一张测试表
hive (default)> create table student(id int, name string);

#通过insert测试效果
hive (default)> insert into table student values(1,'zhangsan');

#spark引擎每次重新启动执行时第一次跑的慢,往后就不会了,
下面两张图是第一次和第二次的执行结果
#如果你的执行结果也输出了一个进度条,说明你的hive on spark也已经成功部署了

hive on spark集群环境部署(彻底摆脱做毕设没环境),大数据环境部署,hive,spark,hadoop

hive on spark集群环境部署(彻底摆脱做毕设没环境),大数据环境部署,hive,spark,hadoop

3.2.8增加ApplicationMaster资源比例

3.2.8.1分发capacity-scheduler.xml配置文

 #说明:容量调度器对每个资源队列中同时运行的Application Master占用的资源进行了限制,该限制通过yarn.scheduler.capacity.maximum-am-resource-percent参数实现,其默认值是0.1,表示每个资源队列上Application Master最多可使用的资源为该队列总资源的10%,目的是防止大部分资源都被Application Master占用,而导致Map/Reduce Task无法执行,我们学习环境本来资源就不多,再不舍得给资源,不设置有时候提交任务会失败。文章来源地址https://www.toymoban.com/news/detail-757233.html

#在hadoop102的/opt/module/hadoop/etc/hadoop/capacity-scheduler.xml
文件中修改如下参数值
[student@hadoop102 hadoop]$ vim capacity-scheduler.xml

<property>
    <name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
    <value>0.8</value>
</property


#分发capacity-scheduler.xml配置文件
[student@hadoop102 hadoop]$ xsync capacity-scheduler.xml
3.2.8.2重启yarn 
关闭正在运行的任务,重新启动yarn集群
[student@hadoop103 hadoop]$ stop-yarn.sh
[student@hadoop103 hadoop]$ start-yarn.sh

到了这里,关于hive on spark集群环境部署(彻底摆脱做毕设没环境)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【大数据技术】Hive on spark 与Spark on hive 的区别与联系

    【大数据技术】Hive on spark 与Spark on hive 的区别与联系 Hive on Spark Hive 既作为存储元数据又负责sql的解析优化,遵守HQL语法,执行引擎变成了spark,底层由spark负责RDD操作 Spark on Hive Hive只作为存储元数据,Spark负责sql的解析优化,遵守spark sql 语法,底层由spark负责RDD操作

    2024年02月15日
    浏览(65)
  • spark on hive

    注意:需要提前搭建好hive,并对hive进行配置。并将spark配置成为spark on yarn模式。 提前创建好启动日志存放路径 mkdir $HIVE_HOME/logStart 注意:其实还是hive的thirftserver服务,同时还需要启动spark集群 连接thirftserver服务后,就可以使用hive的元数据(hive在hdfs中的数据库和表),并且

    2024年02月07日
    浏览(49)
  • Hive on Spark (1)

    在 Apache Spark 中,Executor 是分布式计算框架中的一个关键组件,用于 在集群中执行具体的计算任务 。每个 Executor 都在独立的 JVM 进程中运行,可以在集群的多台机器上同时存在。Executors 负责实际的数据处理、计算和任务执行,它们执行来自 Driver 的指令,并将计算结果返回给

    2024年02月12日
    浏览(46)
  • SparkSQL与Hive整合(Spark On Hive)

    hive metastore元数据服务用来存储元数据,所谓元数据,即hive中库、表、字段、字段所属表、表所属库、表的数据所在目录及数据分区信息。元数据默认存储在hive自带的Derby数据库。在内嵌模式和本地模式下,metastore嵌入在主hive server进程中。但在远程模式下,metastore 和 hive

    2024年02月12日
    浏览(78)
  • 大数据开源框架环境搭建(七)——Spark完全分布式集群的安装部署

    前言:七八九用于Spark的编程实验 大数据开源框架之基于Spark的气象数据处理与分析_木子一个Lee的博客-CSDN博客_spark舆情分析 目录 实验环境: 实验步骤: 一、解压 二、配置环境变量:  三、修改配置文件  1.修改spark-env.sh配置文件: 2.修改配置文件slaves: 3.分发配置文件:

    2024年02月11日
    浏览(54)
  • hive on spark内存模型

    hive on spark的调优,那必然涉及到这一系列框架的内存模型。本章就是来讲一下这些框架的内存模型。 hive on spark的任务,从开始到结束。总共涉及了3个框架。分别是:yarn、hive、spark 其中,hive只是一个客户端的角色。就不涉及任务运行时的内存。所以这里主要讲的yarn和spark的

    2024年04月16日
    浏览(43)
  • Spark On Hive原理和配置

    目录 一、Spark On Hive原理         (1)为什么要让Spark On Hive? 二、MySQL安装配置(root用户)         (1)安装MySQL         (2)启动MySQL设置开机启动         (3)修改MySQL密码 三、Hive安装配置         (1)修改Hadoop的core-site.xml         (2)创建hive-site.xml        

    2024年02月08日
    浏览(55)
  • Spark on Hive及 Spark SQL的运行机制

    代码中集成Hive: Spark SQL底层依然运行的是Spark RDD的程序,所以说Spark RDD程序的运行的流程,在Spark SQL中依然是存在的,只不过在这个流程的基础上增加了从SQL翻译为RDD的过程 Spark SQL的运行机制,其实就是在描述如何将Spark SQL翻译为RDD程序 Catalyst内部具体的执行流程: 专业术

    2024年01月23日
    浏览(50)
  • hive on spark亲自编译,详细教程

    hive 2.3.6 spark 2.0.0版本 hadoop-2.7.6版本 操作流程: hadoop-2.7.6 1、安装hadoop不说了。简单。 spark-2.0.0 2、下载spark-2.0.0的源码. https://archive.apache.org/dist/spark/spark-2.1.0/ 这个下载spark各个版本。 3、编译spark源码 执行编译操作: 当前目录下面会多一个tgz的安装包。需要把这个文件拷贝的

    2024年02月16日
    浏览(52)
  • hive修改spark版本重新编译,hive3.1.3 on spark3.3.0

    我的是hive3.1.3 spark3.3.0(请先将自己的 hive on mr 搭建完场,有简单了解在搞这个) 1.下载hive源码 2. maven编译:mvn clean -DskipTests package -Pdist (idea 编译不行,能行的评论告诉我) 右键 - Git Bash idea打开项目,右键pom 添加成maven项目 修改pom中自己所需依赖的版本

    2023年04月21日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包