zookeeper + hadoop + hbase + phoenix

本文详细介绍了如何在三台虚拟机上搭建分布式集群,包括安装JDK、Zookeeper、Hadoop、HBase和Phoenix,以及配置相关环境变量和集群参数,确保服务的正常启动和交互。
摘要由CSDN通过智能技术生成

一、首先创建三台空的虚拟机,在此基础上搭建分布式集群

IPhostname
192.168.23.130hadoop01
192.168.23.131hadoop02
192.168.23.132hadoop03

二、准备安装包版本

  • jdk-1.8
  • zookeeper-3.8.1
  • hadoop-3.2.4
  • hbase-2.4.15
  • phoenix-2.4.0-5.1.3

三、服务器环境准备(三个节点都要进行)

1、关闭防火墙

# 临时关闭防火墙
systemctl stop firewalld
# 永久关闭防火墙
systemctl disable firewalld

2、设置主机名

# 三个节点名称分别是hadoop01、hadoop02、hadoop03
hostnamectl set-hostname hadoop01

3、配置主机hosts

vim /etc/hosts

# 添加如下内容
192.168.23.130 hadoop01
192.168.23.131 hadoop02
192.168.23.132 hadoop03

4、设置ssh免密登录

# 所有节点都需要执行,连续按三次回车,在.ssh目录下生成id_rsa和id_rsa.pub
ssh-keygen

# 分发密钥,所有节点都需要执行三次,仅需要修改机器名称
ssh-copy-id hadoop01

四、安装JDK

# 解压tar包
tar -zxvf jdk-8u291-linux-x64.tar.gz

# 移动解压后得包到/opt/java目录下
mv jdk1.8.0_291 /opt/java

分发JDK安装包到其他节点

cd /opt

# 分发java包到其他节点
scp -r java hadoop02:$PWD

配置JDK环境变量(所有节点都需要执行)

# 在 /etc/profile 文件末尾加上JDK环境变量
vim /etc/profile

# 内容如下
export JAVA_HOME=/opt/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.har:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre

# 加载环境变量使其生效
source /etc/profile

# 测试环境变量是否生效
java -version

五、安装zookeeper

# 解压zookeeper包
tar -zxvf apache-zookeeper-3.8.1-bin.tar.gz

# 移动解压后得包到/opt/zookeeper目录下
mv apache-zookeeper-3.8.1-bin /opt/zookeeper

修改zookeeper配置

# 进入zookeeper包
cd /opt/zookeeper

# 复制zoo_sample.cfg模板配置文件
cp zoo_sample.cfg zoo.cfg

# 修改配置文件
vim zoo.cfg

# 修改内容如下
dataDir=/opt/zookeeper/data

添加zookeeper集群信息,在zoo.cfg末尾添加对应集群节点信息

server.1=hadoop01:2555:3555
server.2=hadoop02:2555:3555
server.3=hadoop03:2555:3555

添加zookeeper数据目录并创建节点ID对应集群节点信息

# 创建data目录
mkdir /opt/zookeeper/data

# 在/opt/zookeeper/data创建myid文件
cd /opt/zookeeper/data

# 修改节点ID
vim myid

# 内容如下(三个节点得内容分别是1,2,3)
1

分发zookeeper文件到其他节点。

cd /opt
scp -r zookeeper hadoop02:$PWD

注意:文件分发完后需要到每个节点将myid中得内容改成对应节点得ID,一定不能漏改和改错,否则zookeeper启动将会失败

启动zookeeper(所有节点均需执行)

# 进入zookeeper的bin目录
cd /opt/zookeeper/bin

# 启动zookeeper
./zkServer.sh start

# 查看zookeeper状态
./zkServer.sh status

使用JPS查看zookeeper进行,zookeeper的进程名称为QuorumPeerMain

六、安装hadoop

部署hadoop集群,NameNode和SecondaryNameNode不要安装在一台机器上面。ResourceManager也很消耗内存,所以不要和NameNode和SecondaryNameNode配置到同一台机器上面。

按照如下表格进行配置(后面通过JPS检查集群是就根据这个表格来进行检查)

hadoop01hadoop02hadoop03
HDFSNameNode
DataNode
DataNodeSecondaryNameNode
DataNode
YARNNodeManagerResourceManager
NodeManager
NodeManager
# 解压hadoop包
tar -zxvf hadoop-3.2.4.tar.gz

# 移动解压后得包到/opt/hadoop目录下
mv hadoop-3.2.4 /opt/hadoop

(1)修改hadoop-env.sh配置

# 进入hadoop配置目录
cd /opt/hadoop/etc/hadoop

# 修改hadoop-env.sh
vim hadoop-env.sh

# 修改内容如下
export JAVA_HOME=/opt/java
export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop

# 加载配置
source hadoop-env.sh

(2)修改core-site.xml配置

vim core-site.xml

将core-site.xml中的配置文件修改成如下内容

<configuration>
	<!-- 指定namenode的地址 -->
	<property>
	  <name>fs.defaultFS</name>
	  <value>hdfs://hadoop01:8020</value>
	</property>
	<!-- 指定hadoop数据的存储目录  -->
	<property>
	   <name>hadoop.tmp.dir</name>
	   <value>/opt/hadoop/tmp</value>
	</property>
	<!-- 配置 HDFS 网页登录使用的静态用户为 root -->
	<property>
	   <name>hadoop.http.staticuser.user</name>
	   <value>root</value>
	</property>
</configuration>

(3)修改hdfs-site.xml配置

vim hdfs-site.xml

将hdfs-site.xml中的配置文件修改成如下内容

<configuration>
	<!-- nn web 端访问地址-->
	<property>
	   <name>dfs.namenode.http-address</name>
	   <value>hadoop01:9870</value>
	</property>
	<!-- 2nn web 端访问地址-->
	<property>
	   <name>dfs.namenode.secondary.http-address</name>
	   <value>hadoop03:9868</value>
	</property>
</configuration>

(4)修改mapred-site.xml配置

vim mapred-site.xml

将mapred-site.xml中的配置文件修改成如下内容

<configuration>
	<!-- mapreduce的工作模式:yarn -->
  <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
  </property>
</configuration>

(5)修改yarn-site.xml配置

vim yarn-site.xml

将yarn-site.xml中的配置文件修改成如下内容

<configuration>
	<!-- 指定 MR 走 shuffle -->
	<property>
	   <name>yarn.nodemanager.aux-services</name>
	   <value>mapreduce_shuffle</value>
	</property>
	<!-- 指定 ResourceManager 的地址-->
	<property>
	   <name>yarn.resourcemanager.hostname</name>
	   <value>hadoop02</value>
	</property>
	<!-- 环境变量的继承 -->
	<property>
	   <name>yarn.nodemanager.env-whitelist</name>
	   <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
	</property>
	<!-- 开启日志聚集功能 -->
	<property>
	   <name>yarn.log-aggregation-enable</name>
	   <value>true</value>
	</property>
	<!-- 设置日志聚集服务器地址 -->
	<property>
	   <name>yarn.log.server.url</name>
	   <value>http://hadoop01:19888/jobhistory/logs</value>
	</property>
	<!-- 设置日志保留时间为 7 天 -->
	<property>
	   <name>yarn.log-aggregation.retain-seconds</name>
	   <value>604800</value>
	</property>
</configuration>

(6)编辑workers

vim workers

# 修改成如下内容
hadoop01
hadoop02
hadoop03

分发配置后的hadoop包到其他节点

cd /opt

# 分发安装包
scp -r hadoop hadoop02:$PWD

配置hadoop环境变量(所有节点均需执行)

# 在 /etc/profile 文件末尾加上hadoop环境变量
vim /etc/profile

# 内容如下
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
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

# 加载环境变量使其生效
source /etc/profile

# 测试环境变量是否生效
hadoop version

启动hadoop集群

# 在hadoop01初始化hadoop集群
hdfs namenode -format

# 在hadoop01节点启动HDFS
start-dfs.sh

# 在hadoop02节点启动YARN
start-yarn.sh

验证hadoop集群是否配置成功

  1. web页面访问
    查看HDFS的namenode:http://192.168.23.130:9870
    查看 YARN 的 ResourceManager:http://192.168.23.131:8088

  2. JPS查看
    使用JPS查看各个节点的进程状态是否跟前面规划的表格中的进程名称一致

七、安装HBase

# 解压hbase包
tar -zxvf hbase-2.4.15-bin.tar.gz

# 移动解压后得包到/opt/hbase目录下
mv hbase-2.4.15-bin /opt/hbase

(1)修改hbase-env.sh配置

cd /opt/hbase/conf

# 修改hbase-env.sh
vim hbase-env.sh

# 修改内容如下
export JAVA_HOME=/opt/java
export HBASE_MANAGES_ZK=false

(2)修改hbase-site.xml配置

vim hbase-site.xml

将hbase-site.xml中的配置文件修改成如下内容

<configuration>
	<!--  V2.1版本,在分布式情况下, 设置为false -->
	<property>
	  <name>hbase.unsafe.stream.capability.enforce</name>
	  <value>false</value>
	</property>
	<!-- 这个目录是 RegionServer 的共享目录,用来持久化 HBase。特别注意的是 hbase.rootdir 里面的 HDFS 地址是要跟 Hadoop 的 core-site.xml 里面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口必须一致 -->
	<property>
	  <name>hbase.rootdir</name>
	  <value>hdfs://hadoop01:8020/hbase</value>
	</property>
	<!-- Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面 -->
	<property>
	  <name>hbase.cluster.distributed</name>
	  <value>true</value>
	</property>
	<!-- 指定master端口,默认也是16000 -->
	<property>
	  <name>hbase.master.port</name>
	  <value>16000</value>
	</property>
	<!-- 本地文件系统的临时文件夹。可以修改到一个更为持久的目录上。(/tmp会在重启时清除) -->
	<property>
	  <name>hbase.tmp.dir</name>
	  <value>/opt/hbase/tmp</value>
	</property>
	<!-- 列出全部的 ZooKeeper 的主机,用逗号隔开 -->
	<property>
	  <name>hbase.zookeeper.quorum</name>
	  <value>hadoop01,hadoop02,hadoop03</value>
	</property>
	<!-- ZooKeeper 快照的存储位置,默认值为 /tmp -->
	<property>
	  <name>hbase.zookeeper.property.dataDir</name>
	  <value>/opt/zookeeper/zkData</value>
	</property>
</configuration>

(3)配置regionservers

vim regionservers

# 内容如下
hadoop01
hadoop02
hadoop03

复制jar包到lib

cp /opt/hbase/lib/client-facing-thirdparty/htrace-core4-4.2.0-incubating.jar /opt/hbase/lib/

分发配置后的hbase包到其他节点

cd /opt

# 分发安装包
scp -r hbase hadoop02:$PWD

配置HBase环境变量(所有节点均需执行)

# 在 /etc/profile 文件末尾加上hbase环境变量
vim /etc/profile

# 内容如下
export HBASE_HOME=/opt/hbase
export PATH=$PATH:${HBASE_HOME}/bin:${HBASE_HOME}/sbin

# 加载环境变量使其生效
source /etc/profile

# 测试环境变量是否生效
hbase version

启动HBase

start-hbase.sh

验证HBase集群是否配置成功

  1. web页面访问
    http://192.168.23.131:16010

  2. JPS查看
    使用JPS查看hadoop01是否存在HMaster、HRegionServer进程名称
    查看其他节点是否存在HRegionServer进程名称

八、安装phoenix

# 解压phoenix包
tar -zxvf phoenix-hbase-2.4.0-5.1.3-bin.tar.gz

# 移动解压后得包到/opt/phoenix目录下
mv phoenix-hbase-2.4.0-5.1.3-bin /opt/phoenix

拷贝jar包到 /opt/hbase/lib目录

cp /opt/phoenix/phoenix-server-hbase-2.4.0-5.1.3.jar /opt/hbase/lib/

将jar分发到其他节点

scp /opt/phoenix/phoenix-server-hbase-2.4.0-5.1.3.jar hadoop02:/opt/hbase/lib/

修改hbase-site.xml配置(在原配置文件中的configuration中添加配置,不要覆盖之前的配置)

cd /opt/hbase/conf

vim hbase-site.xml

添加的内容如下

<!-- 支持HBase命名空间映射 -->
<property>
  <name>phoenix.schema.isNamespaceMappingEnabled</name>
  <value>true</value>
</property>
<property>
  <name>phoenix.schema.mapSystemTablesToNamespace</name>
  <value>true</value>
</property>
<!-- 支持索引预写日志编码 -->
<property>
  <name>hbase.regionserver.wal.codec</name>
  <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>

拷贝hbase-site.xml到phoenix中

cp /opt/hbase/conf/hbase-site.xml /opt/phoenix/bin/

将hbase-site.xml分发到其他节点

cd /opt/hbase/conf

scp hbase-site.xml haoop02:$PWD

重启HBase

# 关闭hbase
stop-hbase.sh

# 启动hbase
start-hbase.sh

验证phoenix是否安装成功

cd /opt/phoenix/bin

# 启动phoenix客户端(首次启动加载时间会比较长,加载过程中不要强制退出)
./sqlline.py hadoop01:2181

成功进入phoenix客户端后可以查看phoenix中的所有表

# 查看所有表
!table
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值