news 2026/3/26 21:17:58

<span class=“js_title_inner“>Apache Hadoop生态组件部署分享-Hive</span>

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
<span class=“js_title_inner“>Apache Hadoop生态组件部署分享-Hive</span>

节点信息请参考:

zookeeper: Apache Hadoop生态组件部署分享-zookeeper

hadoop:Apache Hadoop生态组件部署分享-Hadoop

说明: 本次选择的tez版本为0.10.2 ,hive版本为3.1.3 .如果你后续不需要ranger其实可以提高版本hive4.0.1+tez0.10.4

tez编译

下载地址: https://dlcdn.apache.org/tez/

1、解压到指定路径下

2、修改pom.xml依赖

主要修改内容为: <hadoop.version>3.3.5</hadoop.version>

其次保证:protobuf.version为2.5.0(有点忘记有没有修改了)

3、开始执行命令编译

mvn clean package -DskipTests -Pnoui注: -Pnoui参数是跳过tez ui模块编译(一是编译会遇到非常多问题,二是感觉用不到 目前看cdp产品的tez ui也是打不开的)

4、编译成功后你会在apache-tez-0.10.2-src/tez-dist/target路径下找到tar包后续hive会用到

Hive集群部署

1、 分发解压并修改名称

#将安装包分发到其他两个节点ansible hadoopsrcclustero -m copy -a "src=/opt/softs/apache-hive-3.1.3-bin.tar.gz dest=src=/opt/softs/"#解压到指定路径ansible hadoopsrccluster -m shell -a "tar -xf /opt/softs/apache-hive-3.1.3-bin.tar.gz -C /opt/apache_v00"#为了稍显正式修改其名称ansible hadoopsrccluster -m shell -a "mv /opt/apache_v00/apache-hive-3.1.3-bin /opt/apache_v00/apache-hive-3.1.3"

2、hive集成tez前的准备工作

#在hdfs上创建存放tez安装包的路径hdfs dfs -mkdir -p /user/tez/pkg #将tez安装包上传至指定路径hdfs dfs -put /opt/softs/tez-0.10.2.tar.gz /user/tez/pkg

3、tez-site.xml配置

/opt/apache_v00/hadoop-3.3.5/etc/hadoop/tez-site.xml

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><!-- 指定依赖位置 --><property> <name>tez.lib.uris</name> <value>hdfs://nameservice1/user/tez/pkg/tez-0.10.2.tar.gz</value></property><property> <description>控制 Tez 运行时是否使用集群环境中已存在的 Hadoop 库(如 HDFS、YARN、MapReduce 的 JAR 文件),而不是使用 Tez 自带的版本</description> <name>tez.use.cluster.hadoop-libs</name> <value>false</value></property><property> <name>tez.history.logging.service.class</name> <value>org.apache.tez.dag.history.logging.proto.ProtoHistoryLoggingService</value></property></configuration>

然后分发至其他节点以及hive-conf路径下

#分发至其他节点的hadoop conf下ansible hadoopsrcclustero -m copy -a "src=/opt/apache_v00/hadoop-3.3.5/etc/hadoop/tez-site.xml dest=/opt/apache_v00/hadoop-3.3.5/etc/hadoop/" #分发至其他节点的hive conf下ansible hadoopsrccluster -m copy -a "src=/opt/apache_v00/hadoop-3.3.5/etc/hadoop/tez-site.xml dest=/opt/apache_v00/apache-hive-3.1.3/conf"

这里需要重启hadoop集群才会生效,这个我们放在后面重启

4、hive-site.xml配置

/opt/apache_v00/apache-hive-3.1.3/conf/hive-site.xml

<configuration> <property> <description>用于metastore的JDBC连接信息</description> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.242.230:3306/hive3?allowMultiQueries=true&amp;useSSL=false&amp;verifyServerCertificate=false</value> </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> <description>仓库的默认数据库位置</description> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> <property> <description>绑定要运行HiveServer2 Thrift服务的主机。</description> <name>hive.server2.thrift.bind.host</name> <value>apache230.hadoop.com</value> </property> <property> <description>是否应对metastore针对数据库通知相关API(如get_next_notification)执行授权。如果设置为true,则只有代理设置中的超级用户才拥有该权限</description> <name>hive.metastore.event.db.notification.api.auth</name> <value>false</value> </property> <property> <description>远程metastore的Thrift URI。metastore客户端用于连接到远程metastore。</description> <name>hive.metastore.uris</name> <value>thrift://apache230.hadoop.com:9083,thrift://apache231.hadoop.com:9083</value> </property> <property> <description>需要指定 [tez, mr] 中的一种。选择执行引擎。可选项为:'tez'(Tez引擎,默认值),'mr'(MapReduce引擎,已弃用)。 MR是历史遗留引擎,在Hive 2系列中已被弃用,未来可能在没有进一步警告的情况下被移除。</description> <name>hive.execution.engine</name> <value>tez</value> </property> <!--strat hiveserver2高可用--><property><!--HiveServer2 是否支持客户端的动态服务发现。为支持此功能,当前每个 HiveServer2 实例在启动时都会使用 ZooKeeper 进行自我注册。JDBC/ODBC 客户端应在连接字符串中使用 ZooKeeper 集群:hive.zookeeper.quorum--> <name>hive.server2.support.dynamic.service.discovery</name> <value>true</value></property><property><!--在zk中的znode名称--> <name>hive.server2.zookeeper.namespace</name> <value>hiveserver2</value></property><property> <name>hive.zookeeper.quorum</name> <value>apache230.hadoop.com:2181,apache231.hadoop.com:2181,apache232.hadoop.com:2181</value></property><property> <name>hive.zookeeper.client.port</name> <value>2181</value></property><!--end hiveserver2高可用--></configuration>

分发至其他节点

#分发至其他节点的hive conf下ansible hadoopsrcclustero -m copy -a "src=/opt/apache_v00/apache-hive-3.1.3/conf/hive-site.xml dest=/opt/apache_v00/apache-hive-3.1.3/conf/"

此时修改其他两个节点绑定的hive.server2.thrift.bind.host 属性为各自主机名称

/opt/apache_v00/apache-hive-3.1.3/conf/hive-site.xml

5、配置hive环境变量

cat > /etc/profile.d/apache_v00.sh <<'EOF'export ZOOKEEPER_HOME=/opt/apache_v00/apache-zookeeper-3.9.2export HADOOP_HOME=/opt/apache_v00/hadoop-3.3.5export HIVE_HOME=/opt/apache_v00/apache-hive-3.1.3export TEZ_HOME=/opt/apache_v00/tez-0.10.3export PATH=$PATH:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/binEOFsource /etc/profile.d/apache_v00.sh

6、mysql库及权限准备

create database hive3;grant all privileges on hive3.* to 'hive'@'%' identified by '123456';flush privileges;

7、执行初始化

schematool -initSchema -dbType mysql -verbose

当看到 schemaTool completed 即完成

8、core-site.xml配置

vim /opt/apache_v00/hadoop-3.3.5/etc/hadoop/core-site.xml 新增以下内容

<property><!-- 允许从任何主机来的代理请求 --> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property><!-- 允许root用户代理所有用户 --><property> <name>hadoop.proxyuser.root.users</name> <value>*</value> </property>

9、hadoop-env.sh设置

A. 分发并解压tez-0.10.2.tar.gz

ansible hadoopsrcclustero -m copy -a "src=/opt/softs/tez-0.10.2.tar.gz dest=/opt/softs/"ansible hadoopsrccluster -m shell -a "mkdir /opt/apache_v00/tez-0.10.2"ansible hadoopsrccluster -m shell -a "tar -xf /opt/softs/tez-0.10.2.tar.gz -C /opt/apache_v00/tez-0.10.2"

注: hadoopsrcclustero 是ansible定义的主机列表名称,是其他节点,不包含当前机器,hadoopsrccluster 是包含当前机器

B.设置hadoop-env.sh

/opt/apache_v00/hadoop-3.3.5/etc/hadoop/hadoop-env.sh 新增

export TEZ_CONF_DIR=$HADOOP_HOME/etc/hadoopexport TEZ_JARS=/opt/apache/tez-0.10.2export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:${TEZ_CONF_DIR}:${TEZ_JARS}/*:${TEZ_JARS}/lib/*

分发至其他两个节点

10、启动服务

重启hadoop服务sh /root/apachecluster/start_apachev00.sh 赋权权限hdfs dfs -chmod 777 /tmphdfs dfs -chmod 777 /user #在apache230.hadoop.com节点执行(开两个创建,因为是前台执行)hive --service metastorehive --service hiveserver2 #在apache231.hadoop.com节点执行(同上)hive --service metastorehive --service hiveserver2 #在apache232.hadoop.com节点执行hive --service hiveserver2

这里的/root/apachecluster/start_apachev00.sh 脚本内容其实就是hadoop篇章的启停hadoop的命令

然后你可以验证hive功能了

连接方式你可以直接连接也可以走zk方式:

beeline -u "jdbc:hive2://apache230.hadoop.com:2181,apache231.hadoop.com:2181,apache232.hadoop.com:2181/default;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2"beeline -u "jdbc:hive2://apache230.hadoop.com:10000/default"

验证不同用户去执行需要加-n xxx,(因集群没有启动只发一下之前记录部署4.0.1的截图)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/18 5:04:53

裁剪后再修复!先调整尺寸再精细处理

裁剪后再修复&#xff01;先调整尺寸再精细处理 你有没有遇到过这样的情况&#xff1a;一张照片里有碍眼的电线、路人、水印&#xff0c;或者想把某个人从合影里“请”出去&#xff1f;直接用画笔涂掉&#xff1f;效果往往生硬、边缘突兀、颜色不协调。更糟的是&#xff0c;如…

作者头像 李华
网站建设 2026/3/20 20:13:04

BAAI/bge-m3安全合规吗?企业生产环境部署注意事项

BAAI/bge-m3安全合规吗&#xff1f;企业生产环境部署注意事项 1. 模型本质&#xff1a;它不是“黑盒”&#xff0c;而是可验证的语义理解工具 很多人第一眼看到 BAAI/bge-m3&#xff0c;会下意识把它和大语言模型划等号——担心它会不会“记住”输入内容、会不会泄露敏感信息…

作者头像 李华
网站建设 2026/3/21 3:06:59

手把手教你用DeerFlow:从零开始打造智能研究报告生成系统

手把手教你用DeerFlow&#xff1a;从零开始打造智能研究报告生成系统 1. 这不是另一个“AI聊天框”&#xff0c;而是一个会自己查资料、写报告、做分析的研究员 你有没有过这样的经历&#xff1a;想快速了解一个新领域&#xff0c;比如“2025年国产大模型在金融风控中的落地进…

作者头像 李华
网站建设 2026/3/20 7:07:44

QWEN-AUDIO应用指南:从短视频配音到智能播客制作

QWEN-AUDIO应用指南&#xff1a;从短视频配音到智能播客制作 你是否还在为短视频配音反复重录而头疼&#xff1f;是否想让AI播客的声音既有专业感&#xff0c;又带点人情味&#xff1f;QWEN-AUDIO不是又一个“能说话”的TTS工具——它是一套真正懂语气、会呼吸、有温度的语音合…

作者头像 李华
网站建设 2026/3/20 23:14:56

本地隐私保护!Chord视频时空理解工具保姆级部署教程

本地隐私保护&#xff01;Chord视频时空理解工具保姆级部署教程 你是否曾为一段监控视频中“那个穿红衣服的人什么时候出现在画面左下角”而反复拖动进度条&#xff1f; 是否担心把客户会议录像上传到云端分析&#xff0c;会泄露敏感商业信息&#xff1f; 是否试过多个视频理解…

作者头像 李华