实践项目所需资料
hive安装手册(如果需要本项目的Hadoop集群压缩包(包含所有组件,免去安装部署),可以私信博主,解压可使用!)
hive安装资料手册.rar-Hadoop文档类资源-CSDN下载
日志数据文件:
大数据分析-网站日志数据文件(Hadoop部署分析资料)-Hadoop文档类资源-CSDN下载
预处理MapReduce代码(python)
hadoop实训课数据清洗py脚本(MapReducepython代码,可执行文件脚本,使用方法)-Hadoop文档类资源-CSDN下载
使用hadoop-streaming运行Python编写的MapReduce程序.rar-Hadoop文档类资源-CSDN下载
PPT演示操作指南(按照步骤做!有原理解释)
hadoop实践项目-PPT演示步骤-Hadoop文档类资源-CSDN下载
本项目需要的安装包(用于需要自己部署所需)
Hadoop部署实践所需的安装包(Ubuntu下的安装包)-Hadoop文档类资源-CSDN下载
分析源码:
Hadoop网站日志分析源码(hive命令).txt-Hadoop文档类资源-CSDN下载
如果你需要本项目Word,可以直接使用博主已经写好的课程设计模板:
基于hadoop对某网站日志分析部署实践课程设计报告参考模板.doc-Hadoop文档类资源-CSDN下载
1、项目概述
本次要实践的数据日志来源于国内某技术学习论坛,该论坛由某培训机构主办,汇聚了众多技术学习者,每天都有人发帖、回帖。至此,我们通过Python网络爬虫手段进行数据抓取,将我们网站数据(2013-05-30,2013-05-31)保存为两个日志文件,由于文件大小超出我们一般的分析工具处理的范围,故借助Hadoop来完成本次的实践。
2、总体设计
2.1 Hadoop插件安装及部署
第一步:Hadoop环境部署和源数据准备
第二步:使用python开发的mapper reducer进行数据处理。
第三步:创建hive数据库,将处理的数据导入hive数据库
第四步:将分析数据
3、详细实现步骤操作纪要
3.1 hadoop环境准备3、详细实现步骤操作纪要
- Hadoop
首先开启Hadoop集群:start-all.sh:开启所有的Hadoop所有进程,在主节点上进行
NameNode它是Hadoop 中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问。
Secondary NameNode是一个用来监控HDFS状态的辅助后台程序。
DataNode它负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个 datanode 守护进程。
NodeManager:
1、是YARN中每个节点上的代理,它管理Hadoop集群中单个计算节点
2、包括与ResourceManger保持通信,监督Container的生命周期管理,
3、监控每个Container的资源使用(内存、CPU等)情况,追踪节点健
4、康状况,管理日志和不同应用程序用到的附属服务(auxiliary service)
ResourceManager:在YARN中,ResourceManager负责集群中所有资源的统一管理和分配,它接收来自各个节点(NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序(实际上是ApplicationManager)RM与每个节点的NodeManagers (NMs)和每个应用的ApplicationMasters (AMs)一起工作。
- hive
Show databases;展示数据库的名称
- mysql
- sqoop
3.2 源数据文件准备
- 下载日志文件
- 将文件拷贝到hadoopvm虚拟机
记住虚拟机上本地路径如:/home/hadoop/logfiles/
sudo find / -name hadoop-stream*(找到Hadoop文件路径)
将Python脚本里面的参数和路径替换,刚刚找到的替换第一行
在hdfs里面新建我们的文件夹:logfiles,然后把我们的日志文件放入里面
- 将文件使用hdfs命令上传到HDFS
先创建hdfs路径:
参数解释:创建文件时候mkdir -p (创建多级目录,父目录存在不报错,依旧在此目录创建没有的子目录)
hdfs dfs -mkdir -p /user/hadoop/logfiles
再上传文件到hdfs
参数解释:
put命令把本地的文件上传到hdfs里面,命令为put 本地路径 hdfs路径
ls -R 递归显示该目录下的所有文件夹(文件)属性和信息
hdfs dfs -put access_2013_05_30.log /user/hadoop/logfiles hdfs dfs -put access_2013_05_31.log /user/hadoop/logfiles hdfs dfs -ls -R /user/hadoop/logfiles
3.3 python开发mapreduce脚本
使用python开发mapreduce脚本对日志数据进行清理,目的是将平面的文本数据解析关键字段成结构化数据,以便存入结构化数据库hive进行分析。
- mapper程序
拷贝到hadoopvm虚拟机,记住路径如:/home/hadoop/logfiles/format_mapper.py
- reduce程序
拷贝到hadoopvm虚拟机,记住路径如:/home/hadoop/logfiles/format_reducer.py
- 使用hadoop-streaming运行mapper reducer程序,示例:
- 修改python程序文件的执行权限:
参数解释:
cd 切换到该路径下,cd ~ :切换到家目录,cd .. 切换到上一级的目录
Chmod 给我们的文件加入权限;数字为777 代表可读可写可执行
详解:
r (read) ----------------> 4
w (write) ----------------> 2
x (excute) ----------------> 1
或者
例如:
chmod u+rwx, g+rwx, o+rwx filename 改命令说明对filename文件, 赋予user、group、other均有read、write、excute的权限
cd /home/hadoop/logfiles/ chmod 777 format_mapper.py chmod 777 format_reducer.py chmod 777 format_run_2013-05-30.sh chmod 777 format_run_2013-05-31.sh
-执行脚本文件:
cd /home/hadoop/logfiles/ source format_run_2013_o5_30.sh source format_run_2013_o5_31.sh
执行我们的脚本文件,可以用source或者./
查看数据清洗的文件
hdfs dfs -ls -R /user/hadoop
- 结果文件(查看)
参数解释:cat 查看文件里面的内容,这个是全部查看,还有其他的查看命令:cat主要有三大功能:
1.一次显示整个文件。
cat filename
2.从键盘创建一个文件。
cat > filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件。
cat file1 file2 > file
Hdfs dfs -cat /user/Hadoop/files30/part-00000