当前位置: 首页 > news >正文

大数据课程H2——TELECOM的电信流量项目实现

文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州

 ▲ 本章节目的

⚪ 了解TELECOM项目的数据收集;

⚪ 了解TELECOM项目的数据清洗;

⚪ 了解TELECOM项目的数据导出;

⚪ 了解TELECOM项目的数据可视化;

⚪ 了解TELECOM项目的其他;

一、数据收集

1. 在实际生产环境中,电信流量日志肯定不只是在一台服务器上产生,而是每一台服务器都会产生流量日志。所以此时,需要先搭建Flume的扇入流动模型,之后将收集到的数据传输到HDFS上进行存储。

2. 步骤:

a. 在第二台和第三台服务器上来创建对应的目录用于存储日志(将第二台和第三台服务器当作是日志产生的服务器) 。

cd /home

mkdir telecomlog

b. 进入对应的目录,将日志上传或者下载到指定目录下(实际过程中,日志肯定是实时产生的) 。

cd telecomlog/

#云主机的下载地址

 wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/103_20150615143630_00_00_000_2.csv

c. 收集第二台和第三台服务器上的日志,将收集到的日志传输到第一台服务器上,进行数据的扇入。

cd /home/software/apache-flume-1.9.0-bin/data

#编辑文件

vim telecomlog.conf

#在文件中添加如下内容

a1.sources = s1

a1.channels = c1

a1.sinks = k1

# 日志是放在指定目录下的

# 所以此时监控指定目录下的变化

# 如果目录下产生了新的文件

# 需要收集这个新文件中的内容

a1.sources.s1.type = spooldir

# 指定要监听的目录

a1.sources.s1.spoolDir = /home/telecomlog

# 配置Channel

a1.channels.c1.type = memory

a1.channels.c1.capacity = 10000

a1.channels.c1.transactionCapacity = 1000

# 需要将收集到的数据发送到第一台服务器上

a1.sinks.k1.type = avro

a1.sinks.k1.hostname = hadoop01

a1.sinks.k1.port = 8090

# 绑定

a1.sources.s1.channels = c1

a1.sinks.k1.channel = c1

d. 数据收集到第一台服务器上之后,需要将收集到的数据写到HDFS上。

cd /home/software/apache-flume-1.9.0-bin/data/

#编辑文件

vim telecomlog.conf

#在文件中添加如下内容

a1.sources = s1

a1.channels = c1

a1.sinks = k1

# 需要接收第二台和第三台服务器传输来的数据

a1.sources.s1.type = avro

a1.sources.s1.bind = 0.0.0.0

a1.sources.s1.port = 8090

# 需要在数据中来添加一个时间戳

a1.sources.s1.interceptors = i1

a1.sources.s1.interceptors.i1.type = timestamp

# 配置Channel

a1.channels.c1.type = memory

a1.channels.c1.capacity = 10000

a1.channels.c1.transactionCapacity = 1000

# 配置Sink

# 需要将数据写到HDFS上,最好能够实现数据按天存储

a1.sinks.k1.type = hdfs

# 指定数据在HDFS上的存储路径

a1.sinks.k1.hdfs.path = hdfs://hadoop01:9000/telecomlog/reporttime=%Y-%m-%d

# 指定文件在HDFS上的存储类型

a1.sinks.k1.hdfs.fileType = DataStream

# 指定文件的滚动时间间隔

a1.sinks.k1.hdfs.rollInterval = 3600

a1.sinks.k1.hdfs.rollSize = 0

a1.sinks.k1.hdfs.rollCount = 0

# 绑定

a1.sources.s1.channels = c1

a1.sinks.k1.channel = c1

e. 启动HDFS。

start-dfs.sh

f. 启动第一台服务器上的Flume。

../bin/flume-ng agent -n a1 -c ../conf -f telecomlog.conf -

Dflume.root.logger=INFO,console

g. 启动第二台服务器和第三台服务器上的Flume。

../bin/flume-ng agent -n a1 -c ../conf -f telecomlog.conf -

Dflume.root.logger=INFO,console

二、数据清洗

1. 利用Flume将数据收集到了HDFS上,那么此时需要在Hive中建表来管理原始数据。

#启动YARN

start-yarn.sh

#进入HBase的安装目录的lib目录下

cd /home/software/hbase-2.4.2/lib

#进入子目录

cd client-facing-thirdparty/

#重命名

mv commons-logging-1.2.jar commons-logging-1.2.bak

mv log4j-1.2.17.jar log4j-1.2.17.bak

mv slf4j-log4j12-1.7.30.jar slf4j-log4j12-1.7.30.bak

#启动Hive的服务进程

hive --service metastore &

hive --service hiveserver2 &

#进入hive的客户端

hive

#创建库

create database telecom;

#使用这个库

http://www.lryc.cn/news/116352.html

相关文章:

  • Langchain module ‘hnswlib‘ has no attribute ‘Index‘ 错误解决
  • HIVE学习
  • 逆了个天了,阿里开源自然语言写SQL的神器级别工具快用起来
  • 85. 最大矩形
  • Vue [Day5]
  • 备战大型攻防演练,“3+1”一套搞定云上安全
  • 网络_每日一学——网络的整体概述
  • 【ChatGPT 指令大全】怎么使用ChatGPT来帮我们写作
  • Redis 如何解决缓存雪崩、缓存击穿、缓存穿透难题
  • SSRF(服务器端请求伪造)漏洞
  • 【Axure动态面板】利用动态面板实现树形菜单的制作
  • Android 实现 RecyclerView下拉刷新,SwipeRefreshLayout上拉加载
  • 使用MethodInterceptor和ResponseBodyAdvice做分页处理
  • WEB集群——LVS-DR 群集、nginx负载均衡
  • 倒计时87天!软考初级信息处理技术员2023下半年报名考试攻略
  • 【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio构建SpringSecurity权限框架
  • c语言每日一练(4)
  • VB字符转换
  • 【C++进阶之路】map与set的基本使用
  • 代码随想录算法训练营day56
  • 通话降噪算法在手机和IOT设备上的应用和挑战
  • Pet Detection System (PDS)
  • 【OpenCV常用函数:颜色空间转换、阈值化】cv2.cvtColor()+cv2.threshold()
  • 一键登录和短信验证登录,到底有什么区别?
  • 史上最精简Android RecyclerView实现拖拽排序改变位置代码
  • centos 7 系统上重启 mysql 时报错 Failed to restart mysqld.service: Unit not found.
  • 时间复杂度空间复杂度相关练习题
  • Linux | Ubuntu18.04安装RTX 4060显卡驱动完整教程
  • Mermaid语法使用
  • [OnWork.Tools]系列 05-系统工具