Centos8.3、hadoop-2.6.4 简单的日志分析实验

引言  前段时间答应朋友做一个hadoop分析日志的教程,说完就后悔了,我已经很久没碰它了,为了实现这个承诺不得以又把以前买的书找出来研究一下。值得庆幸的是以前的笔记还在不需要我从头再来。不过搭建hadoop的环境很复杂,我也不准备做从零开始的教程,我准备把我搭建好的环境直接搬过来了,这样不用纠结环境搭建的复杂,也不需要了解Map/Reducer编程就可以直接体验一下hadoop的魅力。

环境准备 

序号 环境和数据 版本 下载地址
1 CentOS-8.3.2011-x86_64-minimal.iso 8.3

链接: https://pan.baidu.com/s/1kWRffCoup2Oxat953ZAe5w 提取码: ml2e

2 hadoop-2.6.4.tar.gz 2.6.4

链接: https://pan.baidu.com/s/1A_fqViL62xrZ6rnA1M8nYQ 提取码: nfna

3 jdk-7u80-linux-x64.rpm 1.7

链接: https://pan.baidu.com/s/1sGneDO4jcfk5ZlbOLVZVpA 提取码: 5nmj

4 access.txt  

链接: https://pan.baidu.com/s/1aKlVcXrrWo5kEmoWa7DD8Q 提取码: 5bgu

注意:请一定使用以上的地址下载的,不然可能出现很多未知的问题。hadoop-2.6.4.tar.gz 配置文件是我改过的,access.txt 是用来测试的tomcat日志数据。

第一步 使用虚拟机软件安装操作系统(没有装过的同学可以去补下课,这里就不讲了)

第二步 操作系统安装好后,先关闭防火墙顺便安装一下vim,具体操作如下:

systemctl stop firewalld.service     #停止firewall
systemctl disable firewalld.service  #禁止firewall开机启动
yum -y install vim #安装vim

第三步 使用上面的下载地址下载jdk1.7上传到刚才创建的centos8.3虚拟机使用命令安装(这里一定要使用rpm安装因为这个安装目录是固定的)安装目录为/usr/java/jdk1.7.0_80  这个jdk的目录已经被我写在hadoop配置中。安装命令如下

rpm -ivh jdk-7u80-linux-x64.rpm #rpm 安装jdk

java -version #查看安装是否成功

第四步 使用上面地址下载hadoop-2.6.4.tar.gz(注意这个包基本配置都是配置好的,不需要做调整的) 包 然后解压到 /usr/local 目录下 解压命令如下

tar -zxf hadoop-2.6.4.tar.gz -C /usr/local

第五步 编辑 /etc/profile 文件添加内容如下

vim /etc/profile # 打开文件编辑

# 在文件尾部追加以下内容
export JAVA_HOME=/usr/java/jdk1.7.0_80
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/jre
export HADOOP_HOME=/usr/local/hadoop-2.6.4/bin
export PATH=$PATH:$HADOOP_HOME

source /etc/profile #保存文件后执行 

完成后 执行 hadoop 或者hdfs 命令看看是否成功 正确结果如

第六步 关闭虚拟机然后克隆一台实例(这里做实验克隆一台就够了)

克隆完成修改实例名称 第一台实例hostname 更改为master 第二台实例更改为slave1 如下图:

vim /etc/hostname #编辑实例名称

reboot            #重启boot

第七步 配置ssh 无密钥访问

1.在master实例执行

ssh-keygen -t rsa

注意这里所有输入直接回车

2.在slave1实例执行(同上所有输入直接回车)

ssh-keygen -t rsa

注意 slave1实例上我们cd 到/root/.ssh/ 目录 使用ls命令查看 有两个文件分别是 id_rsa 和 id_rsa.pub 我们拷贝id_rsa.pub 文件并且重新命名为slave1 然后复制slave1文件到master实例上 命令如下

cd /root/.ssh/                                 #跳转到/root/.ssh目录
cp id_rsa.pub ./slave1                         #复制 id_rsa.pub文件并且重名命为slave1
scp ./slave1 root@172.16.102.15:/root/.ssh/    #将slave1文件复制到master实例/root/.ssh/目录下  注意 (1).要输入yes 和 master实例的密码。(2)172.16.102.15 这个是master实例的ip根据自己master实际ip修改

如下图:(图片这里master ip地址写错了 应该是172.16.102.15 而不是16)

然后我们来到master实例同样到/root/.ssh 目录下合并master实例的id_rsa.pub 文件和slave1实例复制过来的文件并且命名为 authorized_keys 命令如下:

cd /root/.ssh/
cat id_rsa.pub slave1 >>authorized_keys                   #合并master和slave1的密钥文件
scp ./authorized_keys root@172.16.102.16:/root/.ssh       #复制合并后的文件到slave1实例  注意 172.16.102.16 是slave1的ip要根据自己实际的ip修改命令

操作如下图:

 测试效果 

  第八步 编辑/etc/hosts文件 如下图

 

注意这两个ip要改成自己实际的ip 然后同步host文件到其他实例 这里我是在master实例上编辑的所以需要同步到slave1实例。 执行如下命令:

scp /etc/hosts slave1:/etc/hosts

第九步 编辑 master实例子中 hadoop的slave文件 文件位于 /usr/local/hadoop-2.6.4/etc/hadoop 编辑内容很简单之前在slave中我配置了三台slave实例现在只有一台 删除另外两个配置就好 结果如下

第十步 格式化节点 在master、slave实例分别执行 

 hdfs namenode -format

执行结果如下:

 

第十一步 尝试启动hadoop 我们来到master实例  /usr/local/hadoop-2.6.4 目录下执行 ./start_hadoop.sh 脚本 正确结果如下

 在master实例执行jps命令测试正确结果如下

 在slave1实例上测试正确结果如下

 第十二步访问管理界面 

修改自己本机器的hosts文件 添加

172.16.102.15 master
172.16.102.16 slave1

http://master:50070/dfshealth.html#tab-overview

http://master:8088/cluster

http://master:19888/jobhistory

http://master:50070/nn_browsedfscontent.jsp  本次实验主要使用的是这个地址

访问后界面如下

到这环境终于准备好了,即使我是复制之前搭建的环境,还是有点复杂。现在我们开始准备日志分析。

第一步上传日志文件到master实例然后在上传到hdfs  上传文件到hdfs需要先hdfs文件夹 创建和上传命令如下

hdfs dfs -mkdir /aiatt                    #创建aiatt文件夹
hdfs dfs -put ./access.txt /aiatt #上传access 日志文件到hdfs文件系统 aiatt目录下

操作结果如下:

 然后我们刷新  http://master:50070/nn_browsedfscontent.jsp  页面查看结果

 现在我们开始执行Map/Reduce 任务任务如下:

 这段日志是某个tomcat的请求记录日志,现在我们想要的结果是计算出每个请求请求的频率 然后针对有请求频率过高的接口做优化或者缓存。针对这个任务的MapReduce我也已经写好了 直接下载 

链接: https://pan.baidu.com/s/1Wu6uDSBBZK9Wsaue1kmWXQ 提取码: obw5
然后上传到master实例执行一下命令 

hadoop jar ./aiatt.jar /aiatt/access.txt /aiatt/output/result
/aiatt/access.txt 是输入的文件地址   /aiatt/output/result 输出结果地址
这个两个地址都是hdfs 的地址 另外要注意重复执行任务输出地址不能一致,不然会报错。执行结果如下图:

 

 最后我们刷新 刚才的hdfs文件查看的地址查看计算结果

 到这里就结束了 这个实验主要是想让未接触过hadoop的体验一下,如果真的想学习的话推荐 《Hadoop大数据开发基础》这本书 ,我就是看这本书自学的,虽然这本书有几个小错误但是还是不错的入门书

posted @ 2021-08-23 18:57  时光城主  阅读(136)  评论(0编辑  收藏  举报