当前位置: 首页 > news >正文

Hadoop3.x完全分布式环境搭建Zookeeper和Hbase

先在主节点上进行安装和配置,随后分发到各个从节点上。

1. 安装zookeeper

1.1 解压zookeeper并添加环境变量

1)解压zookeeper到/usr/local文件夹下

tar -zxvf /usr/local

2)进入/usr/local文件夹将apache-zookeeper-3.8.0-bin改名为zookeeper

cd /usr/localmv apache-zookeeper-3.8.0-bin/ zookeeper

3)添加环境变量

vim /etc/profile
# zookeeper环境变量
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

使配置立即生效

source /etc/profile

1.2 进行集群配置

1)创建文件夹

$ZOOKEEPER_HOME/下创建data/zkData

mkdir datamkdir data/zkData

2)进入$ZOOKEEPER_HOME/conf文件夹下

cd $ZOOKEEPER_HOME/conf

复制模版文件

cat zoo_sample.cfg >> zoo.cfg

修改zoo.cfg

…………
dataDir=/usr/local/zookeeper/data/zkData
…………
# 集群配置
server.1=hadoop00:2888:3888
server.2=hadoop01:2888:3888
server.3=hadoop02:2888:3888

3)在$ZOOKEEPER_HOME/data/zkData/目录下创建myid文件

cd $ZOOKEEPER_HOME/data/zkDatatouch myid

myid文件内容为编号,与zoo.cfg中集群配置的编号对应,如果是server.1(即hadoop00)的myid内容为1,依次类推。

echo 1 >> myid
scp /usr/local/zookeeper/ hadoop01:/usr/local/ # 不要忘记改myid
scp /usr/local/zookeeper/ hadoop02:/usr/local/
scp /etc/profile hadoop01:/etc/profile # 不要忘记执行 source /etc/profile 使文件立即生效
scp /etc/profile hadoop02:/etc/profile

4)启动zookeeper

分别在三台虚拟机上启动zookeeper

zkServer.sh start  # 运行
zkServer.sh stop   # 停止
zkServer.sh status # 查看状态,需要启动所有结点的zookeeper才显示enabled

在这里插入图片描述

2. 安装Hbase

2.1 解压Hbase并添加环境变量

1)解压hbase并重命名

tar -zxvf hbase-2.5.3-bin.tar.gz -C /usr/local/
cd /usr/local
mv hbase-2.5.3-bin.tar.gz hbase

2)添加环境变量

vim /etc/profile
…………
# hbase环境变量
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin

使修改立即生效:

source /etc/profile

2.2 进行集群配置

1)修改hbase-env.sh文件

进入/usr/local/hbase/conf目录下

cd /usr/local/hbase/conf

修改hbase-env.sh(文件内容前插入)

…………
# JDK路径
export JAVA_HOME=/usr/local/jdk# 设置使用外置的zookeeper
export HBASE_MANAGES_ZK=false

2)修改hbase-site.xml

<configuration><property><name>hbase.master.maxclockskew</name><value>180000</value></property><!-- 指定HDFS实例地址 --><property><name>hbase.rootdir</name><value>hdfs://hadoop00:9000/hbase</value></property><!-- 启用分布式集群 --><property><name>hbase.cluster.distributed</name><value>true</value></property><!-- ZooKeeper配置:设置ZooKeeper集群节点 --><property><name>hbase.zookeeper.quorum</name><value>hadoop00,hadoop01,hadoop02</value></property><!-- ZooKeeper配置:设置ZooKeeper数据目录 --><property><name>hbase.zookeeper.property.dataDir</name><value>/usr/local/zookeeper/data/zkData</value></property><property><name>hbase.tmp.dir</name><value>/usr/local/hbase/tmp</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property>
</configuration>

3)复制hadoop的core-site.xmlhdfs-site.xml到hbase的conf目录下:

cp /usr/local/hadoop/etc/hadoop/core-site.xml /usr/local/hbase/conf/
cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/hbase/conf/

4)在/usr/local/hbase/conf/文件夹下的regionservers文件添加集群的所有主机的主机名

vim regionservers
# 将文件内容中删除后添加
hadoop00
hadoop01
hadoop02

5)分发和运行

将hbse和环境变量分发到另外两台从节点:

scp -r /usr/local/hbase/ hadoop01:/usr/local/hbase
scp -r /usr/local/hbase/ hadoop02:/usr/local/hbasescp -r /etc/profile hadoop01:/etc/profile
scp -r /etc/profile hadoop02:/etc/profile

运行hbase

注:hbase启动之前,一定要先启动zookeeper,且集群所有的节点都要启动!!!否则使用不了hbase即使守护进程都存在

检查zookeeper的状态

在主节点上执行:

zkServer.sh status

出现下图为正常:

在这里插入图片描述

start-hbase.sh # 运行
stop-hbase.sh  # 停止

进入hbase shell,查看其状态是否正常。

hbase shell
status	 # 进入shell后执行

如下图则正常:

在这里插入图片描述

相关文章:

  • 工作中常用的RabbitMQ实践
  • GPT-4 变懒了?官方回复
  • Linux 网络协议
  • 秋招春招,我没有拿到一个offer怎么办?
  • 关于IDEA中maven的作用以及如何配置MAVEN
  • springboot(ssm滁州市特产销售系统 特产商城系统Java系统
  • SQLMap介绍
  • 低多边形3D建模石头材质纹理贴图
  • 【微服务】springboot整合quartz使用详解
  • 无人零售店,凭借黑科技引领,它的前景如何?
  • GDPU 数据结构 天码行空13
  • 用户登录权限
  • 【C++】C++中的String类详解及模拟实现示例
  • 【QT】Qt常用数值输入和显示控件
  • 【GlobalMapper精品教程】067:基于无人机航拍照片快速创建正射影像图
  • 时间复杂度分析经典问题——最大子序列和
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Linux中的硬链接与软链接
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • ReactNative开发常用的三方模块
  • V4L2视频输入框架概述
  • Wamp集成环境 添加PHP的新版本
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 盘点那些不知名却常用的 Git 操作
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 提醒我喝水chrome插件开发指南
  • 网页视频流m3u8/ts视频下载
  • 译米田引理
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • Java数据解析之JSON
  • scrapy中间件源码分析及常用中间件大全
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​数据链路层——流量控制可靠传输机制 ​
  • ###STL(标准模板库)
  • (done) 声音信号处理基础知识(2) (重点知识:pitch)(Sound Waveforms)
  • (floyd+补集) poj 3275
  • (四)软件性能测试
  • (五)activiti-modeler 编辑器初步优化
  • (一) storm的集群安装与配置
  • (一)WLAN定义和基本架构转
  • (转)3D模板阴影原理
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • .gitignore文件忽略的内容不生效问题解决
  • .NET Core中的时区转换问题
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .NET中的Exception处理(C#)
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [51单片机] 简单介绍 (一)