当前位置: 首页 > news >正文

hive自动安装脚本

  • 使用该脚本注意事项
  1. 安装hive之前确定机子有网络。或者yum 更改为本地源,因为会使用epel仓库下载一个pv的软件
  2. 使用该脚本前提是自行安装好mysql数据库
  3. 准备好tomcat软件包,该脚本使用tomcat9.x版本测试过能正常执行安装成功,其他版本没有测试过不知道有没这个问题
  4. hive安装脚本中自动更换成tez引擎了,需要准备好tez安装软件,测试时使用的是tez-0.9.2版本
  5. 安装之前请自行更改脚本内容前面定义的software_dir(所有安装软件包存放目录)、install_dir(安装软件目录)、mysql_user、mysql_password 这个几个变量根据自已情况进行更改
  6. 使用该脚本之前需要把hadoop先安装好并且把hadoop集群启动起来,hadoop集群未启动切勿执行该脚本
#!/bin/bashsoftware_dir=/root/hadoop/
install_dir=/opt/
hadoop_path=$(which hadoop|sed 's|/bin.*||')
tomcat_path=${install_dir}tomcat
mysql_user=root
mysql_password=1234yum repolist |grep epel
if [ $? -ne 0 ] 
thenwget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo &>/dev/null
firpm -qa |grep pv
if [ $? -ne 0 ]
thenyum install -y pv &>/dev/nullrpm -qa |grep pv[ $? -ne 0 ] && echo " Please resolve the network problem !!!" && exit 1
fiecho ============ Start Hive Configuration =============
hive_path=${install_dir}hive
hive_conf_path=$hive_path/conf
tez_path=${install_dir}tezrm -rf $tez_path
pv ${software_dir}*tez* |tar zxf - -C $install_dir
mv ${install_dir}*tez* $tez_path
chown -R root:root $tez_pathrm -rf $hive_path
pv ${software_dir}*hive* |tar zxf - -C $install_dir
mv ${install_dir}*hive* ${install_dir}hiveif [ -f "$hive_conf_path/hive-log4j2.properties.template" ]
then mv $hive_conf_path/hive-log4j2.properties.template $hive_conf_path/hive-log4j2.properties
fiif [ -f "$hive_conf_path/hive-exec-log4j2.properties.template" ] 
thenmv $hive_conf_path/hive-exec-log4j2.properties.template $hive_conf_path/hive-exec-log4j2.properties
fi
cp ${software_dir}mysql-connector-java-5.1.44-bin.jar $hive_path/lib
sed -i "/property.hive.log.dir/c\property.hive.log.dir=$hive_path/logs" $hive_conf_path/hive-log4j2.properties
sed -i "/property.hive.log.dir/c\property.hive.log.dir=$hive_path/logs" $hive_conf_path/hive-exec-log4j2.propertiescat > $hive_conf_path/hive-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><!-- 配置hive元数据在hdfs的存储路径 --><property><name>hive.metastore.warehouse.dir</name><value>/hive/database</value></property><!-- 对于小数据量,自动使用本地模式执行 MR job 加快执行过程 ,默认是false --><property><name>hive.exec.mode.local.auto</name><value>true</value></property><!-- 取消列名前面的表名 --><property><name>hive.resultset.use.unique.column.names</name><value>false</value></property><!-- 更换计算引擎 默认MR -->  <property><name>hive.execution.engine</name><value>tez</value></property><!-- 关闭元数据校验 --><property><name>hive.metastore.schema.verification</name><value>false</value></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://${HOSTNAME}:3306/hive?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncodeing=UTF-8&amp;useSSL=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>$mysql_user</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>$mysql_password</value></property><!-- 下面三个设置解决 tez-ui中hive queries不显示数据的问题--><property><name>hive.exec.pre.hooks</name><value>org.apache.hadoop.hive.ql.hooks.ATSHook</value></property><property><name>hive.exec.post.hooks</name><value>org.apache.hadoop.hive.ql.hooks.ATSHook</value></property><property><name>hive.exec.failure.hooks</name><value>org.apache.hadoop.hive.ql.hooks.ATSHook</value></property></configuration>
EOF
rm -rf ${hive_path}/lib/log4j-slf4j-impl-*.jar
docker exec -it mysql mysql -u $mysql_user -p$mysql_password -e "drop database if exists hive;" &>/dev/null
schematool -dbType mysql -initSchemahdfs dfs -rm -r /tez
hdfs dfs -mkdir /tez
tez_name=$(ls $tez_path/share)
hdfs dfs -put $tez_path/share/$tez_name /tez
rm -rf ${tez_path}/lib/slf4j-log4j12-*.jarcat > $hive_conf_path/tez-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>tez.lib.uris</name><value>\${fs.defaultFS}/tez/$tez_name</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.tez-ui.history-url.base</name><value>http://localhost:8080/tez-ui/</value></property>  
</configuration>
EOFmv $hive_conf_path/hive-env.sh.template $hive_conf_path/hive-env.shcat >> $hive_conf_path/hive-env.sh <<EOF
export TEZ_HOME=$tez_path
export HADOOP_CLASSPATH=\$HADOOP_CLASSPATH:\$TEZ_HOME/*:\$TEZ_HOME/lib/*
EOFsed -i '/^<\/configuration>$/d' $hadoop_path/etc/hadoop/yarn-site.xml
sed -i '/<!-- 开启timelineserver -->/,$d' $hadoop_path/etc/hadoop/yarn-site.xml
cat >> $hadoop_path/etc/hadoop/yarn-site.xml <<EOF<!-- 开启timelineserver --><property><name>yarn.timeline-service.enabled</name><value>true</value></property><!-- 配置timeline安装在指定节点上 --><property><name>yarn.timeline-service.hostname</name><value>$HOSTNAME</value></property><!-- 开启跨域 --><property><name>yarn.timeline-service.http-cross-origin.enabled</name><value>true</value></property><!-- 发送RM的系统指标到timeline服务上 --><property><name>yarn.resourcemanager.system-metrics-publisher.enabled</name><value>true</value></property><!-- 开启通用历史服务 -->  <property><name>yarn.timeline-service.generic-application-history.enabled</name><value>true</value></property><!-- 设置RPC请求的处理程序线程数  默认 10 --><property><name>yarn.timeline-service.handler-thread-count</name><value>24</value></property></configuration>
EOFxsync $hadoop_path/etc/hadoop/yarn-site.xml
jps |egrep "NodeManager|ResourceManager"
if [ $? -eq 0 ]
thenstop-yarn.shsleep 2start-yarn.sh
elsestart-all.sh
fijps |grep "ApplicationHistoryServer"
if [ $? -eq 0 ]
then yarn-daemon.sh stop timelineserver
fi
yarn-daemon.sh start timelineserverif [ -x $tomcat_path/bin/shutdown.sh ]
then$tomcat_path/bin/shutdown.sh &>/dev/nullrm -rf $tomcat_path
fipv ${software_dir}*tomcat* |tar zxf - -C $install_dir
mv ${install_dir}*tomcat* $tomcat_pathmkdir -p $tomcat_path/webapps/tez-ui/
unzip -d $tomcat_path/webapps/tez-ui/ $tez_path/*.war &>/dev/null
sed -i ' s|//timeline: "http://localhost:8188"|timeline: "http://master:8188"|' $tomcat_path/webapps/tez-ui/config/configs.env
sed -i 's|//rm: "http://localhost:8088"|rm: "http://node1:8088"|' $tomcat_path/webapps/tez-ui/config/configs.env
sed -i 's|//timeZone: "UTC"|timeZone: "Asia/Shanghai"|' $tomcat_path/webapps/tez-ui/config/configs.envcat > /usr/lib/systemd/system/tomcat.service <<EOF
[Unit]
Description=tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target[Service]
Type=forkingEnvironment="JAVA_HOME=/opt/jdk1.8.0_201"PIDFile=$tomcat_path/tomcat.pid
ExecStart=$tomcat_path/bin/startup.sh
ExecStop=$tomcat_path/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.targetEOFecho "CATALINA_PID=\$CATALINA_BASE/tomcat.pid"  >  $tomcat_path/bin/setenv.shsystemctl daemon-reload
systemctl enable --now tomcat

相关文章:

hive自动安装脚本

使用该脚本注意事项 安装hive之前确定机子有网络。或者yum 更改为本地源&#xff0c;因为会使用epel仓库下载一个pv的软件使用该脚本前提是自行安装好mysql数据库准备好tomcat软件包&#xff0c;该脚本使用tomcat9.x版本测试过能正常执行安装成功&#xff0c;其他版本没有测试…...

unix 用户态 内核态

在UNIX操作系统中&#xff0c;"用户态"和"内核态"是两种不同的运行模式&#xff0c;它们定义了程序在执行时的权限级别&#xff1a; 用户态&#xff08;User Mode&#xff09;&#xff1a; 用户态是程序运行的常规状态&#xff0c;大多数应用程序在执行时…...

GD32 IAP升级——boot和app相互切换

GD32 IAP升级——boot和app相互切换 目录 GD32 IAP升级——boot和app相互切换1 Keil工程设置1.1 修改ROM1.2 Keil烧录配置 2 代码编写2.1 app跳转2.2 软件重启2.3 app中断向量表偏移 结束语 1 Keil工程设置 1.1 修改ROM GD32内部Flash是一整块连续的内存&#xff0c;但是因为…...

C++11革新之旅:探索C++编程的无限可能

C11革新之旅&#xff1a;探索C编程的无限可能 C11&#xff0c;作为C语言的一个重要标准&#xff0c;为C编程带来了革命性的变革。它不仅引入了众多新特性和改进&#xff0c;还极大地增强了C的表达能力、提高了程序的性能和资源利用率。本文将从多个方面深入探讨C11的新特性&am…...

免费自动化AI视频剪辑工具

下载地址&#xff1a;https://pan.quark.cn/s/3c5995da512e FunClip是一款完全开源、本地部署的自动化视频剪辑工具&#xff0c;通过调用阿里巴巴通义实验室开源的FunASR Paraformer系列模型进行视频的语音识别&#xff0c;随后用户可以自由选择识别结果中的文本片段或说话人&a…...

Linux中安装C#的.net,创建运行后端或控制台项目

安装脚本命令&#xff1a; 创建一个sh文件并将该文件更改权限运行 sudo apt update wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo apt-get upd…...

最长上升子序列LIS(一般+优化)

1. 题目 题目链接&#xff1a; B3637 最长上升子序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 输入样例&#xff1a; 6 1 2 4 1 3 4 输出样例&#xff1a; 4 说明/提示&#xff1a; 分别取出 1、2、3、4 即可。 2. 具体实现 2.1 一般做法 dp[i]表示第i个位置的…...

【Python系列】Python 协程:并发编程的新篇章

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

详解C/C++输入输出

前言 C/C输入输出很多&#xff0c;在不同的情况会用不同的输入输出&#xff0c;有的题目在输入时可能换一种输入输出就能不会TLE&#xff0c;有的输入可能要循环输入&#xff0c;但是可以换一种输入直接就能把所有数据输入进去。C/C有哪些常用的输入输出&#xff0c;在什么时候…...

AI人工智能开发环境配置

AI人工智能 为什么使用Python来开发AI 人工智能被认为是未来的趋势技术。 已经有了许多应用程序。 因此&#xff0c;许多公司和研究人员都对此感兴趣。 但是这里出现的主要问题是&#xff0c;在哪种编程语言中可以开发这些 AI 应用程序&#xff1f; 有各种编程语言&#xff0c…...

Tomcat 8.5 下载、安装、启动及各种问题

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 本期内容主要介绍 Tomcat 8 的安装&#xff0c;以及可能会遇到的问题 文章目录 1. Tomcat 安装2. 可能会遇到的问题2.…...

Harbor系列之5:复制管理

Harbor的镜像复制功能 Harbor 提供镜像复制功能&#xff0c;允许用户以推送和拉取方式在不同 Harbor 仓库之间&#xff0c;以及 Harbor 与非 Harbor 仓库间&#xff08;如Alibaba ACR、Quay、Aws ECR、Azu热ACR、Docker Registry、Docker Hub等&#xff09;复制 image、chart …...

V.PS德国VPS详细测评

V.PS的德国机房位于法兰克福&#xff0c;默认接入电信CN2 GIA、联通CUII网络&#xff0c;针对中国大陆进行路由优化处理的。而且是强制移动走联通的CUII链路&#xff0c;确保三网都处在轻负载的网络环境下。 CPU是Intel Xeon Gold 6133 &#xff0c;启用了BBR&#xff0c;归属德…...

【Vue3】组件通信之自定义事件

【Vue3】组件通信之自定义事件 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋…...

[CTF]-PWN:ORW题型综合解析

经典ORW&#xff1a; 例题&#xff08;极客大挑战 2019 Not Bad&#xff09;&#xff1a; 这里使用mmap函数创造了一个内存映射区域 从地址0x123000开始&#xff0c;大小位0x1000 权限为可写可执行&#xff08;可读0x1&#xff0c;可写0x2&#xff0c;可执行0x3&#xff09;…...

VSCode中yarn的安装和使用

VSCode只要是做前端的&#xff0c;大家都不陌生&#xff0c;就不讲其使用了。 Yarn是一款高效、可靠的JavaScript包管理器&#xff0c;与NPM类似&#xff0c;但有其独特的优势&#xff0c;如更高效的安装速度、更好的依赖管理等 要在VSCode中使用Yarn&#xff0c;‌需要按照以…...

Java后端面试复习7.23

进程和线程线程优先级线程状态线程构造方式三种推荐用哪种为什么线程中断调用什么方法&#xff0c;本线程怎检查为什么线程不应强制停止线程通信方式四种ThreadLocalFUtureTask线程礼让终止线程的另一个缺陷&#xff08;锁&#xff09;守护线程什么时候设置为守护县城sleep&…...

Arduino PID库 (2) –微分导致的过冲

Arduino PID库 &#xff08;2&#xff09; – Derivative Kick 参考&#xff1a;手把手教你看懂并理解Arduino PID控制库——微分冲击 pid内容索引-CSDN博客 Arduino PID库 &#xff08;1&#xff09;– 简介 问题 此修改将稍微调整derivative term。目标是消除一种称为“…...

基于强化学习算法玩CartPole游戏

什么事CartPole游戏 CartPole&#xff08;也称为倒立摆问题&#xff09;是一个经典的控制理论和强化学习的基础问题&#xff0c;通常用于测试和验证控制算法的性能。具体来说&#xff0c;它是一个简单的物理模拟问题&#xff0c;其目标是通过在一个平衡杆&#xff08;倒立摆&a…...

uniapp0基础编写安卓原生插件和调用第三方jar包(Ch34的jar包)和如何解决android 如何Application初始化

前言 我假设你会uniapp安卓插件开发了,如果不会请看这篇文章,这篇文章是0基础教学。 这篇文章我们将讲一下如何使用CH34XUARTDriver.jar进行开发成uniapp插件。 它的难点是:uniapp如何Application初始化第三方jar包 先去官网下载CH340/CH341的USB转串口安卓免驱应用库:h…...

为什么92%的大模型API网关扩缩容失效?——3类隐性负载特征(token分布偏斜、KV Cache膨胀、prefill/decode失衡)深度解析

第一章&#xff1a;大模型工程化自动化扩缩容策略 2026奇点智能技术大会(https://ml-summit.org) 大模型服务在生产环境中面临显著的负载波动——推理请求可能在秒级内激增数倍&#xff0c;而空闲时段又需快速释放资源以控制成本。传统基于固定副本数或简单CPU/Memory阈值的扩…...

UniversalSplitScreen:让任何游戏都能实现本地分屏的终极指南

UniversalSplitScreen&#xff1a;让任何游戏都能实现本地分屏的终极指南 【免费下载链接】UniversalSplitScreen Split screen multiplayer for any game with multiple keyboards, mice and controllers. 项目地址: https://gitcode.com/gh_mirrors/un/UniversalSplitScree…...

【大模型联邦学习落地实战指南】:SITS2026权威演讲深度拆解,3大行业真实案例+5步部署避坑清单

第一章&#xff1a;SITS2026演讲&#xff1a;大模型联邦学习应用 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026主会场&#xff0c;来自MIT与华为诺亚方舟实验室的联合团队展示了基于LLaMA-3架构的大模型联邦学习新范式——FedLLM。该方案突破传统参数平均&#x…...

NVIDIA Profile Inspector:深入解析驱动配置文件兼容性问题与解决方案

NVIDIA Profile Inspector&#xff1a;深入解析驱动配置文件兼容性问题与解决方案 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector 是一款功能强大的第三方工具&#xff0c;它…...

SITS2026发布倒计时72小时:大模型工程化工具选型黄金三角模型(兼容性×可观测性×合规性)首次披露

第一章&#xff1a;SITS2026发布&#xff1a;大模型工程化工具链图谱 2026奇点智能技术大会(https://ml-summit.org) SITS2026&#xff08;Scalable Intelligent Toolchain Summit 2026&#xff09;正式发布面向生产级大模型落地的全栈工程化工具链图谱&#xff0c;聚焦模型开…...

libcrypt-dev安装指南:解决crypt.h缺失报错

1. 当你的代码突然喊"找不到crypt.h"时 第一次在Linux环境下编译加密相关的代码时&#xff0c;看到终端里跳出"crypt.h: No such file or directory"的红色报错&#xff0c;我差点把咖啡喷在键盘上。这个场景太常见了——你从GitHub克隆了个看起来很酷的开…...

UE5 Modify Curve 蓝图节点:五种 Apply Modes 的实战应用解析

1. Modify Curve节点基础&#xff1a;动画曲线的动态操控利器 在UE5动画系统中&#xff0c;Modify Curve节点就像给动画师配了把瑞士军刀。我去年做角色表情动画时&#xff0c;发现传统的关键帧调整方式效率太低&#xff0c;直到用上这个节点才真正体会到实时操控曲线值的快感。…...

别再吹牛了,% Vibe Coding 存在无法自洽的逻辑漏洞!捶

简介 langchain中提供的chain链组件&#xff0c;能够帮助我门快速的实现各个组件的流水线式的调用&#xff0c;和模型的问答 Chain链的组成 根据查阅的资料&#xff0c;langchain的chain链结构如下&#xff1a; $$Input \rightarrow Prompt \rightarrow Model \rightarrow Outp…...

KingbaseES元数据查询实战:一键获取表结构全貌(含字段、约束与注释)

1. 为什么需要一键获取表结构全貌&#xff1f; 在日常数据库管理和开发工作中&#xff0c;我们经常需要快速了解某个表的具体结构。想象一下&#xff0c;你刚接手一个新项目&#xff0c;数据库里有上百张表&#xff0c;每张表都有几十个字段。这时候如果一个个字段去查&#xf…...

【大模型工程化核心基建】:3大血缘追踪实战框架,90%团队尚未部署的模型治理关键能力

第一章&#xff1a;大模型工程化中的模型血缘追踪 2026奇点智能技术大会(https://ml-summit.org) 在大规模语言模型的持续迭代与部署过程中&#xff0c;模型版本、训练数据集、微调脚本、超参配置及评估指标之间形成复杂的依赖网络。缺乏系统化的血缘追踪能力&#xff0c;将导…...