ubuntu22.04下hadoop3.3.6+hbase2.5.6+phoenix5.1.3开发环境搭建

一、涉及软件包资源清单

        1、java 这里使用的是openjdk

        2、hadoop-3.3.6.tar.gz

        3、hbase-2.5.6-hadoop3-bin.tar.gz

        4、phoenix-hbase-2.5-5.13-bin.tar.gz

        5、apache-zookeeper-3.8.3-bin.tar.gz

        6、openssl-3.0.12.tar.gz 

二、安装

        1、操作系统环境准备

  •  换源
sudo vim /etc/apt/sources.list 

打开资源列表文件进行查看,将内容修改为如下(如果是国内源,就不用更改清华的阿里的都可以):

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
 

sudo apt-get update
  • 主机名配置 
sudo vim /etc/hostname

在这里写下你喜欢的主机名,规则:好记、识别度高、不与其它系统名称冲突,别太简单也别太复杂。写完了把它记住一会还要用。保存->退出。

sudo vim /etc/hosts

在这里将你机器的IP地址和刚起好的主机名一并写在一行里,如下图蓝字部分。

 127.0.0.1       localhost
172.22.10.250   xxx-ytA8000t-01

保存->退出->重启系统。 

  • ssh免密

首先查看系统是否安装了openssh服务

service sshd status

 ● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-11-15 11:14:32 CST; 2h 53min ago
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 1099 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 1147 (sshd)
      Tasks: 1 (limit: 18911)
     Memory: 7.9M
        CPU: 236ms
     CGroup: /system.slice/ssh.service
             └─1147 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

如果提示不是这样,请查明原因,提示没有安装可以使用如下命令安装,-y参数的作用是在安装软件包的过程中自动回答“yes”,而不需要用户手动确认。 

sudo apt install -y openssh-server

安装完成后使用上面的状态查看命令查看服务的状态,直到状态正常为止。 修改配置文件允许root用户登录,允许公钥登录

sudo vim /etc/ssh/sshd_config

 PermitRootLogin yes

PubkeyAuthentication yes

去掉以上两项前面的注释 ,退出保存,重启ssh服务

service sshd restart

 实际过程中不太灵光,直接大招儿 sudo reboot ,有点夸张但却真香。这东西是自启动,重启后使用以下命令生成公钥:

ssh-keygen

因为系统默认会使用rsa加密算法,所以这里就不费力的指定了(至于RSA和DSA算法的详细内容请自行查阅)。因为是开发环境所以输入命令后三次回车全部采用默认即可,不用输入任何内容。然后将公钥复制到authorized_keys中去,命令如下:

cd ~/.ssh
ssh-copy-id -i id_rsa.pub authorized_keys

ssh登录本机试试

ssh localhost

第一次登录会问是否把此机器放到已知机器中去,回答 yes 然后回车,后面它就不问了。 这里直到搞到输入命令后什么也不问就给进系统为此,不成功的话查检自己的配置文件中配置的内容是否正确,打开 authorized_key和id_rsa.pub进行比较看两个key是否相同。

  • openssl安装

 首先查看openssl的版本

openssl version

 OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

切换到你下载openssl源码包的目录,解压后进入到源码包,执行如下三个命令:

./Configure

配置的参数说明可以在它的github上找到,这里就不复制了,有需要的自行去查看。链接 

make
sudo make install

 *注意这最后一句,这里要加入sudo,因为没有root权限/usr/local目录不让你写。整个过程当中如果有依赖包缺失它会给出提示,根据提示安装就行。安装完成后再次查看版本

OpenSSL 3.1.0 14 Mar 2023 (Library: OpenSSL 3.1.0 14 Mar 2023)

 至此环境准备完毕。

        2、java环境配置

  因为hadoop3支持java11,所以这里使用openjdk11进行配置。使用命令

 sudo apt install openjdk-11-jdk

安装完成使用命令: java -version 查看是否安装成功

openjdk version "11.0.20.1" 2023-08-24
OpenJDK Runtime Environment (build 11.0.20.1+1-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.20.1+1-post-Ubuntu-0ubuntu122.04, mixed mode, sharing) 

java的默认安装路径在/usr/lib/jvm下,跳转到此目录下找到以amd64结尾的文件夹就是java的根目录了。将这个根目录添加到系统的profile中去。

sudo vim /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile

         3、zookeeper部署

跳转到zookeeper 下载目录,执行解压

tar -zxvf apache-zookeeper-3.8.3-bin.tar.gz -C /opt/
cd /opt/apache-zookeeper-3.8.3/conf
cp zoo_sample.cfg zoo.cfg
sudo vim zoo.cfg

在配置文件里指定数据存放目录,不要用默认的/tmp 

 dataDir=/opt/apache-zookeeper-3.8.3/data

这里的data目录是要自己建的

mkdir data

 添加全局配置

sudo vim /etc/profile

export ZOOKEEPER_HOME=/opt/apache-zookeeper-3.8.3

export PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH

使配置生效并启动服务 

source /etc/profile
zkServer.sh start
jps

2359 QuorumPeerMain  这就是zookeeper的进程
27098 Jps

        4、hadoop部署

跳转到你hadoop下载目录,执行解压

tar -zxvf hadoop-3.3.6.tar.gz -C /opt/
cd /opt/hadoop-3.3.6

 将配置文件目录映射到系统中去,这里使用软链接(这东西的好处是一处更改随处可用)

ln -s /opt/hadoop-3.3.6/etc/hadoop /etc/hadoop

修改hdfs-site.xml和core-site.xml两个配置文件

sudo vim /etc/hadoop/hdfs-site.xml

 <configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
</configuration>

sudo vim /etc/hadoop/core-site.xml

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://你在上面步骤中起的主机名:9000(hadoop3和hadoop2这里的端口不一样)</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>指定到你的数据盘中去(就是空间最大的那个地儿)</value>
        </property>
        <property>
                <name>hadoop.http.staticuser.user</name>
                <value>你当前进系统的用户名(不配置的话你在web管理界面建文件夹传文件时报错)</value>
        </property>
</configuration>

 将hadoop配置进系统的环境变量里

sudo vim /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

export ZOOKEEPER_HOME=/opt/apache-zookeeper-3.8.3

export HADOOP_HOME=/opt/hadoop-3.3.6
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH

source /etc/profile

以当前用户启动hadoop服务,不要加sudo,那是以root启动的,会很麻烦。 

start-all.sh
jps

3394 NodeManager
2359 QuorumPeerMain
3015 SecondaryNameNode
2793 DataNode
3244 ResourceManager
2588 NameNode
26847 Jps 

初始化

hadoop namenode -format

打开浏览器输入服务器ip + 端口9870查看状态    http://172.22.10.250:9870

  检查hadoop native状态

hadoop checknative -a

2023-11-15 16:52:38,350 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native
2023-11-15 16:52:38,352 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
2023-11-15 16:52:38,385 INFO nativeio.NativeIO: The native code was built without PMDK support.
Native library checking:
hadoop:  true /opt/hadoop-3.3.6/lib/native/libhadoop.so.1.0.0
zlib:    true /lib/x86_64-linux-gnu/libz.so.1
zstd  :  true /lib/x86_64-linux-gnu/libzstd.so.1
bzip2:   true /lib/x86_64-linux-gnu/libbz2.so.1
openssl: false EVP_CIPHER_CTX_block_size  这里就是为什么上面要编译安装openssl的原因,不编译安装它会报找不到库的错,这里的false是因为版本不对应引起的。
ISA-L:   true /lib/libisal.so.2 这个也要自己去下源码来编译安装才能通过
PMDK:    false The native code was built without PMDK support.

PMDK 的全称是 Persistent Memory Development Kit,它包含了 Intel 开发的一系列旨在 方便非易失性
内在的应用开发的函数库和工具,是为了存储加速的,这时只是开发环境,不管它了。

        5、hbase部署 

跳转到你hbase下载目录,执行解压

tar -zxvf hbase-2.5.6-hadoop3-bin.tar.gz -C /opt/

 把名改短些

cd /opt
mv hbase-2.5.6-hadoop3-bin hbase-2.5.6

修改配置文件,主要有三处,分别是hbase-env.sh、hbase-site.xml、regionservers

sudo vim /opt/hbase-2.5.6/conf/hbase-env.sh

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

export HBASE_PID_DIR=/opt/hbase-2.5.6/pids

export HBASE_MANAGES_ZK=false

export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"

sudo vim /opt/hbase-2.5.6/conf/hbase-site.xml

  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>配置为true启用伪公布式
  </property>
  <property>
    <name>hbase.tmp.dir</name>
    <value>.</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
  <property>
          <name>hbase.rootdir</name>
          <value>hdfs://上面步骤配置的主机名:9000/hbase</value>
  </property>
  <property>
          <name>hbase.zookeeper.quorum</name>
          <value>上面步骤配置的主机名</value>
  </property>

 <property>
          <name>hbase.zookeeper.property.clientPort</name>
          <value>2181</value>
  </property>
  <property>
          <name>hbase.regionserver.wal.codec</name>
          <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
  </property>

sudo vim /opt/hbase-2.5.6/conf/regionservers

172.22.10.250   *这里把默认的localhost改成本机ip,这是其它机器可以访问环境的关键配置,不然只有本机可以访问。

 配置系统环境变量

sudo vim /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HBASE_HOME=/opt/hbase-2.5.6
export HADOOP_HOME=/opt/hadoop-3.3.6
export ZOOKEEPER_HOME=/opt/apache-zookeeper-3.8.3
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin:$PHOENIX_HOME/bin:$PATH
 

source /etc/profile

启动服务,先启动regionserver,后启动master 

hbase-daemon.sh start regionserver
start-hbase.sh
jps

 3394 NodeManager
2359 QuorumPeerMain
27911 Jps
3015 SecondaryNameNode
4231 HMaster
2793 DataNode
3244 ResourceManager
2588 NameNode
3900 HRegionServer

         6、phoenix部署

 跳转到你phoenix下载目录,执行解压

tar -zxvf phoenix-hbase-2.5-5.1.3-bin.tar.gz -C /opt/

cd /opt

mv phoenix-hbase-2.5-5.1.3-bin phoenix

将server文件复制到hbase的lib目录下 

cd /opt/phoenix

cp phoenix-server-hbase-2.5-5.1.3.jar /opt/hbase-2.5.6/lib/

cp phoenix-pherf-5.1.3.jar /opt/hbase-2.5.6/lib/

将hadoop的配置文件、hbase的配置文件作软链接到bin目录下

cd /opt/phoenix/bin

ln -s /opt/hadoop-3.3.6/etc/hadoop/hdfs-site.xml /opt/phoenix/bin/hdfs-site.xml
ln -s /opt/hadoop-3.3.6/etc/hadoop/core-site.xml /opt/phoenix/bin/core-site.xml
ln -s /opt/hbase-2.5.6/conf/hbase-site.xml /opt/phoenix/bin/hbase-site.xml

配置环境变量

sudo vim /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HBASE_HOME=/opt/hbase-2.5.6
export HADOOP_HOME=/opt/hadoop-3.3.6
export ZOOKEEPER_HOME=/opt/apache-zookeeper-3.8.3
export PHOENIX_HOME=/opt/phoenix
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin:$PHOENIX_HOME/bin:$PATH
 

source /etc/profile

 启动sqlline.py查检环境配置结果,正确登录后输入命令 !table查看表信息,能出如图所示结果说明系统正常启动。

sqlline.py localhost

这里会出现的问题是,执行sqlline.py后长时间卡住不动的现象,一般是因为之前的hbase配置不正确造成的,解决的办法就是先停止hbase服务,然后去zookeeper中清除hbase信息,到hdfs中清除hbase的文件。 

stop-hbase.sh

 如果一直画点点,就ctrl+c终止后,使用jps查到H开头的那两个进程,直接 kill -9 进程号强行杀死它。

zkCli.sh

deleteall /hbase
hadoop fs -rm -r -skipTrash /hbase

然后重新启动hbase即可。

至此所有的配置均已完成,可以进行正常的开发工作了。

三、DBeaver连接phoenix

将phoenix安装目录下的client包复制一份备用,然后把hbase配置文件、hadoop配置文件复制到这个备用的jar包里(怎么打包就不说了,自己作吧)。然后把这个合成的jar包复制到想用的机器上的DBeaver的安装目录下的plugins目录下(纯个人喜好,实际放哪儿都行),然后启动dbeaver添加phoenix连接,在出来的配置界面中选择驱动,把这个包添加进去,就可以正常使用了。

 

 

 

这一步有个重点要把原来自带的那个给它删除了,不然添加了后也认不出新的库文件来。选择好了包后,点击下面的“找到类”按钮,把驱动类找到,点选上它,然后点击页面右下方的“确定”按钮,完成驱动添加。 

回到“通用jdbc连接设置”界面,将主机地址填写到你服务所在的主机的IP,点击“完成”就可以了。

*如果出现访问不到服务器的问题,需要修改当前机器的hosts文件,在里面把上面配置中服务器里配置hosts的那一条添加到当前主机的hosts配置文件里。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图识单链表

CSDN主页&#xff1a;醋溜马桶圈_C语言进阶,初始C语言,数据结构-CSDN博客 Gitee主页&#xff1a;mnxcc (mnxcc) - Gitee.com 专栏&#xff1a;数据结构_醋溜马桶圈的博客-CSDN博客 我们之前学习了顺序表的有关知识&#xff0c;顺序表存在下面的问题&#xff1a; 尾插效率还不错…

Ubuntu18.04平台下Qt开发程序打包的一些问题总结

目录 前言 一、在Ubuntu18.04开发环境下打包有两种方式 1、利用linuxdeployqt软件进行打包 2、利用编写shell脚本的方式进行打包 二、详细介绍shell脚本打包的方式 1、新建一个空的文件夹 2、准备脚本copylib.sh 3、准备脚本xxxx.sh。 4、给上述两个脚本添加可执行权限…

ResNet 原论文及原作者讲解

ResNet 论文摘要1. 引入2. 相关工作残差表示快捷连接 3. 深度残差学习3.1. 残差学习3.2. 快捷恒等映射3.3. 网络体系结构普通网络 plain network残差网络 residual network 3.4. 实施 4. 实验4.1. ImageNet分类普通的网络 plain network残差网络 residual network恒等vs.快捷连…

上位机模块之圆形测量,基于halcon的二次开发

夸克网盘可自取。链接&#xff1a;https://pan.quark.cn/s/ac192950e051 //在此之前可以先浏览2篇博客&#xff0c;分别是序列化与反序列化和ROI绘制获取 https://blog.csdn.net/m0_51559565/article/details/134422834 //序列化与反序列化 https://blog.csdn.net/m0_51559565…

创新升级!Coremail邮箱客户端4.0发布

11月8日&#xff0c;2023年世界互联网大会乌镇峰会盛大开幕&#xff0c;同日&#xff0c;“互联网之光”博览会新产品新技术发布&#xff08;网络安全专场&#xff09;活动在乌镇互联网国际会展中心B2馆顺利举办&#xff0c;Coremail亮相发布现场&#xff0c;重磅发布Coremail邮…

SDL2 播放音频数据(PCM)

1.简介 这里以常用的视频原始数据PCM数据为例&#xff0c;展示音频的播放。 SDL播放音频的流程如下&#xff1a; 初始化音频子系统&#xff1a;SDL_Init()。设置音频参数&#xff1a;SDL_AudioSpec。设置回调函数&#xff1a;SDL_AudioCallback。打开音频设备&#xff1a;SD…

【解决方案】危化品厂区安防系统EasyCVR+AI智能监控

危化品属于危险、易燃易爆、易中毒行类&#xff0c;一旦在生产运输过程中发生泄漏后果不堪想象&#xff0c;所以危化品的生产储存更需要严密、精细的监控&#xff0c;来保障危化品的安全。EasyCVRTSINGSEE青犀AI智能分析网关搭建的危化品智能监控方案就能很好的为危化品监管保驾…

遍历一个对象,并得出所对应的值

var dates {//定义的对象year:now.getFullYear(),month:now.getMonth()1,date:now.getDate(),hour:now.getHours(),minute:now.getMinutes(),second:now.getSeconds() }//开始遍历循环 var val; for (val in dates){console.log(对象名称&#xff1a;val-对象的值&#xff1a;…

人工智能-深度学习之残差网络(ResNet)

随着我们设计越来越深的网络&#xff0c;深刻理解“新添加的层如何提升神经网络的性能”变得至关重要。更重要的是设计网络的能力&#xff0c;在这种网络中&#xff0c;添加层会使网络更具表现力&#xff0c; 为了取得质的突破&#xff0c;我们需要一些数学基础知识。 ResNet沿…

【坑】idea终端下执行maven命令行报错:mvn clean install -Dspring.profiles.active=dev

直接看报错信息 解决方法 方法一 命令改为&#xff1a;mvn clean install -Dspring.profiles.activedev方法二 使用 cmd 进入命令行执行&#xff1a;mvn clean install -Dspring.profiles.activedev在新版本中的idea终端已经默认使用了类似windons10下的PowerShell窗口的风格…

WorkPlus Meet视频会议系统,可私有化部署,保障内部数据安全

WorkPlus Meet作为一款私有化音视频会议平台&#xff0c;具有高度安全性和部署灵活性&#xff0c;能够根据参会人数进行灵活的调配&#xff0c;这样企业可以有效控制会议成本&#xff0c;避免资源浪费。同时&#xff0c;WorkPlus Meet平台支持多种功能&#xff0c;满足不同场景…

使用naive-ui做一个标签页展示列表

目录 零、引言 一、引入所需组件 二、引入数据 三、使用动态样式控制列表条纹 四、全部代码 五、设计思路 5.1组件设计思路 5.2背景颜色控制思路 5.3说明 六。最终效果 零、引言 有时候我们会有很多数据&#xff0c;分成好几类 每一类都需要展示&#xff0c;那么这时…

没有第一、第二学历之分!成人学历一样可以填补学历空缺

如果你还在纠结成人学历是不是第一学历的问题&#xff0c; 可以来看看官方怎么说。 &#xff08;图片来源&#xff1a;教育部官网&#xff09; 请问专升本&#xff08;非成人高招专升本&#xff09;毕业后的第一学历是专科还是本科&#xff1f; 学历是指人们在教育机构中接…

vue3 tsx 项目中使用 Antv/G2 实现多线折线图

Antv/G2 文档 Antv/G2 双折线图 安装依赖 项目中安装 antv/g2 依赖库&#xff1a; npm install antv/g2 --save安装成功&#xff1a; 项目使用 新建文件 IndicatorTrend.tsx&#xff1a; import { defineComponent, PropType, onMounted, ref } from vue import { useCh…

uniapp基础学习笔记01

文章目录 本博客根据黑马教程学习uniapp一、技术架构二、创建项目2.1 Hbuilder创建2.2 插件安装2.3 微信开发者工具配置与运行2.3.1 简单修改基础页面 2.4 pages.json和tabBar2.4.1 pages.json与tabBar配置2.4.2 案例 三、uniapp与原生开发的区别 本博客根据黑马教程学习uniapp…

Postman工具简介

介绍 Postman是一个商业的接口测试工具。免费的版本也可以使用不少功能。 官网&#xff1a;https://www.postman.com/ 下载、安装、应用界面 下载 安装、安装成功以后的应用界面 双击下载下来的可执行文件进行安装&#xff0c;出现如下界面&#xff1a; 可以注册一个账…

自动化测试和手工测试有什么不同以及自动化测试和手工测试应用范围的对比

一、初识自动化测试 如果以前没有做过自动化测试&#xff0c;那么就不了解自动化测试&#xff0c;可能会觉得自动化测试比较神秘&#xff0c;但是&#xff0c;我们在日常的计算机操作中&#xff0c;可能会碰到一些自动化处理的过程&#xff0c;这些过程和自动化测试比较接近。 …

EDA实验------数控分频器设计(QuartusII)

目录 一、实验目的 二、实验原理 三、实验内容 四、实验步骤 五、注意事项 六、思考题 七、实验过程 分频器的基本原理 什么是分频器&#xff1f; 如何去分频&#xff1f; 1.创建新项目 2.创建Verilog文件&#xff0c;写入代码 3.连接电路 ​编辑 锁相环的创建 4…

做决策、定战略、带团队:顶级高手常用的16个思维模型

01 做决策 1.沃伦巴菲特的双目标清单系统&#xff08;Two-List System&#xff09; 弗林特当了巴菲特的私人飞行员十年之久&#xff0c;还曾为美国四任总统开过飞机&#xff0c;但他在事业上依然有更多追求。有一次&#xff0c;他和巴菲特在探讨他的职业生涯目标时&#xff0…

教你轻轻松松写出10万+的微头条爆文,赶紧收藏!

微头条是投放在今日头条上的稿件&#xff0c;重点在于微字&#xff0c;一般在300-500字之间&#xff0c;讲究的是原创干货&#xff0c;有独到见解。 企业和品牌撰写微头条来给自己带来更多曝光和展现。想要让你的微头条写出爆款内容&#xff0c;这是需要讲究技巧的&#xff0c…