【Hadoop和Hbase集群配置】3台虚拟机、jdk+hadoop+hbase下载和安装、环境配置和集群测试
目录
一、环境
二、虚拟机配置
三、 JDK、Hadoop、HBase的安装和配置
【安装和配置JDK】
【安装和配置Hadoop】
【安装和配置Hbase】
四、 Hadoop和HBase集群测试
【Hadoop启动测试】
【Hbase启动测试】
一、环境
OS: CentOS-7
JDK: v1.8.0_131
Hadoop: v2.7.6
Hbase: v1.3.1
(自行到官网下载)
二、虚拟机配置
1、下载和安装VMware和CentOS-7,创建和设置虚拟机,配置运行内存2G。硬盘存储空间20G,选取NAT网络适配器。设置root密码和创建用户,进入虚拟机终端,在终端执行sudo passwd root,可重新设置用户密码,使用su root命令登录root用户。

2、克隆虚拟机,三台虚拟机分别命名为Hadoop1、Hadoop2、Hadoop3。


3、进行linux系统网络配置,vi /etc/hostname修改主机名(以下只截了Hadoop2的图)。


4、 查看虚拟网络编辑器,确认起始和终止IP地址(看自己的,不要照抄),我的起始ip地址为192.168.204.128,因此3个虚拟机的IP地址可以设置为:
192.168.204.134 Hadoop1
192.168.204.135 Hadoop2
192.168.204.136 Hadoop3


5、分别在虚拟机Hadoop1、Hadoop2、Hadoop3中执行vi /etc/hosts,添加ip映射,在文件中添加上述的3个虚拟机IP地址。

6、修改虚拟机网卡配置,进入vi /etc/udev/rules.d/70-persistent-net.rules后添加如下内容。

7、修改静态ip地址,进入vi /etc/sysconfig/network-scripts/ifcfg-ens33后添加如下内容(MAC地址在“虚拟机设置”-“网络适配器”-“高级”中查看)。

HWADDR=(MAC地址)
IPADDR=192.168.204.135(该虚拟机IP地址)
GATEWAY=192.168.204.2
NETMASK=255.255.255.0
DNS1=8.8.8.8

8、reboot重启系统
![]()
9、检验成功用ping 虚拟机名测试(显示出Hadoop2的IP地址192.168.204.135),Ctrl C停止

10、检测网络连接,保证个人计算机连网状态,执行ping www.baidu.com命令,检测虚拟机网络连接是否正常。

11、看是否安装和开启SSH服务,分别执行“rpm -qa | grep ssh”和“ps -ef | grep sshd”命令,查看当前虚拟机是否安装了SSH服务,以及SSH服务是否启动。

注:已重复Hadoop1和Hadoop3如上流程,完成网络配置,截图已忽略。
12、重启ssh服务,systemctl restart sshd命令(忘记截图),使用远程连接工具SecureCRT。在SecureCRT主界面依次单击“File”-“Quick Connect”选项进入Quick Connect对话框创建快速连接,输入虚拟机对应的ip地址和用户名及密码(以下为连接Hadoop2截图)。



13、配置ssh免密登录(3个虚拟机都操作):首先执行“systemctl restart sshd”命令,生成密钥,接着执行“cd /root/.ssh/”命令进入存储密钥文件的目录,在该目录下执行“ll”命令查看密钥文件,然后将生成的公钥文件复制到集群中相关联的所有虚拟机,实现通过虚拟机Hadoop2可以免密登录虚拟机Hadoop1、Hadoop2和Hadoop3。


Hadoop1:ssh-copy-id hadoop1

Hadoop2:ssh-copy-id hadoop2

Hadoop3:ssh-copy-id hadoop3

14、三个虚拟机分别执行ssh Hadoop1/2/3(除了自己),检验是否成功设置免密登录。
Hadoop1免密登录Hadoop2和Hadoop3

Hadoop2免密登录Hadoop1、Hadoop3

Hadoop3免密登录Hadoop1、Hadoop2

15、 关闭防火墙,执行systemctl stop firewalld与systemctl disable firewalld两条命令。

三、 JDK、Hadoop、HBase的安装和配置
1、创建目录,依次在虚拟机Hadoop1、Hadoop2和Hadoop3的根目录下创建以下目录:
创建存放数据的目录:mkdir -p /export/data/
创建存放安装程序的目录:mkdir -p /export/servers/
创建存放安装包的目录:mkdir -p /export/software/



【安装和配置JDK】
2、上传JDK安装包
在虚拟机Hadoop1 的/export/software目录执行rz命令,将JDK安装包上传,执行ll命令,查看该目录包含的内容,确认是否上传成功。


3、解压JDK,将JDK安装到/export/servers目录。
tar -zxvf jdk-8u131-linux-x64.tar.gz -C /export/servers/

4、切换目录进入/etc/servers,配置jdk环境变量,执行vi /etc/profile命令进入编辑环境变量的文件profile,添加以下内容。
![]()
export JAVA_HOME=/export/servers/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin

5、profile保存退出后,使用source /etc/profile命令初始化系统环境变量,执行java -version命令查看JDK版本号,验证当前虚拟机是否成功安装JDK。(此处不知为何显示的版本号是1.8.0_262而不是1.8.0_131,因为对后续操作没影响我就没去管了)。

6、通过scp命令将虚拟机Hadoop1的JDK安装目录分发至虚拟机Hadoop2和Hadoop3的/export/servers/目录。
向虚拟机Hadoop2分发JDK安装目录:
scp -r /export/servers/jdk root@hadoop2:/export/servers/

向虚拟机Hadoop3分发JDK安装目录
scp -r /export/servers/jdk root@hadoop3:/export/servers/
![]()
7、通过scp命令将虚拟机Hadoop1的系统环境变量文件profile分发至虚拟机Hadoop2和Hadoop3的/etc目录,并初始化环境变量。
向虚拟机Hadoop2分发系统环境变量文件
scp /etc/profile root@hadoop2:/etc
向虚拟机Hadoop3分发系统环境变量文件
scp /etc/profile root@hadoop3:/etc

【安装和配置Hadoop】
8、Hadoop集群部署模式(完全分布式模式),cd /export/software/进入software目录,执行rz命令上传Hadoop安装包,ll显示,验证安装是否成功。

9、解压安装Hadoop,将Hadoop安装到虚拟机Hadoop1的/export/servers目录。
tar -zxvf /export/software/hadoop-2.7.6.tar.gz -C /export/servers

10、配置Hadoop系统环境变量,执行vi /etc/profile命令进入profile,添加以下内容。保存退出后初始化环境变量。
![]()
export HADOOP_HOME=/export/servers/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

11、执行Hadoop version命令查看当前虚拟机Hadoop版本号,验证环境变量是否配置成功。

12、配置Hadoop运行环境,切换到Hadoop目录下,执行vi hadoop-env.sh命令进入文件,添加以下内容。

export JAVA_HOME=/export/servers/jdk1.8.0_131
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

13、配置Hadoop,执行vi core-site.xml命令进入文件,添加以下内容。
![]()
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/export/data/hadoop-3.1.3</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>

14、配置HDFS,执行vi hdfs-site.xml命令进入文件,添加以下内容。
![]()
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop2:9868</value>
</property>

15、配置MapReduce,执行vi mapred-site.xml命令进入文件,添加以下内容。
![]()
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.Webapp.address</name>
<value>hadoop1:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

16、配置YARN,执行vi yarn-site.xml命令进入文件,添加以下内容。
![]()
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop1:19888/jobhistory/logs</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>

17、配置Hadoop从节点服务器,执行vi workers命令,将workers文件默认的内容修改为如下内容。
![]()

18、分发Hadoop安装目录,使用scp命令将虚拟机Hadoop1的Hadoop安装目录分发至虚拟机Hadoop2和Hadoop3中存放安装程序的目录。
向虚拟机Hadoop2中分发存放安装程序的目录
scp -r /export/servers/hadoop-3.1.3 root@hadoop2:/export/servers/

向虚拟机Hadoop3中分发存放安装程序的目录
scp -r /export/servers/hadoop-3.1.3 root@hadoop3:/export/servers/

19、分发环境变量,使用scp命令将虚拟机Hadoop1的系统环境变量文件profile分发至虚拟机Hadoop2和Hadoop3的/etc目录。
向虚拟机Hadoop2中分发/etc目录
scp /etc/profile root@hadoop2:/etc
向虚拟机Hadoop3中分发/etc目录
scp /etc/profile root@hadoop3:/etc

【安装和配置Hbase】
20、安装hbase,使用rz命令上传hbase安装包(忘记截图了),ll命令显示验证安装是否成功,

21、解压安装hbase,将hbase安装到虚拟机Hadoop1的/export/servers目录。
![]()
22、配置hbase系统环境变量,执行vi /etc/profile命令进入profile,添加以下内容(最后两条)。保存退出后初始化环境变量。


![]()
23、使用yum命令安装对应的openjdk_devel。


24、执行hbase version命令查看当前虚拟机hbase版本号,验证环境变量是否配置成功。

25、进入/export/servers/hbase-1.3.1/conf目录,修改配置文件hbase-env.sh,添加如下信息。

export JAVA_HOME=/export/servers/jdk1.8.0_131
export HBASE_MANAGES_ZK=true
export HBASE_CLASSPATH=/export/servers/hadoop-2.7.6/etc/hadoop

26、修改配置文件hbase-site.xml,添加如下信息(具体的名称和ip地址要改成自己的,不能照抄)
![]()
<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.204.134:9000/hbase</value>
<description>The directory shared by regionservers.</description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>./tmp</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://192.168.204.134:60000</value>
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/export/zookeeper</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.204.134,192.168.204.135,192.168.204.136</value>
</property>

27、通过scp命令将虚拟机Hadoop1的hbase安装目录分发至虚拟机Hadoop2和Hadoop3的/export/servers/目录。
向虚拟机Hadoop2分发hbase安装目录:

向虚拟机Hadoop3分发hbase安装目录:

28、通过scp命令将虚拟机Hadoop1的系统环境变量文件profile分发至虚拟机Hadoop2和Hadoop3的/etc目录,并初始化环境变量。
向虚拟机Hadoop2分发系统环境变量文件
scp /etc/profile root@hadoop2:/etc
向虚拟机Hadoop3分发系统环境变量文件
scp /etc/profile root@hadoop3:/etc

四、 Hadoop和HBase集群测试
【Hadoop启动测试】
1、在虚拟机Hadoop1执行“hdfs namenode -format”命令,对基于完全分布式模式部署的Hadoop进行格式化HDFS文件系统的操作。

2、启动Hadoop,执行start-dfs.sh

3、启动yarn,执行start-yarn.sh

4、查看Hadoop运行状态:分别在虚拟机Hadoop1、Hadoop2和Hadoop3执行“jps”命令查看Hadoop运行状态。



5、关闭Hadoop和YARN.,执行stop-dfs.sh和stop-yarn.sh

【Hbase启动测试】
1、启动Hbase。执行start-hbase.sh

2、查看Hbase运行状态:分别在虚拟机Hadoop1、Hadoop2和Hadoop3执行“jps”命令查看。

![]()
![]()
相关文章:
【Hadoop和Hbase集群配置】3台虚拟机、jdk+hadoop+hbase下载和安装、环境配置和集群测试
目录 一、环境 二、虚拟机配置 三、 JDK、Hadoop、HBase的安装和配置 【安装和配置JDK】 【安装和配置Hadoop】 【安装和配置Hbase】 四、 Hadoop和HBase集群测试 【Hadoop启动测试】 【Hbase启动测试】 一、环境 OS: CentOS-7 JDK: v1.8.0_131 Hadoop: v2.7.6 Hb…...
超萌!HTMLCSS:超萌卡通熊猫头
效果演示 创建了一个卡通风格的熊猫头 HTML <div class"box"><div class"head"><div class"head-copy"></div><div class"ears-left"></div><div class"ears-right"></di…...
人脑与机器连接:神经科技的伦理边界探讨
内容概要 在当今科技飞速发展的时代,人脑与机器连接已成为一个引人注目的前沿领域。在这一背景下,神经科技的探索为我们打开了一个全新的世界,从脑机接口到人工智能的飞跃应用,不仅加速了技术的进步,更触动了我们内心…...
Mac M1 Docker创建Rocketmq集群并接入Springboot项目
文章目录 前言Docker创建rocketmq集群创建rocketmq目录创建docker-compose.yml新增broker.conf文件启动容器 Springboot 接入 rocketmq配置maven依赖修改appplication.yml新增消息生产者新增消费者测试发送消息 总结 前言 最近公司给配置了一台mac,正好有时间给装一…...
k8s 查看cpu使用率最高的pod
在 Kubernetes 中,可以使用 kubectl top 命令查看 Pod 的资源使用情况,从而找到 CPU 使用率最高的 Pod。 步骤 使用 kubectl top pods 查看所有 Pod 的 CPU 使用情况 运行以下命令查看集群中所有 Pod 的 CPU 和内存使用情况: kubectl top po…...
jenkins 构建报错 Cannot run program “sh”
原因 在 windows 操作系统 jenkins 自动化部署的时候, 由于自动化构建的命令是 shell 执行的,而默认windows 从 path 路径拿到的 shell 没有 sh.exe ,因此报错。 解决方法 前提是已经安装过 git WINR 输入cmd 打开命令行, 然后输入where git 获取 git 的路径, …...
Netty ByteBuf 分配 | 池化复用 、直接内存
Netty ByteBuf 分配 本文主要内容关于 ByteBuf 分配介绍,为了更好的理解本文,我们可以带着几个问题思考 在IO密集型业务场景下,可能涉及大量ByteBuf分配,这时我们需 要考虑会不会产生OOM会不会出现频繁GC会不会内存泄露 根据上…...
【数据结构】堆和二叉树(2)
文章目录 前言一、建堆和堆排序1.堆排序 二、二叉树链式结构的实现1.二叉树的遍历 三、链式二叉树的功能函数1.二叉树结点个数2.二叉树叶子结点个数3.二叉树的高度4.二叉树第k层结点个数5. 二叉树查找值为x的结点6.二叉树销毁 总结 前言 接着上一篇博客,我们继续分…...
Oracle分区技术特性
Oracle 的分区是一种“分而治之”的技术,通过将大表、索引分成可以独立管理的、小的 Segment,从而避免了对每个对象作为一个大的、单独的 Segment 进行管理,为海量数据访问提供了可伸缩的性能。自从 Oracle 引入分区技术以来,Orac…...
Hive操作库、操作表及数据仓库的简单介绍
数据仓库和数据库 数据库和数仓区别 数据库与数据仓库的区别实际讲的是OLTP与OLAP的区别 操作型处理(数据库),叫联机事务处理OLTP(On-Line Transaction Processing),也可以称面向用户交易的处理系统,它是针对具体业务…...
智能网联汽车:人工智能与汽车行业的深度融合
内容概要 在这个快速发展的时代,智能网联汽车已经不再是科幻电影的专利,它正在悄然走进我们的日常生活。如今,人工智能(AI)技术与汽车行业的结合犹如一场科技盛宴,让我们看到了未来出行的新方向。通过自动…...
VUE 循环的使用方法集锦
vue---循环方式以及跳出循环 在做VUE项目开发过程中,数据循环是常见的操作方式,以下是几种常见的数据循环方式: 一、for循环 let data [1,2,3,4,5,6,7,8,9,10]; for(let i0; i<data.length; i){console.log(data[i]);if(i>5){break;…...
Centos部署资料
1. 离线rpm 1.1 下载地址: 阿里云rpmfind 1.2 本地安装: [rootlocalhost ~]# yum localinstall unzip-6.0-21.el7.x86_64.rpm2. 服务器操作 2.1 修改网络ip [rootlocalhost ~]# cd /etc/sysconfig/network-scripts/ [rootlocalhost network-script…...
AI之硬件对比:据传英伟达Nvidia2025年将推出RTX 5090-32GB/RTX 5080-24GB、华为2025年推出910C/910D
AI之硬件对比:据传英伟达Nvidia2025年将推出RTX 5090-32GB/RTX 5080-24GB、华为2025年推出910C/910D 目录 Nvidia的显卡 Nvidia的5090/5080/4090/4080:据传传英伟达Nvidia RTX 5090后续推出32GB版且RTX 5080后续或推出24GB版 RTX 5090相较于RTX 4090&…...
其他节点使用kubectl访问集群,kubeconfig配置文件 详解
上述两种方式:可使用kubectl连接k8s集群。 $HOME/.kube/config 是config文件默认路径,要么直接定义环境变量,要么就直接把文件拷过去 config文件里面,定义了context,里面指定了用户和对应的集群信息: ku…...
【鉴权】深入解析OAuth 2.0:访问令牌与刷新令牌的安全管理
目录 引言一、访问令牌(Access Token)1.1 访问令牌概述1.2 访问令牌的格式1.2.1 JWT(JSON Web Token)1.2.1.1 JWT 结构1.2.1.2 示例 JWT 1.2.2 Bearer Token 1.3 访问令牌的有效期1.4 访问令牌的工作流程 二、刷新令牌(…...
【AI视频换脸整合包及教程】AI换脸新星:Rope——让换脸变得如此简单
在数字技术迅猛发展的今天,人工智能(AI)的应用已经渗透到了我们生活的方方面面,从日常的语音助手到复杂的图像处理,无不体现着AI技术的魅力。特别是在娱乐和创意领域,AI技术更是展现出了惊人的潜力。其中&a…...
限界上下文(Bounded Context)
限界上下文(Bounded Context):领域驱动设计中的重要概念 在领域驱动设计(Domain-Driven Design, DDD)中,限界上下文(Bounded Context)是一个非常重要的概念。限界上下文定义了一个特定领域模型的边界,确保在这个边界内,领域模型的术语、规则和逻辑是一致的。通过明确…...
20241105专家访谈学习资料
“两性一度” 即高阶性、创新性、挑战度。“三性一度”是指教学目标的适应性、教学内容的先进性、教学实施的实践性及教学评价的有效度。“四性一度”是指系统性、层次性、前瞻性、专业性以及培养目标达成度。“二性一度”用词比较规范、标准统一,“三性一度”和“四…...
Docling:开源的文档解析工具,支持多种格式的解析和转换,可与其他 AI 工具集成
❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦! 🥦 微信公众号ÿ…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
