当前位置:   article > 正文

Hbase完全分布式部署与安装_虚拟机完全分布式hbase安装

虚拟机完全分布式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

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

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

关闭selinux

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

修改主机名

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

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

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

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

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

二、安装Hadoop 运行环境

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

  1. <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# groupadd hadoop     // 创建 hadoop 用户组
  2. [root@node1 ~]# useradd -g hadoop hduser //创建 hduser 用户
  3. [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

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

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

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

4、安装 Hadoop

  1. <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# tar zxvf hadoop-2.6.5.tar.gz -C /home/hduser/   //解压文件指定安装目录/home/hduser
  2. [root@node1 ~]# cd /home/hduser/
  3. [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 环境变量,所有节点全部执行

  1. <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hduser]# vi /etc/profile
  2. export HADOOP_HOME=/home/hduser/hadoop   //末尾添加
  3. export PATH=$HADOOP_HOME/bin:$PATH
  4. [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。具体配置如下

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

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

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

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

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

4、验证安装配置

(1) 在 node1上格式化 NameNode

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

5、查看进程启动YARN

  1. <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# jps         //查看Java进程
  2. [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

  1. <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/
  2. [root@node1 ~]# cd /home/hduser/hbase-1.0.2/   //进入解压路径</span></span>

修改hbase配置文件

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

创建一个表kgc

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

6、 MapReduce 与 Hbase

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

  1. <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/  
  2. 编辑hadoop-env.sh,增加一行
  3. [root@node1 hbase-1.0.2]# vi /home/hduser/hadoop/etc/hadoop/hadoop-env.sh //在末尾添加
  4. export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/hduser/hbase-1.0.2/lib/*
  5. 最后注意将上述操作的两个文件,复制到 Hadoop 集群中其它节点上
  6. [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/
  7. [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/
  8. [root@node1 hduser]# cd /home/hduser/
  9. 使用以下命令测试 kgc是hbase里面的表,可以统计出这个表的行数
  10. [root@node1 hduser]# hadoop/bin/hadoop jar /home/hduser/hbase-1.0.2/lib/hbase-server-1.0.2.jar rowcounter kgc
  11. ​</span></span>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/790507
推荐阅读
相关标签
  

闽ICP备14008679号