【快捷部署】023_HBase(2.3.6)

📣【快捷部署系列】023期信息
| 编号 | 选型 | 版本 | 操作系统 | 部署形式 | 部署模式 | 复检时间 |
|---|---|---|---|---|---|---|
| 023 | HBase | 2.3.6 | Ubuntu 20.04 | tar包 | 单机 | 2024-05-07 |
注意:本脚本非全自动化脚本,有2次人工干预,第一次是确认内网IP,如正确直接回车即可,第二次是连接验证提示信息,输入yes即可。
一、快捷部署
#!/bin/bash
#################################################################################
# 作者:cxy@toc 2024-04-29
# 功能:快捷部署 HBase
# 说明:
#################################################################################
info(){echo -e "\033[34m 【`date '+%Y-%m-%d %H:%M:%S'`】\033[0m" "\033[35m$1\033[0m "
}proj_base_name=cxyg_inner_ip=$(hostname -I)
info "参考IP地址:"${g_inner_ip}read -p "请问,您当前服务器的内网IP地址是?(默认为:${g_inner_ip}):" inner_ipinner_ip="${inner_ip:-${g_inner_ip}}"echo ${inner_ip}# 配置/etc/hosts
cat >> /etc/hosts <<EOF${inner_ip} hadoop001 hadoop001
${inner_ip} zk001 zk001
${inner_ip} hbase001 hbase001EOF# 安装JDK
install_jdk(){
mkdir -p /${proj_base_name}/bao
mkdir -p /${proj_base_name}/jdk
cd /${proj_base_name}/bao
wget https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gztar xf /${proj_base_name}/bao/jdk-8u151-linux-x64.tar.gz -C /${proj_base_name}/jdk
cat >> /etc/profile <<EOF
export JAVA_HOME=/${proj_base_name}/jdk/jdk1.8.0_151
export JRE_HOME=\${JAVA_HOME}/jre
export CLASSPATH=.:\${JAVA_HOME}/lib:\${JRE_HOME}/lib
export PATH=.:\${JAVA_HOME}/bin:\$PATH
EOFsource /etc/profile
info "JDK部署完毕 ..."
}#自定义Hadoop配置文件
diy_custom_config_hadoop(){cd /${proj_base_name}/hadoop/hadoop-3.3.2#备份要改动的文件
cp etc/hadoop/hadoop-env.sh etc/hadoop/hadoop-env.sh.bak
cp etc/hadoop/core-site.xml etc/hadoop/core-site.xml.bak
cp etc/hadoop/hdfs-site.xml etc/hadoop/hdfs-site.xml.bak#修改 hadoop-env.sh
sed -i '42aexport JAVA_HOME='/${proj_base_name}/jdk'/jdk1.8.0_151' etc/hadoop/hadoop-env.sh#修改 core-site.xml
rm -f etc/hadoop/core-site.xml
touch etc/hadoop/core-site.xml
cat >> etc/hadoop/core-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>fs.defaultFS</name><value>hdfs://hadoop001:8020</value></property><!-- 数据存储目录 --><property><name>hadoop.tmp.dir</name><value>/${proj_base_name}/hadoop/data/tmp</value></property><property><name>hadoop.http.staticuser.user</name><value>root</value></property>
</configuration>
EOF#修改 hdfs-site.xml
rm -f etc/hadoop/hdfs-site.xml
touch etc/hadoop/hdfs-site.xml
cat >> etc/hadoop/hdfs-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>dfs.namenode.name.dir</name><value>file:/${proj_base_name}/hadoop/data/hdfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/${proj_base_name}/hadoop/data/hdfs/data</value></property><property><name>dfs.replication</name><value>1</value></property>
</configuration>
EOF}
# 部署Hadoop(Standalone)
install_Hadoop(){mkdir /${proj_base_name}/hadoop
cd /${proj_base_name}/bao
wget https://repo.huaweicloud.com/apache/hadoop/common/hadoop-3.3.2/hadoop-3.3.2.tar.gz --no-check-certificate
tar zxvf hadoop-3.3.2.tar.gz -C /${proj_base_name}/hadoopcat >> /etc/profile <<EOF
#Hadoop
export HADOOP_HOME=/${proj_base_name}/hadoop/hadoop-3.3.2
export PATH=\$PATH:\$HADOOP_HOME/bin
export PATH=\$PATH:\$HADOOP_HOME/sbinexport HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
EOFsource /etc/profile
hadoop versiondiy_custom_config_hadoop#配置免密登录
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
# 初始化文件系统
bin/hdfs namenode -format# 启动服务
sbin/start-dfs.shinfo "安装完成,访问:http://$(curl ifconfig.me/ip):9870/"
}# 部署ZooKeeper(Standalone)
install_ZooKeeper(){mkdir /${proj_base_name}/zk
cd /${proj_base_name}/bao
wget https://repo.huaweicloud.com/apache/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz --no-check-certificate
tar zxvf apache-zookeeper-3.5.8-bin.tar.gz -C /${proj_base_name}/zkcd /${proj_base_name}/zk/apache-zookeeper-3.5.8-bin
cp conf/zoo_sample.cfg conf/zoo.cfg
sed -i 's/dataDir=\/tmp\/zookeeper/dataDir=\/cxy\/zk\/data/g' conf/zoo.cfgbin/zkServer.sh startinfo "ZooKeeper部署完毕~"
}#自定义HBase配置文件
diy_custom_config_HBase()
{cat >> /etc/profile <<EOF#HBase
export HBASE_HOME=/${proj_base_name}/hbase/hbase-2.3.6
export PATH=\$PATH:\$HBASE_HOME/bin
export PATH=\$PATH:\$HBASE_HOME/sbin
EOFsource /etc/profilecd /${proj_base_name}/hbase/hbase-2.3.6# 修改 hbase-env.sh
cat >> conf/hbase-env.sh <<EOFexport JAVA_HOME=/${proj_base_name}/jdk/jdk1.8.0_151
export HBASE_MANAGES_ZK=false #禁用自带zk
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true" #不加这个可能会报找不到object的错误EOF# 修改hbase-site.xml
cp conf/hbase-site.xml conf/hbase-site.xml.bak
rm -f conf/hbase-site.xml
touch conf/hbase-site.xml
cat >> conf/hbase-site.xml <<EOF
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>hbase.rootdir</name><value>hdfs://hadoop001:8020/HBase</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.zookeeper.quorum</name><value>zk001</value></property><!-- ZooKeeper端口 --><property><name>hbase.zookeeper.property.clientPort</name><value>2181</value></property><property><name>hbase.tmp.dir</name><value>./tmp</value></property><property><name>hbase.zookeeper.property.dataDir</name> <value>/${proj_base_name}/zk/data</value></property>
</configuration>
EOFsed -i 's/localhost/hbase001/g' vim conf/regionservers./bin/start-hbase.sh}#安装 HBase
install_HBase(){mkdir /${proj_base_name}/hbase
cd /${proj_base_name}/baowget https://repo.huaweicloud.com/apache/hbase/2.3.6/hbase-2.3.6-bin.tar.gz --no-check-certificate
tar zxvf hbase-2.3.6-bin.tar.gz -C /${proj_base_name}/hbasediy_custom_config_HBase}install_jdk
install_Hadoop
install_ZooKeeper
install_HBase
使用方法:
$ vim install-HBase-Ubuntu20.sh
$ chmod +x install-HBase-Ubuntu20.sh
$ ./install-HBase-Ubuntu20.sh
# 感谢淘客科技提供的实验资源环境
二、验证
#方式一:查看端口监听,以确定服务正常启动
$ netstat -apn | grep 16000
$ netstat -apn | grep 16010#方式二:查看java进程
$ source /etc/profile
$ jps | grep "HMaster\|HRegionServer"
# 正常情况下应当有HMaster、HRegionServer等进程。#方式三:进入zk目录,并连接,查看zk中的相关数据信息
cd /cxy/zk/apache-zookeeper-3.5.8-bin
bin/zkCli.sh -server 127.0.0.1:2181
ls /hbase
quit#hdfs中的HBase数据
访问:http://公网IP:9870/explorer.html#/HBase#方式四:UI界面访问,请参看控制台信息
访问:http://公网IP:16010

三、入门体验
#连接HBase
hbase shell#创建表
create 'test', 'cf'#确认表是否存在
list 'test'#查看表详细信息
describe 'test'#put数据
put 'test', 'row1', 'cf:a', 'value1'
put 'test', 'row2', 'cf:b', 'value2'
put 'test', 'row3', 'cf:c', 'value3'#scan表数据
scan 'test'#根据主键获取一行数据
get 'test', 'row1'#禁用/启用表
disable 'test'
enable 'test'#drop删除表,务必要先disable
disable 'test'
drop 'test'#退出hbase shell
exit
更多信息可访问官网:https://hbase.apache.org/index.html
当然,您也可以关注我,关注后续相关博文。
往期精彩内容推荐
云原生:10分钟了解一下Kubernetes架构
云原生:5分钟了解一下Kubernetes是什么
「快速部署」第二期清单
「快速部署」第一期清单
相关文章:
【快捷部署】023_HBase(2.3.6)
📣【快捷部署系列】023期信息 编号选型版本操作系统部署形式部署模式复检时间023HBase2.3.6Ubuntu 20.04tar包单机2024-05-07 注意:本脚本非全自动化脚本,有2次人工干预,第一次是确认内网IP,如正确直接回车即可&#…...
Nginx配置项详解
Nginx,以其高性能、稳定性强、资源消耗低的特性,成为众多网站和应用首选的Web服务器及反向代理服务器。其配置文件的灵活性和丰富性是其强大功能的关键所在。本文将深入解析Nginx配置文件中的核心概念与关键配置项,帮助您更好地理解和定制Ngi…...
解决iview(view ui)中tabs组件中使用图片预览组件ImagePreview,图片不显示问题
同学们可以私信我加入学习群! 正文开始 前言一、问题描述二、原因分析三、解决方案总结 前言 最近在写个人项目的web端和浏览器插件,其中一个功能是base64和图片的转换。因为分成四个小功能,所以使用的iview的tabs来展示不同功能,…...
R2S+ZeroTier+Trilium
软路由使用ZeroTier搭建远程笔记 软路由使用ZeroTier搭建远程笔记 环境部署 安装ZeroTier安装trilium 环境 软路由硬件:友善 Nanopo R2S软路由系统:OpenWrt,使用第三方固件nanopi-openwrt。内网穿透:ZeroTier。远程笔记&…...
10 华三vlan技术介绍
AI 解析 -Kimi-ai Kimi.ai - 帮你看更大的世界 (moonshot.cn) 虚拟局域网(VLAN)技术是一种在物理网络基础上创建多个逻辑网络的技术。它允许网络管理员将一个物理网络分割成多个虚拟的局域网,这些局域网在逻辑上是隔离的,但实际…...
实现一个聊天室可发送消息语音图片视频表情包(任意文件)
文章目录 如何跑通代码仓库地址客户端登录发送消息接受消息发送文件接受文件 服务端接受消息并发送给各个客户端接受文件并发送给各个客户端 如何跑通 将手机和电脑都连自己的热点先运行服务器得到可监听的地址更新客户端安卓消息线程和文件线程的socker目标地址为可监听地址然…...
【SpringMVC 】什么是SpringMVC(一)?如何创建一个简单的springMvc应用?
文章目录 SpringMVC第一章1、什么是SpringMVC2、创建第一个SpringMVC的应用1-3步第4步第5步第6步7-8步3、基本语法1、进入控制器类的方式方式1:方式2:方式3:方式4:方式5:2、在控制器类中取值的方式方式1:方式2:方式3:方式4:方式5:方式6:超链接方式7:日期方式8:aja…...
【配置】IT-Tools部署
github地址 docker运行如下,记得打开云服务器的9090端口 docker run -d --name it-tools --restart unless-stopped -p 9090:80 corentinth/it-tools:latestip:9090查看,很香大部分工具都有...
【Python】如何训练模型并保存本地和加载模型
这个年纪的我们 爱情跟不上分开的节奏 这个年纪的我们 更珍惜难得的自由 这个年纪的我们 比起从前更容易感动 这个年纪的我们 徘徊在理想与现实之中 🎵 齐一《这个年纪》 逻辑回归是一种常用的分类算法,能够根据输入特征预测目标变…...
浅谈如何利用 AI 提高内容生产效率?|TodayAI
在数字化时代,内容的创建和分发速度变得尤为关键。人工智能(AI)技术提供了加速这一过程的可能性,不仅提升了生产效率,还改善了内容的质量和受众的接受度。本文深入探讨AI如何在内容生成、分发与推广,以及内…...
毕业论文答辩PPT怎么做?推荐3个ai工具帮你一键生成答辩ppt
在我原本的认知里面,答辩PPT是要包含论文各个章节的,在答辩时需要方方面面都讲到的,什么摘要、文献综述、实证分析、研究结果样样不落。但是,这大错特错! 答辩PPT环节时长一般不超过5分钟,老师想要的答辩P…...
力扣 5-11
704. 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 这道题目的前提是数组为有序数组,同时题目还强…...
redisson 使用脚本实现判断元素不在队列中则插入的原子操作
脚本逻辑: 取出队列所有元素遍历元素查找值是否存在不存在则推入 final String scriptText """local valuesInTarget redis.call(lrange, KEYS[1], 0, -1);local index 0;for i, v in ipairs(valuesInTarget) doif v value thenindex ibreake…...
LLaMA详细解读
LLaMA 是目前为止,效果最好的开源 LLM 之一。精读 LLaMA 的论文及代码,可以很好的了解 LLM 的内部原理。本文对 LLaMA 论文进行了介绍,同时附上了关键部分的代码,并对代码做了注释。 摘要 LLaMA是一个系列模型,模型参…...
纯血鸿蒙APP实战开发——页面间共享组件实例的案例
介绍 本示例提供组件实例在页面间共享的解决方案:通过Stack容器,下层放地图组件,上层放Navigation组件来管理页面,页面可以共享下层的地图组件,页面中需要显示地图的区域设置为透明,并参考触摸交互控制&am…...
华为机考入门python3--(22)牛客22- 汽水瓶
分类:数字 知识点: 整除符号// 5//3 1 取余符号% 5%3 2 题目来自【牛客】 import sysdef calc_soda_bottles(n):if n 0: # 结束输入,不进行处理returnelse:# 循环进行汽水换算total_drunk 0 # 记录总共喝了多少瓶汽水while…...
Xilinx 千兆以太网TEMAC IP核简介
Xilinx 公司提供了千兆以太网MAC控制器的可参数化LogiCORET™IP解决方案,通过这个IPCore可以实现FPGA与外部网络物理层芯片的互连。基于Xilinx FPGA 的以太网设计,大大降低了工程的设计复杂度,缩短了开发周期,加快了产品的面市速度…...
激光测径仪在胶管生产中扮演着什么角色?
关键词:激光测径仪,胶管,胶管测径仪,在线测径仪 胶管生产的基本工序为混炼胶加工、帘布及帆布加工、胶管成型、硫化等。不同结构及不同骨架的胶管,其骨架层的加工方法及胶管成型设备各异。 全胶胶管因不含骨架层,只需使用压出机压出胶管即可&…...
数据结构与算法===递归
文章目录 定义适用场景爬楼梯代码实现 小结 定义 递归(Recursion)是指函数的自身调用。 这个算法演变为了程序员之间的梗,所表达的意思近似于“套娃”,表示不断重复引用别人的话从而产生循环。 适用场景 这个应该很多的,像一些树的遍历&am…...
面试官:BIO、NIO 和 AIO 有什么区别?
BIO(Blocking I/O)、NIO(Non-blocking I/O)和AIO(Asynchronous I/O)是Java中用于处理I/O操作的三种不同的编程模型. BIO适用于连接数较少的情况,NIO适用于连接数较多但连接活跃度不高的情况&…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...
