开源大数据集群部署(十八)Hive 安装部署

news/2024/5/9 2:30:04/文章来源:https://blog.csdn.net/weixin_43756308/article/details/137076854

作者:櫰木

1 创建hive Kerberos主体

bash /root/bigdata/getkeytabs.sh /etc/security/keytab/hive.keytab hive

2 安装

在hd1.dtstack.com主机root权限下操作:

  • 解压包
[root@hd3.dtstack.com software]# tar -zxvf apache-hive-3.1.2-bin.tar.gz -C  /opt
ln -s /opt/apache-hive-3.1.2-bin /opt/hive
  • 设置环境变量
[root@hd3.dtstack.com software]# source /etc/profile
  • 修改hive-env.sh
[root@hd3.dtstack.com conf]# cd /opt/apache-hive-3.1.2-bin/conf
[root@hd3.dtstack.com conf]# cat >hive-env.sh<<EOF
export HADOOP_HOME=/opt/hadoop
export HIVE_HOME=/opt/hive
export HIVE_CONF_DIR=/opt/hive/conf
if [ "$SERVICE" = "hiveserver2" ] ; thenHADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Dcom.sun.management.jmxremote.authenticate=false    -Dcom.sun.management.jmxremote.ssl=false    -Dcom.sun.management.jmxremote.local.only=false  -Dcom.sun.management.jmxremote.port=9611   -javaagent:/opt/prometheus/jmx_prometheus_javaagent-0.3.1.jar=9511:/opt/prometheus/hiveserver2.yml"
fi
if [ "$SERVICE" = "metastore" ] ; thenHADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Dcom.sun.management.jmxremote.authenticate=false    -Dcom.sun.management.jmxremote.ssl=false    -Dcom.sun.management.jmxremote.local.only=false  -Dcom.sun.management.jmxremote.port=9606   -javaagent:/opt/prometheus/jmx_prometheus_javaagent-0.3.1.jar=9506:/opt/prometheus/hive_metastore.yml"
fiTEZ_CONF_DIR=/opt/tez/conf/tez-site.xml
TEZ_JARS=/opt/tez
EOF
  • 修改hive-site.xml(含kerberos配置)
[root@hd1.dtstack.com conf]# cat >hive-site.xml<<EOF
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hd1.dtstack.com:3306/metastore?allowPublicKeyRetrieval=true</value></property><property><name>hive.cluster.delegation.token.store.class</name><value>org.apache.hadoop.hive.thrift.DBTokenStore</value><description>Hive defaults to MemoryTokenStore, or ZooKeeperTokenStore</description></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.option.ConnectionPassword</name><value>123456</value></property><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><property><name>hive.metastore.thrift.impersonation.enabled</name><value>false</value></property><property><name>hive.exec.scratchdir</name><value>/user/hive/warehouse</value></property><property><name>hive.reloadable.aux.jars.path</name><value>/user/hive/udf</value></property><property><name>hive.metastore.schema.verification</name><value>false</value></property><property><name>hive.exec.dynamic.partition</name><value>true</value></property><property><name>hive.exec.dynamic.partition.mode</name><value>nonstrict</value></property><property><name>hive.server2.thrift.port</name><value>10000</value></property><property><name>hive.server2.webui.host</name><value>0.0.0.0</value></property><property><name>hive.server2.webui.port</name><value>10002</value></property><property><name>hive.server2.support.dynamic.service.discovery</name><value>true</value></property><property><name>hive.zookeeper.quorum</name><value>hd1.dtstack.com:2181,hd3.dtstack.com:2181,hd2.dtstack.com:2181</value></property><property><name>hive.server2.thrift.min.worker.threads</name><value>300</value></property><property><name>hive.server2.async.exec.threads</name><value>200</value></property><property><name>hive.server2.idle.session.timeout</name><value>3600000</value></property><property><name>hive.server2.session.check.interval</name><value>60000</value></property><property><name>hive.server2.enable.doAs</name><value>false</value></property><property><name>hive.merge.mapfile</name><value>true</value></property><property><name>hive.merge.size.per.task</name><value>256000000</value></property><property><name>hive.mapjoin.localtask.max.memory.usage</name><value>0.9</value></property><property><name>hive.mapjoin.smalltable.filesize</name><value>25000000L</value></property><property><name>hive.mapjoin.followby.gby.localtask.max.memory.usage</name><value>0.55</value></property><property><name>hive.merge.mapredfiles</name><value>false</value></property><property><name>hive.exec.max.dynamic.partitions.pernode</name><value>100</value></property><property><name>hive.exec.max.dynamic.partitions</name><value>1000</value></property><property><name>hive.metastore.server.max.threads</name><value>100000</value></property><property><name>hive.metastore.server.min.threads</name><value>200</value></property><property><name>mapred.reduce.tasks</name><value>-1</value></property><property><name>hive.exec.reducers.bytes.per.reducer</name><value>64000000</value></property><property><name>hive.exec.reducers.max</name><value>1099</value></property><property><name>hive.auto.convert.join.noconditionaltask.size</name><value>20000000</value></property><property><name>spark.executor.cores</name><value>4</value></property><property><name>spark.executor.memory</name><value>456340275B</value></property><property><name>spark.driver.memory</name><value>966367641B</value></property><property><name>spark.yarn.driver.memoryOverhead</name><value>102000000</value></property><property><name>spark.yarn.executor.memoryOverhead</name><value>76000000</value></property><property><name>hive.map.aggr</name><value>true</value></property><property><name>hive.map.aggr.hash.percentmemory</name><value>0.5</value></property><property><name>hive.merge.sparkfiles</name><value>false</value></property><property><name>hive.merge.smallfiles.avgsize</name><value>16000000</value></property><property><name>hive.fetch.task.conversion</name><value>minimal</value></property><property><name>hive.fetch.task.conversion.threshold</name><value>32000000</value></property><property><name>hive.metastore.client.socket.timeout</name><value>600s</value></property><property><name>hive.server2.idle.operation.timeout</name><value>6h</value></property><property><name>hive.server2.idle.session.timeout</name><value>3600000</value></property><property><name>hive.server2.idle.session.check.operation</name><value>true</value></property><property><name>hive.server2.webui.max.threads</name><value>50</value></property><property><name>hive.metastore.connect.retries</name><value>10</value></property><property><name>hive.warehouse.subdir.inherit.perms</name><value>false</value></property><property><name>hive.metastore.event.db.notification.api.auth</name><value>false</value></property><property><name>hive.stats.autogather</name><value>false</value></property><property><name>hive.server2.active.passive.ha.enable</name><value>true</value>--></property><property><name>hive.execution.engine</name><value>tez</value></property><property><name>hive.metastore.uris</name><value>thrift://hd1.dtstack.com:9083</value><description>A comma separated list of metastore uris on which metastore service is running</description></property><!-- hive开启kerberos --><!-- hivemetastore conf --><property><name>hive.metastore.sasl.enabled</name><value>true</value></property><property><name>hive.server2.thrift.sasl.qop</name><value>auth</value></property><property><name>hive.metastore.kerberos.keytab.file</name><value>/etc/security/keytab/hive.keytab</value></property><property><name>hive.metastore.kerberos.principal</name><value>hive/_HOST@DTSTACK.COM</value></property><property><name>hive.server2.authentication</name><value>kerberos</value></property><!-- hiveserver2 conf --><property><name>hive.security.metastore.authenticator.manager</name><value>org.apache.hadoop.hive.ql.security.HadoopDefaultMetastoreAuthenticator</value></property><property><name>hive.security.metastore.authorization.auth.reads</name><value>true</value></property><property><name>hive.security.metastore.authorization.manager</name><value>org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider</value></property><property><name>hive.server2.allow.user.substitution</name><value>true</value></property><property><name>hive.metastore.pre.event.listeners</name><value>org.apache.hadoop.hive.ql.security.authorization.AuthorizationPreEventListener</value></property><property><name>hive.server2.authentication.kerberos.principal</name><value>hive/_HOST@DTSTACK.COM</value></property><property><name>hive.server2.authentication.kerberos.keytab</name><value>/etc/security/keytab/hive.keytab</value></property><property><name>hive.server2.zookeeper.namespace</name><value>hiveserver2</value>
</property>
</configuration>
EOF
  • 创建hdfs相关目录
[root@hd3.dtstack.com conf]# hdfs dfs -mkdir -p  /user/hive/warehouse
[root@hd3.dtstack.com conf]# hdfs dfs -mkdir /tmp
[root@hd3.dtstack.com conf]# hdfs dfs -chmod g+w /tmp  /user/hive/warehouse
[root@hd3.dtstack.com conf]# hdfs dfs -chmod 777  /user/hive/warehouse
  • 添加驱动
[root@hd3.dtstack.com conf]# cp /usr/share/java/mysql-connector-java.jar /opt/apache-hive-3.1.2-bin/lib
[root@hd3.dtstack.com conf]# cp /opt/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /opt/apache-hive-3.1.2-bin/lib
[root@hd3.dtstack.com conf]# chown -R hive:hadoop /opt/apache-hive-3.1.2-bin

3 hive初始化

  • 在hd1.dtstack.com主机上创建hive元数据库
mysql> create database metastore;
create user 'hive'@'%' identified by '123456';
grant all privileges on metastore.* to 'hive'@'%' ;

在这里插入图片描述

说明:

  • 创建的元数据名是metastore
  • 登录用户使用的mysql root权限,在生产中建议使用hive专属mysql用户
  • 在hd1.dtstack.com主机上初始化hive
[root@hd3.dtstack.com conf]# cd /opt/apache-hive-3.1.2-bin/bin
[root@hd3.dtstack.com bin]# schematool -dbType mysql -initSchema hive 123456
  • 在hd1.dtstack.com主机上修改core-site.xml

修改$HADOOP_HOME/etc/hadoop/core-site.xml文件,增加如下内容:

<property><name>hadoop.proxyuser.hive.hosts</name><value>*</value>
</property><property><name>hadoop.proxyuser.hive.groups</name><value>*</value>
</property><property><name>hadoop.proxyuser.hive.users</name><value>*</value>
</property>

说明:在hadoop集群安装过程中已经提前预配,本步骤可省略

  • 在hd1.dtstack.com上重启hadoop集群
[hdfs@hd1.dtstack.com ~]$stop-yarn.sh
[hdfs@hd1.dtstack.com ~]$stop-dfs.sh
[hdfs@hd1.dtstack.com ~]$start-dfs.sh
[hdfs@hd1.dtstack.com ~]$start-yarn.sh

4 hive 环境变量配置(在前置中已配置可忽略)

在/etc/profile中加入hadoop集群环境变量

#hive
export HIVE_HOME=/opt/apache-hive-3.1.2-bin
export PATH=$PATH:$HIVE_HOME/bin

5 安装tez(每个节点都需安装)

Hive3.x版本默认支持tez,需要添加tez依赖
解压

cd  /opt/bigdata
tar -xzvf apache-tez-0.10.2-bin.tar.gz -C /opt
ln -s /opt/apache-tez-0.10.2-bin /opt/tez

创建hdfs的tez目录,

hdfs dfs -mkdir /tez
cd  /opt/tez/share
hdfs dfs -put  tez.tar.gz /tez
cd /opt/tez/conf/
配置tez-site.xml
<configuration><property><name>tez.lib.uris</name><value>${fs.defaultFS}/tez/tez.tar.gz</value></property><property><name>tez.use.cluster.hadoop-libs</name><value>true</value>
</property>
<property><name>tez.history.logging.service.class</name>        <value>org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService</value>
</property><property><name>tez.use.cluster.hadoop-libs</name><value>true</value></property><property><name>tez.am.resource.memory.mb</name><value>2048</value></property><property><name>tez.am.resource.cpu.vcores</name><value>1</value></property><property>
<name>hive.tez.container.size</name><value>2048</value>
</property><property><name>tez.container.max.java.heap.fraction</name><value>0.4</value></property><property><name>tez.task.resource.memory.mb</name><value>1024</value></property><property><name>tez.task.resource.cpu.vcores</name><value>1</value></property><property><name>tez.runtime.compress</name><value>true</value></property><property><name>tez.runtime.compress.codec</name><value>org.apache.hadoop.io.compress.SnappyCodec</value></property></configuration>

分发tez-site.xml到hadoop和hive的conf路径下

cp conf/tez-site.xml /opt/hive/conf
cp conf/tez-site.xml /opt/hadoop/etc/hadoop

拷贝tez的lib包到hive的lib目录下

cp /opt/tez/lib/* /opt/hive/lib

6 hive启动

  • 创建启停脚本(hd1.dtstack.com)
cd /opt/hive/bincat >start_hive.sh <<EOF
#!/bin/sh
/opt/apache-hive-3.1.2-bin/bin/hive --service metastore>/opt/apache-hive-3.1.2-bin/log/metastore.log 2>&1 &
/opt/apache-hive-3.1.2-bin/bin/hive --service hiveserver2>/opt/apache-hive-3.1.2-bin/log/hiveserver.log 2>&1 &
EOFcat >stop_hive.sh <<EOF
#!/bin/sh
ps -ef|grep hive|grep -v grep|awk '{print \$2}'|xargs kill -9
EOF
  • hive启动
chown -R hive:hadoop apache-hive-3.1.2-bin apache-tez-0.10.2-bin
chmod -R 755 /opt/apache-hive-3.1.2-bin /opt/apache-tez-0.10.2-binsh start.sh
[root@hadoop05 apache-hive-3.1.2-bin]# sh start_hive.sh

检查端口
启动之后,检查9083端口和10000端口是否正常

ss -tunlp | grep 9083

在这里插入图片描述
ss -tunlp | grep 10000
在这里插入图片描述
使用beeline -u命令进行登陆测试

beeline -u 'jdbc:hive2://hd1.dtstack.com:10000/default;principal=hive/hd1.dtstack.com@DTSTACK.COM'

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1025832.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【微服务】Nacos(注册中心)

文章目录 1.基本介绍1.概述2.Nacos下载和运行&#xff08;java8/maven3.2.x&#xff09;1.解压到没有中文路径的2.双击startup3.浏览器输入http://192.168.242.124:8848/nacos4.用户名和密码为nacos5.cmd输入netstat -anb | more查看监听端口 2.创建Nacos服务提供者 100041.项目…

VLAN的原理及配置

文章目录 一、VLAN的概述1、VLAN的概念2、VLAN的优势 二、静态VLAN三、静态VLAN的配置1.VLAN的范围2.VLAN基本配置 四、Trunk和access的作用参考 一、VLAN的概述 1、VLAN的概念 VLAN就是将网络从逻辑上划分为若按个小的网络&#xff0c;也就是虚拟局域网。 2、VLAN的优势 使…

鸿蒙OS开发案例:【API9】遍历沙漏文件夹并输入文件的大小

1.获取打印文件大小 /*** 获取打印文件大小*/static getFileSize(byteNum: number) {if (byteNum < 0) {return "shouldnt be less than zero!";} else if (byteNum < 1024) {return ${byteNum.toFixed(3)}B;} else if (byteNum < 1048576) {return (byteNu…

37.网络游戏逆向分析与漏洞攻防-游戏网络通信数据解析-解码器细化类的实现

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;36.数据解码器的…

剑指Offer题目笔记19(二分查找)

面试题68&#xff1a; 问题&#xff1a; ​ 输入一个排序的整形数组nums和一个目标值t&#xff0c;如果数组nums中包含t&#xff0c;则返回在数组中的下标&#xff0c;否则返回按照顺序插入到数组的下标。 解决方案&#xff1a; ​ 使用二分查找。每次二分查找都选取位于数组…

鸿蒙HarmonyOS应用开发之使用Node-API实现跨语言交互开发流程

使用Node-API实现跨语言交互&#xff0c;首先需要按照Node-API的机制实现模块的注册和加载等相关动作。 ArkTS/JS侧&#xff1a;实现C方法的调用。代码比较简单&#xff0c;import一个对应的so库后&#xff0c;即可调用C方法。 Native侧&#xff1a;.cpp文件&#xff0c;实现模…

左手医生:医疗 AI 企业的云原生提效降本之路

相信这样的经历对很多人来说并不陌生&#xff1a;为了能到更好的医院治病&#xff0c;不惜路途遥远奔波到大城市&#xff1b;或者只是看个小病&#xff0c;也得排上半天长队。这些由于医疗资源分配不均导致的就医问题已是老生长谈。 云计算、人工智能、大数据等技术的发展和融…

centos2anolis

我的centos7原地升级到anolis7记录 注意&#xff1a;如果是桌面版请先卸载firefox&#xff0c;否则so文件冲突。 参考&#xff1a; CentOS 7和8Linux系统迁移到国产Linux龙蜥Anolis OS 8手册_disable pam_pkcs11 module in pam configuration-CSDN博客 关于 CentOS 迁移龙蜥…

[2021]Zookeeper getAcl命令未授权访问漏洞概述与解决

今天在漏洞扫描的时候蹦出来一个zookeeper的漏洞问题&#xff0c;即使是非zookeeper的节点&#xff0c;或者是非集群内部节点&#xff0c;也可以通过nc扫描2181端口&#xff0c;获取极多的zk信息。关于漏洞的详细描述参考apache zookeeper官方概述&#xff1a;CVE-2018-8012: A…

ps国潮样机合集,内含茶杯、包装礼盒、抱枕、手机等

ps国潮样机合集&#xff0c;内含茶杯、包装礼盒、抱枕、手机等 链接&#xff1a;https://pan.baidu.com/s/1T-pXLcbHhHsZYho0WoV00g?pwdi5gs 提取码&#xff1a;i5gs 部分展示图 首先&#xff0c;PS样机的作用&#xff1a; 产品验证&#xff1a;PS样机可以帮助设计师和制…

【二叉树】Leetcode 102. 二叉树的层序遍历【中等】

二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09; 示例1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]] 解题思路…

第二篇:3.1 广告印象(AD Impression) - IAB与MRC及《增强现实广告效果测量指南1.0》

--- 我为什么要翻译美国IAB科技公司系列标准 翻译计划 第一篇概述—IAB与MRC及《增强现实广告效果测量指南》之目录、适用范围及术语第二篇广告效果测量定义和其他矩阵之- 3.1 广告印象&#xff08;AD Impression&#xff09;第三篇广告效果测量定义和其他矩阵之- 3.2 可见度 …

最新的Flutter3.x版本获取应用包名的方法

以前的flutter项目可以在 AndroidManifest.xml 中获取应用包名&#xff0c; 最新的Flutter3.x版本要获取应用包名可以找到build.gradle 更多内容参考&#xff1a;最新的Flutter3.x版本如何获取应用包名

视图的作用

目录 视图的作用 创建视图 为 scott 分配创建视图的权限 查询视图 复杂视图的创建 视图更新的限制问题 更新视图中数据的部门编号&#xff08;视图的存在条件&#xff09; 限制通过视图修改数据表内容 创建只读的视图 复杂视图创建 oracle从入门到总裁:​​​​​​h…

UMass、MIT等提出3D世界具身基础模型,机器人根据生成的世界模型无缝连接3D感知、推理和行动

在最近的研究中&#xff0c;视觉-语言-动作&#xff08;VLA&#xff0c;vision-language-action&#xff09;模型的输入基本都是2D数据&#xff0c;没有集成更通用的3D物理世界。 此外&#xff0c;现有的模型通过学习「感知到动作的直接映射」来进行动作预测&#xff0c;忽略了…

数据结构——线性表(一)

线性表&#xff0c;顾名思义&#xff0c;是具有像线一样的性质的表。如同学生们在操场上排队&#xff0c;一个跟着一个排队&#xff0c;有一个打头&#xff0c;有一个收尾&#xff0c;在其中的学生都知道前一个是谁&#xff0c;后一个是谁&#xff0c;这样就像一根线将他们都串…

html页面使用@for(){},@if(){},利用jquery 获取当前class在列表中的下标

基于以前的项目进行修改优化&#xff0c;前端代码根据List元素在html里进行遍历显示 原先的代码&#xff1a; 其中&#xff0c;noticeGuide.Id是标识noticeGuide的唯一值&#xff0c;但是不是从0开始的【是数据库自增字段】 但是在页面初始化加载的时候&#xff0c;我们只想…

鸿蒙OS开发问题:(ArkTS) 【解决中文乱码 string2Uint8Array、uint8Array2String】

在进行base64编码中&#xff0c;遇到中文如果不进行处理一定会出现乱码 let result1: string CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse((一二三四五六七八九十123)))LogUtils.i("result1 " result1);let result2: string CryptoJS.enc.Base64.par…

mac-git上传至github(ssh版本,个人tokens总出错)

第一步 git clone https://github.com/用户名/项目名.git 第二步 cd 项目名 第三步 将本地的文件移动到项目下 第四步 git add . 第五步 git commit -m "添加****文件夹" 第六步 git push origin main 报错&#xff1a; 采用ssh验证 本地文件链接公钥 …

软件杯 深度学习+opencv+python实现车道线检测 - 自动驾驶

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV56 数据集处理7 模型训练8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &am…