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

IPhostname192.168.23.130hadoop01192.168.23.131hadoop02192.168.23.132hadoop03

二、准备安装包版本

jdk-1.8zookeeper-3.8.1hadoop-3.2.4hbase-2.4.15phoenix-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检查集群是就根据这个表格来进行检查)

hadoop01hadoop02hadoop03HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNodeYARNNodeManagerResourceManager NodeManagerNodeManager

# 解压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中的配置文件修改成如下内容

fs.defaultFS

hdfs://hadoop01:8020

hadoop.tmp.dir

/opt/hadoop/tmp

hadoop.http.staticuser.user

root

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

vim hdfs-site.xml

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

dfs.namenode.http-address

hadoop01:9870

dfs.namenode.secondary.http-address

hadoop03:9868

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

vim mapred-site.xml

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

  

mapreduce.framework.name

yarn

  

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

vim yarn-site.xml

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

yarn.nodemanager.aux-services

mapreduce_shuffle

yarn.resourcemanager.hostname

hadoop02

yarn.nodemanager.env-whitelist

JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME

yarn.log-aggregation-enable

true

yarn.log.server.url

http://hadoop01:19888/jobhistory/logs

yarn.log-aggregation.retain-seconds

604800

(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集群是否配置成功

web页面访问 查看HDFS的namenode:http://192.168.23.130:9870 查看 YARN 的 ResourceManager:http://192.168.23.131:8088 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中的配置文件修改成如下内容

hbase.unsafe.stream.capability.enforce

false

hbase.rootdir

hdfs://hadoop01:8020/hbase

hbase.cluster.distributed

true

hbase.master.port

16000

hbase.tmp.dir

/opt/hbase/tmp

hbase.zookeeper.quorum

hadoop01,hadoop02,hadoop03

hbase.zookeeper.property.dataDir

/opt/zookeeper/zkData

(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集群是否配置成功

web页面访问 http://192.168.23.131:16010 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

添加的内容如下

phoenix.schema.isNamespaceMappingEnabled

true

phoenix.schema.mapSystemTablesToNamespace

true

hbase.regionserver.wal.codec

org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec

拷贝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

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: