【快捷部署】023_HBase(2.3.6)

news2024/11/26 0:56:17

ITHW023.jpg


📣【快捷部署系列】023期信息

编号选型版本操作系统部署形式部署模式复检时间
023HBase2.3.6Ubuntu 20.04tar包单机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=cxy

g_inner_ip=$(hostname -I)
info "参考IP地址:"${g_inner_ip}

read -p "请问,您当前服务器的内网IP地址是?(默认为:${g_inner_ip}):" inner_ip

inner_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	hbase001

EOF


# 安装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.gz
 
tar 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
EOF

source /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}/hadoop

cat >> /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/sbin

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
EOF
 
source /etc/profile
hadoop version
 
diy_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.sh

info "安装完成,访问: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}/zk

cd /${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.cfg

bin/zkServer.sh start

info "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
EOF
 
source /etc/profile


cd /${proj_base_name}/hbase/hbase-2.3.6

# 修改 hbase-env.sh 
cat >> conf/hbase-env.sh <<EOF

export 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>
EOF


sed -i 's/localhost/hbase001/g' vim conf/regionservers


./bin/start-hbase.sh

}


#安装 HBase
install_HBase(){

mkdir /${proj_base_name}/hbase
cd /${proj_base_name}/bao

wget 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}/hbase

diy_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-webui.png


三、入门体验

#连接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是什么
「快速部署」第二期清单
「快速部署」第一期清单

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么软件能在桌面提醒我 电脑桌面提醒软件

在这个信息爆炸的时代&#xff0c;我们每个人每天都需要处理海量的信息和任务。有时候&#xff0c;即便是再细心的人&#xff0c;也难免会因为事情太多而忘记一些重要的细节。 我就经常遇到这样的问题&#xff0c;明明记得自己有个重要的会议要参加&#xff0c;或者有个关键的…

扭蛋机小程序在互联网浪潮中的崛起与发展

随着互联网的快速发展&#xff0c;各种线上娱乐方式层出不穷&#xff0c;其中扭蛋机小程序凭借其独特的魅力&#xff0c;在互联网浪潮中迅速崛起并发展壮大。扭蛋机小程序不仅打破了传统扭蛋机的地域限制和操作不便&#xff0c;还融入了丰富的互动元素和便捷性&#xff0c;满足…

纯血鸿蒙APP实战开发——自定义安全键盘案例

介绍 金融类应用在密码输入时&#xff0c;一般会使用自定义安全键盘。本示例介绍如何使用TextInput组件实现自定义安全键盘场景&#xff0c;主要包括TextInput.customKeyboard绑定自定义键盘、自定义键盘布局和状态更新等知识点。 效果图预览 实现思路 1. 使用TextInput的cu…

为什么你的企业需要微信小程序?制作微信小程序有什么好处?

什么是小程序&#xff1f; WeChat小程序作为更大的WeChat生态系统中的子应用程序。它们就像更小、更基本的应用程序&#xff0c;在更大的应用程序&#xff08;WeChat&#xff09;中运行。这些程序为用户提供了额外的高级功能&#xff0c;以便在使用WeChat服务时加以利用。根据…

linux系统 虚拟机的安装详细步骤

window&#xff1a; (1) 个人&#xff1a;win7 win10 win11 winxp (2)服务器&#xff1a;windows server2003 2008 2013 linux&#xff1a; (1)centos7 5 6 8 (2)redhat (3)ubuntu (4)kali 什么是linux: 主要是基于命令来完成各种操作&#xff0c;类似于DO…

0基础学PHP有多难?

php作为web端最佳的开发语言&#xff0c;没有华而不实&#xff0c;而是经受住了时间考验&#xff0c;是一门非常值得学习的编程语言。 目前市场上各种网站、管理系统、小程序、APP等&#xff0c;基本都是使用PHP开发的&#xff0c;也侧面反映了PHP的需求以及学习的必要性&…

UTONMOS:真正的“游戏元宇宙”还有多遥远?

元宇宙来源于科幻小说的概念&#xff0c;已成为真实世界中的流行语。围绕这一新兴概念&#xff0c;一场产、学、研的实践正在展开。 数字化转型中&#xff0c;元宇宙能否担当大任&#xff1f;这些新概念在中国语境下如何落地&#xff1f;本文将深入挖掘国内元宇宙游戏产业的发…

数据结构-线性表-应用题-2.2-6

从有序顺序表中删除所有其值重复的元素&#xff0c;使表中的元素的值均不同 有序顺序表&#xff0c;值相同的元素一定在连续的位置上&#xff0c;初始时将第一个元素是为非重复的有序表&#xff0c;之后依次判断后面的元素是否与前面的非重复表的最后一个元素相同&#xff0c;…

当AI遇见现实:数智化时代的人类社会新图景

文章目录 一、数智化时代的机遇二、数智化时代的挑战三、如何适应数智化时代《图解数据智能》内容简介作者简介精彩书评目录精彩书摘强化学习什么是强化学习强化学习与监督学习的区别强化学习与无监督学习的区别 前言/序言 随着科技的日新月异&#xff0c;我们步入了一个前所未…

大数据硬核技能进阶:Spark3实战智能物业运营系统

Spark Streaming 是 Spark 的一个子模块&#xff0c;用于快速构建可扩展&#xff0c;高吞吐量&#xff0c;高容错的流处理程序。具有以下特点&#xff1a; 大数据硬核技能进阶&#xff1a;Spark3实战智能物业运营系统(网盘超清) 通过高级 API 构建应用程序&#xff0c;简单易…

【详细介绍下图搜索算法】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

技术分享-上海泗博MPI转以太网模块MPI-131实现Node-RED直接访问西门子PLC数据

上海泗博自动化MPI-131是一款用于西门子S7系列PLC&#xff08;包括S7-200、S7-300、S7-400&#xff09;以及西门子数控机床&#xff08;如840D、840DSL等&#xff09;的以太网通讯模块&#xff0c;无需编程&#xff0c;即插即用&#xff0c;支持通过模块上下载PLC程序和数据监控…

翻译《The Old New Thing》 - What is the deal with the ES_OEMCONVERT flag?

What is the deal with the ES_OEMCONVERT flag? - The Old New Thinghttps://devblogs.microsoft.com/oldnewthing/20050719-12/?p34893 Raymond Chen 在 2005年07月19日 ES_OEMCONVERT 标志是怎么回事&#xff1f; 简要 文章讨论了 ES_OEMCONVERT 编辑控件风格的起源和用途…

DNS域名解析服务的部署及优化方案

实验要求: 1.配置2台服务器要求如下&#xff1a; a&#xff09;服务器1&#xff1a; 主机名&#xff1a;dns-master.timinglee.org ip地址&#xff1a; 172.25.254.100 配置好软件仓库 b&#xff09;服务器2&#xff1a; 主机名&#xff1a;dns-slave.timinglee.org ip地址&am…

element-plus el-time-picker 时间段选择(可多选)

实现一个如图的时间段选择器 处理好时间回显逻辑&#xff0c;组件内[‘’,‘’],后端数据[{startTime:‘’,endTime:‘’}]处理好加和减的显示逻辑 <template><div><div v-for"(item, index) in currentChoose" :key"index" class"fl…

Linux实操之常用指令详解

文章目录 vi 和 vimvi 和 vim 基本使用 开机、重启和用户登录注销关机&重启命令用户登录和注销 用户管理基本介绍基本语法细节说明修改密码删除用户查询用户信息指令切换用户查看当前用户/登录用户用户组 实用指令指定运行级别帮助指令文件目录类时间和日期类搜索查找类压缩…

向各位请教一个问题

这是菜鸟上的一道题目&#xff0c;单单拿出来问问大家&#xff0c;看看能不能解惑 &#xff0c;谢谢各位&#xff01; 题目25&#xff1a;求12!3!...20!的和 解题思路&#xff1a;这个题不知道为什么我用DEV C 5.11显示出来为0.000000&#xff0c;可能版本有问题&#xff1f;&a…

装饰器模式-原理分析以及动手练习

目录 应用场景涉及的角色和类&#xff08;个人理解&#xff09;涉及的角色组件&#xff08;标准&#xff09;基本实现 Demo&#xff08;可以直接 copy 跑一下看效果&#xff09;自己动手实战需求参考答案 相关话题参考文章 应用场景 需要给一个现有类添加附加功能&#xff0c;…

如何安全可控地进行内外网跨网络传输文件?

跨网络传输文件通常指的是在不同的网络环境之间移动数据&#xff0c;这在现代企业运营中非常常见。随着网络技术的高速发展&#xff0c;为了有效地保护内部的核心数据资产&#xff0c;企业一般会采用内外网隔离的策略。在进行内外网跨网络传输文件时&#xff0c;需要考虑多种因…

Java性能优化(一):Java基础-ArrayList和LinkedList

引言 集合作为一种存储数据的容器&#xff0c;是我们日常开发中使用最频繁的对象类型之一。JDK为开发者提供了一系列的集合类型&#xff0c;这些集合类型使用不同的数据结构来实现。因此&#xff0c;不同的集合类型&#xff0c;使用场景也不同。 很多同学在面试的时候&#x…