📣【快捷部署系列】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是什么
「快速部署」第二期清单
「快速部署」第一期清单