# Hadoop-logs
这是一个基于分布式大数据平台的日志存储、分析及可视化系统
项目进度见:[项目日志](./project-diary.md)
## 需求分析
- 搭建分布式大数据平台( Hadoop, Yarn, ZooKeeper, Docker )。
- 收集( Flume )网站日志数据( 暂定使用 搜狗实验室 的新闻网站数据 )。
- 实时处理数据( Kafka, Spark )并在前端( Echarts )做展示( 实时热度TopK等 )。
- 数据清洗后存储到数据仓库中( Hbase, Hive )。
- 离线处理数据( MapReduce )后提供交互式报表( Hue )( 统计不同时段对应的访问量等数据 )。
## 架构
![架构](http://pic.xuecq.cc/hadoopNews-structures.png)
## 节点情况
| | 机器1 | 机器2 | 机器3 |
| :-------: | :-------------------------: | :-------------------------: | :----------: |
| HDFS | NameNode/DataNode | NameNode/DataNode | DataNode |
| YARN | ResourceManager/NodeManager | ResourceManager/NodeManager | NodeManager |
| ZooKeeper | ZooKeeper | ZooKeeper | ZooKeeper |
| Kafka | Kafka | Kafka | Kafka |
| Hbase | master/RegionServer | RegionServer | RegionServer |
| Flume | Flume | Flume | Flume |
| Hive | | | Hive |
| Mysql | | | Mysql |
| Spark | | Spark | |
| Hue | | | Hue |
## 使用说明
1. 配置 ssh 免密登陆
``` shell
# 注意,这是初始化时才要做的,只需配置一次即可。hadoop-1 和 hadoop-2 都需要做
bash /opt/tools/autoSsh.sh
```
2. 启动 ZooKeeper 集群
``` shell
# 在 hadoop-1 上单独启动集群,下面的命令无特殊说明均在 hadoop-1 上执行
bash /opt/tools/zoo.sh
```
3. 启动 JournalNode 集群
4. 选择一个节点作为 NameNode 格式化并启动
5. 在备用名称节点上同步 NameNode
6. 选择一个节点格式化 ZooKeeper
7. 启动 HDFS
8. 启动 zkfc
``` bash
# 3 - 8 步以及集成在 first.sh 中,方便集群创建后的初始化
bash /opt/tools/first.sh
# 若非首次使用,则无需进行格式化,直接启动 HDFS 和zkfc 即可
cd /opt/modules/hadoop-2.5.0-cdh5.3.6
./sbin/start-dfs.sh
# zkfc 需在 hadoo-1 和 hadoop-2 上执行
cd /opt/modules/hadoop-2.5.0-cdh5.3.6
./sbin/hadoop-daemon.sh start zkfc
```
9. 启动 Yarn 集群(需手动启动备用 ResourceManager )
``` bash
cd /opt/modules/hadoop-2.5.0-cdh5.3.6
./sbin/start-yarn.sh
# 去另一节点(hadoop-2)
cd /opt/modules/hadoop-2.5.0-cdh5.3.6
./sbin/yarn-daemon.sh start resourcemanager
```
10. 启动日志聚合服务
``` shell
cd /opt/modules/hadoop-2.5.0-cdh5.3.6
./sbin/mr-jobhistory-daemon.sh start historyserver
```
11. 启动 Hbase
``` shell
cd /opt/modules/hbase-0.98.6-cdh5.3.0
./bin/start-hbase.sh
# 建表
./hbase shell
create 'weblogs','info';
```
12. 启动 Kafka
``` shell
cd /opt/tools
./kafka.sh
```
13. 启动 Flume
``` shell
# 每个节点都要单独做,因为不同节点的 Flume 功能不同
cd /opt/modules/flume-1.7.0-bin
./flume.sh start
```
14. 开始生产并记录日志
``` shell
# hadoop-2 和 hadoop-3 去产生日志
cd /opt/tools
./generateLog.sh
# hadoop-1 可以通过 Kafka 的消费端或 Hbase shell 去验证结果
cd /opt/modules/kafka_2.11-0.9.0.0
./kfk-weblogs-consumer.sh
cd /opt/modules/hbase-0.98.6-cdh5.3.0
./bin/hbase shell
```
15. Hive 创建外部表
``` bash
# Hive 配置成依赖 Mysql,注意检查 Mysql 是否启动,启动后,在 hadoop-3 上初始化 Hive
cd /opt/modules/hive-0.13.1-cdh5.3.6
./bin/hive
# 创建和 weblogs 对应的表结构
CREATE EXTERNAL TABLE weblogs(
id string,
datetime string,
userid string,
searchname string,
retorder string,
cliorder string,
cliurl string
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES("hbase.columns.mapping"=
":key,info:datetime,info:userid,info:searchname,info:retorder,info:cliorder,info:cliurl")
TBLPROPERTIES("hbase.table.name"="weblogs");
# 接下来可以运行相应的 sql 语句进行检查
```
16. 启动 Hive 的后台服务
``` shell
# 若想在 Hue 中使用 Hive,需在后台开启相应的 Hive 进程
cd /opt/modules/hive-0.13.1-cdh5.3.6
nohup ./bin/hiveserver2 &
```
17. 编译并启动 Hue
``` shell
# 确保编译相关的依赖正常后再编译,相关依赖在 conf 目录下
cd /opt/modules/hue-3.7.0-cdh5.3.6
make apps
# 修改 desktop.db 文件权限和所属用户
chmod o+w desktop/desktop.db
# 启动 Hue 服务
cd /opt/modules/hue-3.9.0-cdh5.5.0/build/env/bin
./supervisor
# 之后便可前往浏览器访问了 http://hadoop-3:8888
```
17. 上传实时数据处理模块
``` shell
# 进入安装 spark 的机器
docker-compose exec --user kfk kfk2 bash
# 进入 spark 目录
cd /opt/modules/spark-2.2.0-bin
# 上传 jar 包
./bin/spark-submit --master local[2] /opt/data/sparkScala.jar
# 之后如果 mysql 和 tomcat 部署正常 就可以正常访问了 详情看 web 部分代码
```
不走小道
- 粉丝: 3382
- 资源: 5051
最新资源
- ABAQUS高速铁路板式无砟轨道耦合动力学模型
- 短路电流计算 Matlab编程计算 针对常见的四种短路故障(单相接地短路,两相相间短路,两相接地短路,三相短路),可采取三种方法进行计算: 1.实用短路电流计算 2.对称分量法计算 3
- 优化算法改进 Matlab 麻雀搜索算法,粒子群优化算法,鲸鱼优化算法,灰狼优化算法,黏菌优化算法等优化算法,提供算法改进点 改进后的优化算法也可应用于支持向量机,最小二乘支持向量机,随机森林,核
- 遗传算法优化极限学习机做预测,运行直接出图,包含真实值,ELM,GA-ELM对比,方便比较 智能优化算法,粒子群算法,花授粉算法,麻雀算法,鲸鱼算法,灰狼算法等,优化BP神经网络,支持向量机,极限学
- FX3U,FX5U,控制IO卡 ,STM32F407ZET6工控板,包括pcb,原理图 , PLC STMF32F407ZET6 FX-3U PCB生产方案 板载资源介绍 1. 8路高速脉冲加方向
- 利用matlab和simulink搭建的纯跟踪控制器用于单移线轨迹跟踪,效果如图 版本各为2018b和2019 拿后内容包含: 1、simulink模型 2、纯跟踪算法的纯matlab代码,便于理解
- 三相光伏并网逆变器设计,原理图,PCB,以及源代码 主要包括以下板卡: 1)主控DSP板, 负责逆变器的逆变及保护控制 原理图为pdf. pcb为AD文件 2)接口板,负责信号采集、处理,以及
- 考虑气电联合需求响应的 气电综合能源配网系统协调优化运行 该文提出气电综合能源配网系统最优潮流的凸优化方法,即利用二阶锥规划方法对配电网潮流方 程约束进行处理,并提出运用增强二阶锥规划与泰勒级数展开相
- 光子晶体BIC,OAM激发 若需第二幅图中本征态以及三维Q等计算额外
- 基于共享储能电站的工业用户日前优化经济调度,通过协调各用户使用共享储能电站进行充放电,实现日运行最优 代码环境:matlab+yalmip+cplex gurobi ,注释详尽,结果正确 对学习储
- 三相PWM整流器simulink仿真模型,采用双闭关PI控制,SVPWM调制策略,可以实现很好的整流效果,交流侧谐波含量低,可以很好的应对负载突变等复杂工况
- 红外遥控器+红外一体化接收头部分的仿真 带程序 红外线编码是数据传输和家用电器遥控常用的一种通讯方法,其实质是一种脉宽调制的串行通讯 家电遥控中常用的红外线编码电路有μPD6121G型HT622型和
- 新能源系统低碳优化调度(用Matlab) 包含各类分布式电源消纳、热电联产、电锅炉、储能电池、天然气等新能源元素,实现系统中各种成本的优化,调度 若有需要,我也有matlab
- Matlab 遗传算法解决0-1背包问题(装包问题) 源码+详细注释 问题描述:已知不同物品质量与不同背包最大载重,求取最优值使得所有背包所装得的物品质量总和最大 可以改物品质量与背包载重数据
- 信捷plc控制3轴机械臂调试程序,只是调试程序,包含信捷plc程序,信捷触摸屏程序,手机组态软件程序,含手机组态软件 程序自己写的,后期还会增加相关项目 触摸屏示教程序写好,可以任意示教完成全部动
- ABS制动系统开发 PID控制 开关控制 matlab simulink carsim联合仿真,下面视频为pid控制效果和不带ABS的对比 滑移率控制目标20% 分离路面制动
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈