Hbase完全分布式部署与安装

Hbase完全分布式部署与安装

一、案例实验环境

操作系统IP地址主机名备注
centos7.9192.168.10.128node1jdk-8u171-linux-x64.rpm hadoop-2.6.5.tar.gz hbase-1.0.2-bin.tar.gz
centos7.9192.168.10.129node2jdk-8u171-linux-x64.rpm
centos7.9192.168.10.130node3jdk-8u171-linux-x64.rpm

关闭防火墙(所有节点全部执行)

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld</span></span>

关闭selinux

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@localhost ~]# sed -i /^SELINUX/s/enforcing/disabled/  /etc/selinux/config  
[root@localhost ~]# reboot  </span></span>

修改主机名

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@localhost ~]# hostnamectl set-hostname node1    192.168.10.128
[root@localhost ~]# hostnamectl set-hostname node2    192.168.10.129
[root@localhost ~]# hostnamectl set-hostname node3    192.168.10.130</span></span>

修改hosts文件(/etc/hosts),所有节点执行

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# cat >>/etc/hosts <<EOF
192.168.10.128 node1
192.168.10.129 node2
192.168.10.130 node3
EOF</span></span>

搭建时间同步服务,所有节点全部执行(此处同步的是阿里云服务器时间)

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# yum -y install ntpdate
[root@node1 ~]# ntpdate ntp.aliyun.com
19 Jul 11:48:34 ntpdate[8321]: step time server 203.107.6.88 offset 545406.063268 sec
[root@node1 ~]# date
Tue Jul 19 11:49:02 CST 2022</span></span>

二、安装Hadoop 运行环境

1、创建用户,首先在所有节点新建用户 hduser,然后设置权限

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# groupadd hadoop      // 创建 hadoop 用户组
[root@node1 ~]# useradd -g hadoop hduser  //创建 hduser 用户
[root@node1 ~]# passwd hduser           //设置 hduser 的密码</span></span>

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# vi /etc/sudoers   //在root添加hduser ALL=(ALL) ALL</span></span>

2、安装jdk、配置免密登录

1.所有节点都安装jdk-8u171-linux-x64.rpm

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# rpm -vih jdk-8u171-linux-x64.rpm
[root@node1 ~]# vi /etc/profile   //配置环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64     //在末尾添加
export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
[root@node1 ~]# source /etc/profile    //加载环境变量
[root@node1 ~]# java -version          //验证jdk
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)</span></span>

2、配置本机 SSH 免密码登录(只在node1节点执行)

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# ssh-keygen -t rsa    //一路回车
[root@node1 ~]# ssh-copy-id node1
[root@node1 ~]# ssh-copy-id node2
[root@node1 ~]# ssh-copy-id node3</span></span>

4、安装 Hadoop

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# tar zxvf hadoop-2.6.5.tar.gz -C /home/hduser/   //解压文件指定安装目录/home/hduser
[root@node1 ~]# cd /home/hduser/
[root@node1 hduser]# mv hadoop-2.6.5/ hadoop           //解压后重命名为 hadoop</span></span>

进入“hadoop”目录,其目录结构如下:

bin:执行文件目录。包含 hadoop、hdfs、yarn 等命令,所有用户均可执行。

etc:Hadoop 配置文件都在此目录。

include:包含 C 语言接口开发所需头文件。

lib:包含 C 语言接口开发所需链接库文件。

libexec:运行 sbin 目录中的脚本会调用该目录下的脚本。

logs:日志目录,在运行过 Hadoop 后会生成该目录。

sbin:仅超级用户能够执行的脚本,包括启动和停止 dfs、yarn 等。

share: 包括 doc 和 hadoop 两个目录, 其中 doc 目录包含大量的 Hadoop帮助文档;hadoop 目录包含了运行 Hadoop 所需的所有 jar 文件,在开发中用到的 jar 文件也可在该目录找到

2、配置 hadoop 环境变量,所有节点全部执行

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hduser]# vi /etc/profile
export HADOOP_HOME=/home/hduser/hadoop    //末尾添加
export PATH=$HADOOP_HOME/bin:$PATH
[root@node1 hduser]# source /etc/profile</span></span>

3、配置 hadoop

先进入 node1 进行配置,随后将配置文件复制到 node2、node3。配置 Hadoop 主要涉及的配置文件有 7 个,都在 hadoop/etc/hadoop 文件夹下,包括:hadoop-env.sh、 yarn-env.sh、slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。具体配置如下

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# cd /home/hduser/hadoop/etc/hadoop/
[root@node1 hadoop]# vi hadoop-env.sh    //25行添加注释,在26行出入以下内容
export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64       //插入jdk的路径</span></span>

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# vi yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64   //开头部分添加此内容</span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# vi slaves         #打开并清空原内容
node2   #添加
node3    #添加
[root@node1 hadoop]# vi core-site.xml     #将最后两行删除,插入一下内容
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hduser/hadoop/tmp</value>
    </property>
</configuration></span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# vi hdfs-site.xml   在第19和21行中间插入一下内容
<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>   
        #Secondary NameNode 服务器 HTTP 地址和端口
        <value>node1:50090</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>                    
        #NameNode 存储名字空间及汇报日志的位置
        <value>file:/home/hduser/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>        
        #DataNode 存放数据块的目录列表
        <value> file:/home/hduser/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>        
        #冗余备份数量,一份数据可设置多个拷贝
        <value>2</value>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>    
        #在NameNode 和 DataNode 中启用
​
WebHDFS
        <value>true</value>
    </property>
</configuration></span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# cp mapred-site.xml.template mapred-site.xml //从末班文件中复制一个出来
[root@node1 hadoop]# vi mapred-site.xml   //在19和21行中间添加以下内容
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node1:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>node1:19888</value>
    </property>
</configuration></span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# vi yarn-site.xml    //后三行删除添加以下内容
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>node1:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>node1:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>node1:8035</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>node1:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>node1:8088</value>
    </property>
</configuration></span></span>

![image-20220719152809881](img/image-20220719152809881.png

将这 7 个文件复制到 node2、node3 的同目录下

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# scp -r /home/hduser/hadoop node2:/home/hduser
[root@node1 hadoop]# scp -r /home/hduser/hadoop node3:/home/hduser</span></span>

4、验证安装配置

(1) 在 node1上格式化 NameNode

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# cd /home/hduser/hadoop/
[root@node1 hadoop]# bin/hdfs namenode -format
[root@node1 hadoop]# sbin/start-dfs.sh    //启动
​
也可以使用
sbin/start-all.sh 同时启动
​</span></span>

5、查看进程启动YARN

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# jps         //查看Java进程
[root@node1 hadoop]#sbin/start-yarn.sh   启动</span></span>

查看集群状态

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# bin/hdfs dfsadmin -report  </span></span>

5、安装Hbase

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# tar zxvf hbase-1.0.2-bin.tar.gz -C /home/hduser/   //解压指定解压目录/home/hduser/
[root@node1 ~]# cd /home/hduser/hbase-1.0.2/   //进入解压路径</span></span>

修改hbase配置文件

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hbase-1.0.2]# vi conf/hbase-site.xml //删除末尾两行插入以下内容
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://node1:9000/hbase01</value>
        <description>配置 HRegionServer 的数据库存储目录</description>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
        <description>配置 HBase 为完全分布式</description>
    </property>
    <property>
        <name>hbase.master</name>
        <value>node1:60000</value>
        <description>配置 HMaster 的地址</description>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>node1,node2,node3</value>
        <description>配置 ZooKeeper 集群服务器的位置</description>
    </property>
</configuration></span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hbase-1.0.2]#  vi conf/hbase-env.sh  //在末尾添加一下内容
export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64
export HADOOP_HOME=/home/hduser/hadoop
export HBASE_HOME=/home/hduser/hbase-1.0.2
export HBASE_MANAGES_ZK=true
[root@node1 hbase-1.0.2]# vi conf/regionservers  //清空内容
node2
node3</span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hbase-1.0.2]# scp -r /home/hduser/hbase-1.0.2 node2:/home/hduser/
[root@node1 hbase-1.0.2]# scp -r /home/hduser/hbase-1.0.2 node:/home/hduser/</span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hbase-1.0.2]# bin/start-hbase.sh   //启动Hbase
[root@node1 hbase-1.0.2]# bin/hbase shell   //登入数据库
hbase(main):001:0> status</span></span>

创建一个表kgc

<span style="background-color:#f8f8f8"><span style="color:#333333">hbase(main):002:0> create 'kgc' ,'nianji','chengji'
hbase(main):003:0> list
TABLE                                                     
kgc                                                       
1 row(s) in 0.0180 seconds
​
=> ["kgc"]
hbase(main):004:0> put 'kgc','xiaoyi','chengji:shengwu','100'  //插入一条数据,小易 成绩生物100
hbase(main):006:0> describe 'kgc'    //查看表的信息
hbase(main):007:0> scan 'kgc'        //扫描表
ROW             COLUMN+CELL                               
 xiaoyi         column=chengji:shengwu, timestamp=16582878
                01012, value=100                          
1 row(s) in 0.0440 seconds
hbase(main):011:0> put 'kgc','sanjiang','chengji:yingyu','150'  //插入数据
hbase(main):023:0> scan 'kgc'        扫描表信息
ROW             COLUMN+CELL                               
 sanjiang       column=chengji:yingyu, timestamp=165828808
                3428, value=150                           
 xiaoyi         column=chengji:shengwu, timestamp=16582878
                01012, value=100                          
2 row(s) in 0.0070 seconds</span></span>

6、 MapReduce 与 Hbase

  • 将 hbase-site.xml 复制到/home/hduser/hadoop/etc/hadoop/ 下

<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hbase-1.0.2]#  cp /home/hduser/hbase-1.0.2/conf/hbase-site.xml  /home/hduser/hadoop/etc/hadoop/  
编辑hadoop-env.sh,增加一行
[root@node1 hbase-1.0.2]# vi /home/hduser/hadoop/etc/hadoop/hadoop-env.sh //在末尾添加
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/hduser/hbase-1.0.2/lib/*
最后注意将上述操作的两个文件,复制到 Hadoop 集群中其它节点上
[root@node1 hbase-1.0.2]# scp /home/hduser/hadoop/etc/hadoop/hbase-site.xml /home/hduser/hadoop/etc/hadoop/hadoop-env.sh node2:/home/hduser/hadoop/etc/hadoop/
[root@node1 hbase-1.0.2]# scp /home/hduser/hadoop/etc/hadoop/hbase-site.xml /home/hduser/hadoop/etc/hadoop/hadoop-env.sh node3:/home/hduser/hadoop/etc/hadoop/
[root@node1 hduser]# cd /home/hduser/
使用以下命令测试 kgc是hbase里面的表,可以统计出这个表的行数
[root@node1 hduser]# hadoop/bin/hadoop jar /home/hduser/hbase-1.0.2/lib/hbase-server-1.0.2.jar rowcounter kgc
​</span></span>

分布式数据库 分布式数据库 分布式数据库 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 网上的 网上的 软件系统, 软件系统, 软件系统, 具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值