安装 hbase(伪分布式)

目录

1、安装 jdk8

(1)选择 jdk 版本

(2)下载 jdk 并解压

(3)配置环境变量

2、安装hadoop

(1)添加 hadoop 用户,配置免密登录

 (2)下载 hadoop-3.4.0.tar.gz

(3)配置环境变量

(4)修改配置文件

(5)修改文件权限,并且换到 hadoop 用户

(7)验证Hadoop DFS

(8)启动 dfs

(9)验证yarn脚本

(10)浏览器访问

 (11)启动 hdfs 告警:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform

3、安装 hbase

(1)下载 hbase-2.5.8-hadoop3-bin.tar.gz

(2)配置环境变量

(3)修改配置文件

(4)添加 zookeeper 目录

(5)修改文件权限,并且换到 hadoop 用户

(6)启动 hbase

(7)浏览器访问

(8)命令行验证 hbase shell

(9)关闭 hbase

(10)hbase shell 报错:ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet。

4、gohbase 客户端外部连接测试

(1)首先使用 hbase shell 创建一个 emp 表,含有一个列组 a。

(2)然后利用 gohbase 客户端向 hbase 插入一条测试数据

(3)连接报错:failed to dial RegionServer: dial tcp [::1]:16020: connectex: No connection could be made because the target machine actively refused it.


1、安装 jdk8

(1)选择 jdk 版本

jdk版本选择:https://hbase.apache.org/book.html#java

jdk华为源下载:https://repo.huaweicloud.com/java/jdk/8u172-b11/

(2)下载 jdk 并解压
cd /usr/local
wget https://repo.huaweicloud.com/java/jdk/8u172-b11/jdk-8u172-linux-x64.tar.gz
tar zxf jdk-8u172-linux-x64.tar.gz
(3)配置环境变量
# vim /etc/profileexport JAVA_HOME=/usr/local/jdk1.8.0_172
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib# source /etc/profile

 #参考

https://blog.csdn.net/codedz/article/details/124044974

https://www.cnblogs.com/aerfazhe/p/15545946.html

https://www.cnblogs.com/aerfazhe/p/15545946.html

2、安装hadoop

(1)添加 hadoop 用户,配置免密登录
useradd hadoop
#passwd hadoopssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
 (2)下载 hadoop-3.4.0.tar.gz
cd /usr/local
wget https://dlcdn.apache.org/hadoop/core/stable/hadoop-3.4.0.tar.gz
tar zxf hadoop-3.4.0.tar.gz
(3)配置环境变量
# vim /etc/profileexport HADOOP_HOME=/usr/local/hadoop-3.4.0
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME# source /etc/profile
(4)修改配置文件
cd /usr/local/hadoop-3.4.0/etc/hadoop/vim hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_71vim core-site.xml
<configuration><property><name>fs.default.name</name><value>hdfs://localhost:9000</value></property>
</configuration>vim hdfs-site.xml
<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.name.dir</name><value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value></property><property><name>dfs.data.dir</name><value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value></property>
</configuration>vim yarn-site.xml
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>vim mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>
(5)修改文件权限,并且换到 hadoop 用户
chown -R hadoop:hadoop hadoop-3.4.0  
su hadoop
(7)验证Hadoop DFS
hdfs namenode -format
(8)启动 dfs
./sbin/start-dfs.sh# 查看进程
jps

71681 NameNode
71834 DataNode

72068 SecondaryNameNod

(9)验证yarn脚本
./sbin/start-yarn.sh# 查看进程
jps

71681 NameNode
71834 DataNode

72068 SecondaryNameNode

72289 ResourceManager
72396 NodeManager

(10)浏览器访问
http://localhost:9870
http://localhost:8088
 (11)启动 hdfs 告警:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform

        不改也不影响,添加如下环境变量即可

# vim /etc/profile
export JAVA_LIBRARY_PATH=/usr/local/hbase-2.5.8-hadoop3/lib/native
# source /etc/profile

# 参考
https://blog.csdn.net/weixin_45678985/article/details/120497297 

3、安装 hbase

(1)下载 hbase-2.5.8-hadoop3-bin.tar.gz
cd /usr/local
wget https://dlcdn.apache.org/hbase/2.5.8/hbase-2.5.8-hadoop3-bin.tar.gz
tar zxf hbase-2.5.8-hadoop3-bin.tar.gz
(2)配置环境变量
export HBASE_HOME=/usr/local/hbase-2.5.8-hadoop3
export PATH=$PATH:$HBASE_HOME/bin
(3)修改配置文件
cd /usr/local/hbase-2.5.8-hadoop3/confvim hbase-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_172vim hbase-site.xml
<property><name>hbase.cluster.distributed</name><value>true</value>
</property>
<property><name>hbase.rootdir</name><value>hdfs://localhost:9000/hbase</value>
</property>
<property><name>hbase.zookeeper.property.dataDir</name><value>/home/zookeeper</value>
</property>
(4)添加 zookeeper 目录
mkdir -p /home/zookeeper
chown -R hadoop:hadoop /home/zookeeper
(5)修改文件权限,并且换到 hadoop 用户
chown -R hadoop:hadoop hbase-2.5.8-hadoop3
su hadoop
(6)启动 hbase
./bin/start-hbase.sh# 查看进程
jps

71681 NameNode
71834 DataNode

72068 SecondaryNameNode
72289 ResourceManager
72396 NodeManager
74089 HQuorumPeer
74186 HMaster
74271 HRegionServer

(7)浏览器访问
http://localhost:16010
(8)命令行验证 hbase shell
./bin/hbase shell
> list
(9)关闭 hbase
./bin/stop-hbase.sh
# kill -9 ${HRegionServer-PID} ${HMaster-PID} ${HQuorumPeer-PID}
(10)hbase shell 报错:ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet。

         关闭 hbase,修改配置文件,然后重启

vim conf/hbase-env.sh
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true

# 参考
https://hadoopdoc.com/hbase/hbase-install
https://cn.linux-console.net/?p=21626
https://blog.csdn.net/qq_45811072/article/details/121693142

4、gohbase 客户端外部连接测试

(1)首先使用 hbase shell 创建一个 emp 表,含有一个列组 a。
./bin/hbase shell# 创建表
> create 'emp', 'a'# 查看表列表
> list# 查看表结构
> describe 'emp'
(2)然后利用 gohbase 客户端向 hbase 插入一条测试数据

       put 'emp','2','a:age','20'

       向 emp 表插入一条数据,rowkey='2',column_family='a',column='age',value='20'

package mainimport ("context""github.com/tsuna/gohbase""github.com/tsuna/gohbase/hrpc""log"
)func main() {client := gohbase.NewClient("xxx.xxx.xxx.xxx:2181")// Values maps a ColumnFamily -> Qualifiers -> Values.values := map[string]map[string][]byte{"a": map[string][]byte{"age": []byte{20}}}putRequest, err := hrpc.NewPutStr(context.Background(), "emp", "2", values)if err != nil {log.Fatalln("hrpc.NewPutStr error:", err)return}rsp, err := client.Put(putRequest)if err != nil {log.Fatalln("client.Put error:", err)return}rsp.String()
}
(3)连接报错:failed to dial RegionServer: dial tcp [::1]:16020: connectex: No connection could be made because the target machine actively refused it.

time="2024-06-04T10:51:31+08:00" level=info msg="added new region client" client="RegionClient{Addr: localhost:16020}" 
time="2024-06-04T10:51:33+08:00" level=error msg="error occured, closing region client" client="RegionClient{Addr: localhost:16020}" err="failed to dial RegionServer: dial tcp [::1]:16020: connectex: No connection could be made because the target machine actively refused it."
time="2024-06-04T10:51:33+08:00" level=info msg="removed region client" client="RegionClient{Addr: localhost:16020}"

       具体连接哪个 regionserver 是由 zk 返回的,默认返回的 regionserver 是主机名,由于没有配置主机名,返回的 regionserver 地址是一个本机地址 localhost:16020,导致外部无法连接。并且通过 netstat -nltp 查看端口监听状态可知,16020 监听在 127.0.0.1 网卡上。这两项都导致了在外部无法连接 16020 端口。

       在服务器端:

  • 设置服务器主机名为 node01;
  • 查看主机对外ip,并修改 hosts 文件,将主机名绑定主机对外IP(注意不要绑定127.0.0.1,要绑定外部可以访问的ip);
  • 修改 regionservers 配置文件,以主机名代替原来的 localhost。
# 修改主机名为 node01
hostnamectl set-hostname node01# 添加主机名到主机对外ip的映射
ip addr
vim /etc/hosts
xxx.xxx.xxx.xxx node01# 修改 regionservers 配置文件
vim conf/regionservers
node01

       在客户端,同样将 hbase 主机名绑定到 hbase 主机IP。

xxx.xxx.xxx.xxx node01

参考

https://www.cnblogs.com/shanheyongmu/p/15657255.html
https://segmentfault.com/a/1190000019857725

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/24927.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Duilib多标签选项卡拖拽效果:添加动画特效!

动画是小型界面库的“难题”、“通病” 几年前就有人分享了如何用direct UI制作多标签选项卡界面的方法。还有人出了一个简易的浏览器demo。但是他们的标签栏都没有Chrome浏览器那样的动画特效。 如何给界面添加布局是的动画特效呢&#xff1f; 动画使界面看起来高大上&#…

【录制,纯正人声】OBS录制软件,音频电流音,杂音解决办法,录制有噪声的解决办法

速度解决的方法 &#xff08;1&#xff09;用RNNoise去除噪声。RNNoise是一个开源的&#xff0c;效果不好的噪声去除器。使用方法就是点击滤镜&#xff0c;然后加噪声抑制RNNoise。【这方法不好用】 &#xff08;2&#xff09;用Krisp(https://krisp.ai/) 去除噪声。这个Kris…

探索C++ STL中的std::list:链式存储的艺术与实践

目录 ​编辑 引言 一、std::list详解 二、std::list的关键成员函数 三、示例代码 四、std::list与std::vector的对比 内存布局&#xff1a; 插入与删除&#xff1a; 迭代器稳定性&#xff1a; 五、应用场景 结语 引言 在C标准模板库(STL)中&#xff0c;std::list作…

skywalking学习

文章目录 前言一、skywalking单体安装部署1. 下载skywalking2. 部署oap和oap-ui服务3. 测试skywalking监控springboot应用 二、搭建swck(skywalking集群)1.安装k8s2.下载swck3.设置pod自动注入java agent 三、skywalking监控python四、skywalking监控cpp总结参考 前言 本文主要…

两段代码想编译其中一段

在Linux环境下&#xff0c;如果您的项目中包含两段代码且您只想编译其中一段&#xff0c;您可以采用多种方法来实现这个需求。具体分析如下&#xff1a; 1. **使用条件编译**&#xff1a;通过预处理指令来控制代码的编译。例如&#xff0c;您可以使用#ifdef、#ifndef、#if、#el…

SSL/TLS和HTTPS

HTTPS就是用了TLS包装的Socket进行通信的HTTP 混合加密 被称为混合加密。具体过程如下&#xff1a; 使用非对称加密协商对称密钥&#xff1a; 在通信的开始阶段&#xff0c;通常由客户端和服务器使用非对称加密算法&#xff08;如RSA&#xff09;来协商一个对称密钥。通常情…

vue3中的ref与reactive的区别

目录 1、两者的区别底层实现响应式引用与响应式对象 2、用法3、vue3中声明的数组/对象3.1 通过reactive 声明的Array/Object&#xff0c;给它重新分配一个全新的对象时&#xff0c;会出错、或失去响应式效果 3.2 解决方案 4、cosnt 说明5、Proxy 与 definePropertyref 浅层响应…

npm 异常:peer eslint@“>=1.6.0 <7.0.0“ from eslint-loader@2.2.1

node用16版本 npm install npm6.14.15 -g将版本降级到6

Redisson知识

使用Redission获取锁 RLock lock redisson.getLock("my-lock"); 一、Redisson使用不指定锁过期时间的方式加锁&#xff1a; lock.lock(); 特点&#xff1a; 1.使用Redisson加的锁&#xff0c;具有自动续期机制&#xff0c;如果业务运行时间较长&#xff0c;运行…

Web前端 CodeView:深度解析与实用指南

Web前端 CodeView&#xff1a;深度解析与实用指南 在Web前端开发的广阔领域中&#xff0c;CodeView作为一种特殊的展示形式&#xff0c;为开发者提供了直观、交互式的代码查看体验。然而&#xff0c;如何充分利用并优化CodeView功能&#xff0c;却是许多开发者所面临的挑战。本…

人工智能与能源约束的矛盾能否化解

以下文章来源&#xff1a;澎湃新闻 人工智能技术在台前展示的是比特世界的算力、算法和数据&#xff0c;但其“轻盈的灵魂”背后则是土地、能源和水等物理世界“沉重的肉身”。根据本文三种情境的模拟测算&#xff0c;未来人工智能发展需要可持续的巨量能源支撑&#xff0c;能源…

基于Python的北京天气数据可视化分析

项目用到库 import numpy as np import pandas as pd import datetime from pyecharts.charts import Line from pyecharts.charts import Boxplot from pyecharts.charts import Pie,Grid from pyecharts import options as opts from pyecharts.charts import Calendar 1.2…

Python应用开发——30天学习Streamlit Python包进行APP的构建(5)

上几次我们已经将一些必备的内容进行了快速的梳理,让我们掌握了streanlit的凯快速上手,接下来我们将其它的一些基础函数再做简单的梳理,以顺便回顾我们未来可能用到的更丰富的函数来实现应用的制作。 st.write_stream 将生成器、迭代器或类似流的序列串流到应用程序中。 …

vue -ant -design 卡片是布局 实现动态计算 当前的 左右间距 实现居中

是这样的一个样式 我们使用display :flex 布局的时候 我们全部剧中 display: flex;align-items: center;justify-content: center; 如果是上述的代码来说的话 总是最后的一个也是会居中的 这样就比较丑 我们好像就没有什么好的办法了 我们这自己写的 肯定没有组件牛 如果有…

三十六篇:未来架构师之道:掌握现代信息系统典型架构

未来架构师之道&#xff1a;掌握现代信息系统典型架构 1. 引言 在企业的数字化转型浪潮中&#xff0c;信息系统架构的角色变得日益重要。它不仅承载了企业的IT战略&#xff0c;更是确保企业在复杂、动态的市场环境中稳定运行的关键。作为信息系统的骨架&#xff0c;一个精心设…

hash和history路由模式的区别

在 Web 前端开发中&#xff0c;history和hash是两种不同的页面导航和路由管理技术。 Hash (hash routing)&#xff1a; Hash 路由是通过 URL 中的哈希符号&#xff08;#&#xff09;后面的部分来改变页面状态的。例如&#xff0c;http://example.com/#/home 和 http://example.…

Linux环境在非root用户中搭建(java-tomcat-redis)

注: 本文在内网(离线)环境&#xff0c;堡垒机中搭建&#xff0c;服务器不同可能有所差异&#xff0c;仅供参考 本文安装JDK-20.0.1版本&#xff0c;apache-tomcat-10.1.10版本&#xff0c;redis-6.2.15版本 本文服务器IP假设&#xff1a;192.168.88.133 root用户创建子用户并…

web应用防火墙的功能特性

网络层防护 HTTP/HTTPS Flood&#xff08;CC 攻击&#xff09;防护 应用层防护 黑白名单 对指定访问源加白名单&#xff0c;对恶意访问来源进行封禁。 支持 IP、URL、Useragent&#xff08;用户代理&#xff09;、Referer&#xff08;Http 访问来源&#xff09;。 HTTP协议规…

人工智能对话系统源码 手机版+电脑版二合一 全端支持 前后端分离 带完整的安装代码包以及搭建部署教程

系统概述 该系统采用前后端分离的设计模式&#xff0c;前端负责用户界面展示与交互&#xff0c;后端负责数据处理与业务逻辑实现。前后端通过API接口进行通信&#xff0c;实现数据的实时传输与处理。系统支持全端访问&#xff0c;无论是手机还是电脑&#xff0c;都能获得良好的…

u盘内容无故消失了是什么原因?u盘部分内容无故消失了怎么恢复

在数字化时代&#xff0c;U盘作为便携存储设备&#xff0c;承载着许多重要的数据。然而&#xff0c;有时我们可能会遭遇U盘部分内容无故消失的情况&#xff0c;这无疑给我们的工作和生活带来了不小的困扰。本文将为您解析U盘内容消失的可能原因&#xff0c;并分享几招实用的数据…