搭建基于HA的Hadoop全分布式模式集群
实验目的
搭建基于HA的hadoop集群,kafka大数据运算环境和flume大数据开发环境,进行项目中数据生产,采集/消费/存储,分析,展示
基于HA的Hadoop全分布式模式集群
1.设置五个集群节点的网络环境,并且需要下载jdk,kafka,zookeeper,hive,hadoop,hdfs,mysql,flume,hbase

关闭防火墙,并防止开机自启动

设置selinux的config配置

并再次查看selinux的状态

2.任务内容为初始化网络分配方案
修改网卡信息、主机名称及hosts文件等操作。
使用# vim /etc/hostname命令分别为每个节点的hostname进行重命名
并且都为hostname的文件中进行配置IP与域名的映射:


验证是否能够ping通,查看丢包率,测试成功

3.ssh免密码登录
Hadoop分布式集群是由多个节点组成,各节点之间需要通过网络访问,如果每次都需要输入密码,非常不方便,所以可以考虑设置各节点之间免密码连接。需要配置ssh免密码登录
以master1节点为例:
首先使用命令生成密钥:

再合并公钥到athorizekeys:
命令为:
cd /root/.ssh
cat id_rsa.pub >> authorized_keys # 将Master自身的公钥加入
ssh root@master2 cat /root/.ssh/id_rsa.pub >> authorized_keys
ssh root@slave1 cat /root/.ssh/id_rsa.pub >> authorized_keys
ssh root@slave2 cat /root/.ssh/id_rsa.pub >> authorized_keys
ssh root@slave3 cat /root/.ssh/id_rsa.pub >> authorized_keys

分发authorized_keys到所有节点:

再测试连接其他的节点:
ssh root@master2

4.检查各个节点的JDK的安装情况,同时安装 JDK并配置环境变量。
以slave3为例:
cd 到对应节点,查看是否有压缩包

解压缩之后,配置对应的环境

5.安装zookeeper集群
ZooKeeper集群需要在主节点发生故障时进行领导者投票,故集群的数量应该为 2n+1 个且n >= 1,只需要在slave节点之中配置环境
在slave1、slave2、slave3分别配置用户环境变量:
以slave2为例:
使用tar -zxf zookeeper-3.4.13.tar.gz -C /opt/app/命令解压文件到对应文件

在slave1、slave2、slave3分别配置用户环境变量,使用 vi /etc/profile编辑配置文件,再依次配置zookeeper的配置文件,包括data

最后启动三个节点的zookeeper,形成集群
修改其配置文件:

将slave3配置好的内容同步复制到slave1,slave2

最后启动三个从节点的zookeeper:

6.安装并配置hadoop集群
解压压缩包:

在所有节点配置hadoop环境:

接下来只在master节点进行操作:
只在master节点配置节点依次配置xml文件:

输入【vim hadoop-env.sh】打开准备修改的配置文件hadoop-env.sh,修改JAVA_HOME环境变量。

配置slaves文件,该文件存在在$HADOOP_HOME/etc/hadoop目录下,删除默认的localhost,增加3个从节点的IP地址或host主机名

创建目录并复制内容到对应的路径上:


在所有节点执行 :

7.启动Hadoop高可用集群,并修复可能出现的Bug
格式化ZKFC:

配置HA集群名称:
ls /hadoop-ha
依次在slave节点输入命令:
hadoop-daemon.sh start journalnode
格式化集群的namenode
将master1上的NameNode的元数据同步到master2上的NameNode,在master1上执行,再启动hdfs集群和yarn集群:

查看守护进程:
master1:NameNode、ResourceManager、DFSZKFailoverController
master2:NameNode、ResourceManager、DFSZKFailoverController
从slave1:DataNode、NodeManager、JournalNode、QuorumPeermain
从slave2:DataNode、NodeManager、JournalNode、QuorumPeermain
从slave3:DataNode、NodeManager、JournalNode、QuorumPeermain
9.HBase的安装和部署
解压文件后配置环境变量文件:

配置hbase-env.sh文件,hbase-site.xml文件,配置backup-master文件,

配置regionservers文件

将Hadoop的配置文件拷贝到HBase的conf目录

配置env.sh文件,依次配置这三个文件,再将文件拷贝到新的位置


最后启动hbase集群
10.安装并配置在Hadoop集群中使用Hive
tar -xzvf apache-hive-2.3.4-bin.tar.gz -C /opt/app/ 解压文件夹

将/opt/software目录中的MySQL驱动包拷贝到$HIVE_HOME/lib目录中,配置hive-site.xml文件,配置hive-env.sh文件

配置环境变量

cp /opt/software/mysql-connector-java-5.1.47-bin.jar $HIVE_HOME/lib

初始化Hive的元数据

启动hive

11.安装Java,kafka,zookeeper
再次配置kafka环境:

为Kafka创建数据目录

修改配置文件的值,设置broke_id=1


将Kafka拷贝到slave2、slave3并修改broker.id的值,在slave2修改kafka的配置文件server.properties,将broker.id的值修改为2,分别在slave1、slave2、slave3启动Kafka的后台守护进程


12.配置flume环境

具体安装步骤如下:
1. 解压缩Flume的压缩包
2. 配置Flume的环境变量
3. 修改Flume的配置文件,Flume的配置文件存放在Flume安装目录下的conf中
4. 通过远程登录方式获得Flume收集的数据
5. 将Flume收集的数据存储到HDFS中
再次解压环境:tar -xzf apache-flume-1.9.0-bin.tar.gz -C /opt/app/
在文件中配置环境变量:
export FLUME_HOME=/opt/app/apache-flume-1.9.0-bin
export PATH=$PATH:$FLUME_HOME/bin

在$FLUME_HOME/conf 下复制改名flume-env.sh.template为flume-env.sh,修改conf/flume-env.sh配置文件
添加环境:
JAVA_HOME=/opt/app/jdk1.8.0_181
JAVA_OPTS="-Xms100m -Xmx200m -Dcom.sun.management.jmxremote"

在$FLUME_HOME/conf目录下修改flume-conf.properties.template文件,复制并改名为flume-conf.properties

最后运行文件:
flume-ng agent -c ./conf/ -f ./conf/flume-conf.properties -n a1 -Dflume.root.logger=INFO,console
最后进行,数据生产,数据存储和数据分析
根据之前配置的环境在IDEA中编程,实现


创建producer包,对maven缓存进行清理,整个maven项目进行package
打包成jar包可以命令行输入以下命令:
cd /root/IdeaProjects/ct_producer/target
cp ct_producer-1.0-SNAPSHOT.jar /opt/app/
touch /opt/app/productlog.sh
数据采集消费存储
基于flume的整个数据采集消费存储流程如下:

通过使用flume将数据采集存储到消息队列kafka中,kafka将处理好的数据存储到hive数据库中
首先将坐标依赖导入到pom.xml文件中,将配置文件配置好后,将Hadoop的【core-site.xml】、【hdfs-site.xml】和HBase的【hbase-site.xml】文件拷贝至resources文件夹下

最后将package好的jar包上传到hdfs中,进入HBase命令行将协处理器应用到表,执行【hbase shell】进入HBase命令行
将采集到的数据放到hbase中,需要实现以下业务目标:

将实验步骤中的代码cv到IDEA中:

1) 打包ct_analysis项目。
2) 将MySQL驱动包放到Hadoop根目录的lib目录下
cp /opt/software/mysql-connector-java-5.1.47-bin.jar $HADOOP_HOME/share/hadoop/
scp /opt/software/mysql-connector-java-5.1.47-bin.jar master2:$HADOOP_HOME/share/hadoop/
scp /opt/software/mysql-connector-java-5.1.47-bin.jar slave1:$HADOOP_HOME/share/hadoop/
scp /opt/software/mysql-connector-java-5.1.47-bin.jar slave2:$HADOOP_HOME/share/hadoop/
scp /opt/software/mysql-connector-java-5.1.47-bin.jar slave3:$HADOOP_HOME/share/hadoop/
数据展示
使用SSM框架+tomcat展示分析结果:

可视化结果如下,可直接点击查询btn查询数据图表

更多推荐
所有评论(0)