Hadoop+hive+flask+echarts大数据可视化之系统数据收集

这篇具有很好参考价值的文章主要介绍了Hadoop+hive+flask+echarts大数据可视化之系统数据收集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hadoop+hive+flask+echarts大数据可视化项目(一)

--------------系统数据收集----------------

       谈到大数据的项目,一般以数据可视化为主体,收集大数据中的有用信息,存储到分布式存储系统hadoop中,由hive导入hadoop中存储的数据,使用HQL语句对数据进行分析,hive底层会将HQL语句转化成mapreduce程序,flask作为python语言的后台技术,可以连接hive将HQL语句的分析结果返回前台,前台使用ajax技术获取数据后使用echarts组件图形显示分析结果。

    其对应的架构图如下。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

       从图中可知,数据来源可能是网络爬取获得,可能是收集的系统数据,也可能是业务来源的数据,还有可能是前端页面的埋点数据,比如百度图库中搜索出某个主题图片,查看其源码中有“埋点”的字样。如下图所示。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

      获取数据后,可能是大批量的数据,可能达到PB的级别,可以使用Hadoop平台进行存储,Hadoop分布式存储系统的特点是一次写入,可以多次读出。读出数据后可以使用mapreduce分布式计算进行清洗提纯,接下来对清洗提纯后的数据导入到hive数据仓库中,使用HQL语句对hive数据仓库中的数据进行分析,而hive的元数据信息存储在mysql中,所以在整个架构体系中还是需要mysql的角色存在。HQL语句的分析结果数据会返回到flask的后端接口中,flask是Python语言的后台管理程序,可以提供前端需要的界面和接口。前端通过ajax技术获取了后端接口的数据后,就可以调用echarts框架对获取的数据进行展示。

      这里从项目的数据采集说起,先从项目的系统数据收集入手。

一、项目的系统数据来源

项目的系统数据是从linux服务器中CPU/内存/硬盘等参数来整体描述服务器系统的性能。一段时间内的CPU使用情况和增长率也说明了服务器的性能体现,一段时间内的硬盘增长率也可以为服务器的存储性能提出警示,一段时间内的内存使用情况也说明了服务器是否达到了工作的强度负荷。

一般情况下,我们获取系统的相关参数都是通过linux命令实现的,如查看服务器的ip地址可以使用ifconfig来查看,如下图所示。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集 

      由图中可知, ifconfig的命令输出有很多的信息,在这些信息中,对我们有用的可能就是ip地址,其他的信息并不符合本次查询的目的。这些信息存储在hadoop平台中后,使用mapreduce来对这些信息进行分析,根据mapreduce的原理是使用行读取器取出信息中的每一行,然后不断地获取每一行的信息进行分析,如果只获取ip地址的信息,你就会发现很多行的数据都是无用的,但是mapreduce的原理就是行读取器,没有用的信息行也是要进行读取的,遇到ip地址的信息行才会输出。Linux中很多的系统参数都是需要命令去提取的,并且提取的信息也含有大量的无用信息。这就降低了mapreduce的工作效率,能够把查询linux系统命令输出参数中有用的信息进行综合统计也就成为了一种必然。

       如何从ifconfig中输出ip地址的信息。就需要使用linux中的一个利器awk。

二、awk工具的介绍

       awk 是一种处理文本文件的语言,是一个强大的文本分析工具。

       它是基于模式匹配检查输入文本,逐行处理并输出。通常用在shell脚本中,获取指定的数据。单独使用时,可对文本数据做统计。

       一般的使用方法如下:

前置命令 | awk  [选项]  '[条件]{指令}'

      前置命令后面跟上管道,管道一般会前置指令的输入一行一行交由后面的awk来处理,这个从道理上与mapreduce的道理是一致的。传入到awk后,awk可以配合命令去输出相关的参数信息,也就实现了linux系统中有用参数信息的提取。

     如下面的案例。

       echo “hello world” 是在控制台中输出”hello world”语句,也是程序员学习语言的必修课之一。

       现在使用echo “hello world”结合管道,再使用awk配合print命令语句输入第一个参数。命令如下。

echo "hello world"|awk '{print $1}' 

       其实现的功能是打印echo输出的第一个参数。

      具体命令的解释如下图所示。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

     从图中可以看出输入结果是hello,也是”hello world”的第一个参数。

     如果打印第二个参数,可以使用如下命令。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

      按照awk的使用方法提取系统的有用信息。

三、awk提取ip地址的信息

      在ifconfig中信息输出中有ip地址的信息,只留取ip。

     首先利用管道把ifconfig输出到下一个参数。把ifconfig的输出信息使用管道一行一行做过滤,grep作为linux的查询可以做过滤。

     第一步命令如下。

ifconfig | grep "inet"

     命令的具体解释如下。

     如果打印第二个参数,可以使用如下命令。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集 

       现在得到一个只有inet信息的行数据,把当前获取的行数据信息再进行过滤,根据最终结果是只要ip地址,那么ipv6的地址不需要,把inet6地址过滤掉。grep 查询参数中-v参数可以把包含的信息过滤掉。命令中的管道实现前面输出结果的过滤。

       第二步命令如下。

ifconfig | grep "inet" | grep -v "inet6"

      命令的具体解释如下。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集 

        根据输出信息,127.0.0.1是每台电脑的环回口地址,这个地址可以过滤掉,过滤掉跟前面的命令一样,grep -v “127.0.0.1”实现127.0.0.1的过滤,把前面输出的内容用管道连接,连接后做为后面的命令参数。

      第三步的命令如下。

ifconfig | grep "inet" | grep -v "inet6" | grep -v "127.0.0.1"

     命令的具体解释如下。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

     现在结果只有一行数据,想到echo “hello world”|awk ‘{print $2}”,

      这个命令在一行输出中,只取其中的第几个参数。这里是第2个,所以是$。

      第四步的命令如下 。

ifconfig | grep "inet" | grep -v "inet6" | grep -v "127.0.0.1"| awk '{print $2}' 

      命令的具体解释如下。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

 

       从图中输出可以,这样可以得到ip地址的信息。

四、awk提取mac地址

     mac地址在ifconfig中,ifconfig的结果一行一行利用通道传送到下一个命令中。grep接收一行一行信息,过滤包含ether的信息行。

命令如下。

ifconfig | grep "ether" 

     命令的解释如下。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

     因为结果只有一行,通过awk,取的第二个参数,就获得结果。

     命令如下。

ifconfig | grep "ether" | awk '{print $2}'

      命令的解释如下。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

      这样,mac地址就获取成功了。

五、awk获取计算机的名字

      获取计算机的名字比较容易,直接hostname就可以得到结果。

      Hadoop+hive+flask+echarts大数据可视化之系统数据收集

六、awk获取计算机的用户

     计算机的用户在linux系统中可以使用who am i来输出结果。当使用who am i后输出的用户名显示在第一个参数中,命令如下。

who am i | awk '{print $1}'

      命令的解释如下。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

七、awk获取硬盘的使用情况

      在linux系统中可以使用df输出硬盘的使用情况,具体解释如下。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

        在df输出中,可以看到硬盘的百分比参数,通过以空格分隔的参数查询,可以得知百分比是属于第5个参数,现在使用管道来输出第5个参数,命令解释如下。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

       在输出的第5个参数百分比中,100%是光盘,需要把光盘(/dev/sr0)去掉,使用grep的过滤功能,只保留硬盘的相关数据,同时还要过滤掉%Use的数据,只保留硬盘的百分比数据。其命令的解释如下。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

      之后取出所有的第5个参数,这些百分比参数之和就是最终的硬盘使用百分比结果。命令如下图的解释。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

     综上所述,硬盘使用的百分比结果awk使用命令如下。

df | grep -v "/dev/sr0" | grep -v "Use%" | awk '{ a+=$5 } END { print a }'

八、awk取CPU的使用情况

      在linux中,输入top后,就可以实现CPU/内存/进程等相关信息的展示,不过,数据一直在变化,变化的原因cpu一直在活动。数据一直在分页。如果显示单页的信息,可以使用top -n 1来指示取出top动态信息中的一个信息。

top -n 1
只取linux中cpu显示的一页数据,一页数据就不变化。

      对CPU输出的参数中,重点参数解释如下。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集 

     现在的需求是在top -n 1 中把%Cpu(s)过滤出来。结合grep来使用,然后打印空格分隔的参数个数。如下图所示。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

      这样,取CPU输出的第一个参数用户使用率的命令如下。

top -n 1 | grep "%Cpu(s)" |awk '{print $2}'

      如下图命令使用后得出的结果。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

     取CPU输出的第二个参数系统使用率的命令如下。

top -n 1 | grep "%Cpu(s)" |awk '{print $4}'

      如下图命令使用后得出的结果。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

      取CPU输出的第四个参数空闲使用率的命令如下。

top -n 1 | grep "%Cpu(s)" |awk '{print $8}'

       如下图命令使用后得出的结果。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

九、使用awk取内存的使用情况

        Linux系统中使用top指令也可以输出内存的使用情况,只不过在输出的内存信息中存在“SWAP”交换分区的信息。如下图所示。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

        这里可以通过输出得知,总内存标记是total,空闲内存标记是free,通过空格分隔的参数个数得知,总内存的参数是$4,空闲内存是$6。

       这样,取出linux中的总内存数命令如下。

top -n 1|grep "Mem" |grep -v "Swap"|awk '{print $4}'

       使用命令的具体输出如下。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集

取出linux中空闲内存命令如下。

top -n 1|grep "Mem" |grep -v "Swap"|awk '{print $6}'

使用命令的具体输出如下。

Hadoop+hive+flask+echarts大数据可视化之系统数据收集 文章来源地址https://www.toymoban.com/news/detail-412017.html

关注博客,后续会提及大数据可视化数据采集及脚本的合并。

到了这里,关于Hadoop+hive+flask+echarts大数据可视化之系统数据收集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【项目实战】基于Hadoop大数据电商平台用户行为分析与可视化系统Hive、Spark计算机程序开发

    注意:该项目只展示部分功能,如需了解,评论区咨询即可。 在当今数字化时代,电商行业成为全球商业生态系统的关键组成部分,电商平台已经深入各行各业,影响了人们的购物方式和消费习惯。随着互联网技术的不断发展,电商平台产生了大量的用户数据,包括点击、购

    2024年02月04日
    浏览(87)
  • 电影Top250数据分析可视化,应用Python爬虫,Flask框架,Echarts,WordCloud

    目录 一:项目概述 二:模块实现 2.1 Python爬虫的技术实现 2.1.1 爬取网页,获取数据 2.1.2 解析内容 2.1.3 保存数据 2.2 数据可视化 2.2.1 Flask框架 2.2.2 首页和电影页(表格) 2.2.3 使用Echarts呈现电影评分分布图 2.2.4 jieba分词,WordCloud生成“词云” 本项目运用 Python爬取电影To

    2024年02月04日
    浏览(39)
  • 【Python大数据期末/课程设计】动态爬取“纵横中文网“小说排行榜数据并进行可视化处理 (flask框架/MySQL数据库/echarts数据可视化)

    代写C语言、C++、Java、Python、HTML、JavaScript、vue、MySQL相关编程作业, 长期接单,信誉有保证,标价10-20每份,如有需要请加文章最下方QQ。 本文资源:https://download.csdn.net/download/weixin_47040861/89149396 题目描述: 爬取“纵横中文网” 1.利用爬虫技术爬取完整的一千条数据. 2.将爬

    2024年04月25日
    浏览(30)
  • 基于Hadoop和Hive的聊天数据(FineBI)可视化分析

    目录 1. 准备工作 2. 新建数据库连接 3. 在Hive数据库中创建存放数据的表 4. ETL数据清洗 5. 指标 ​6. 进入Fine BI数据中心 参考内容https://www.bilibili.com/read/cv15490959/ 数据文件、jar包、插件 https://pan.baidu.com/s/1Mpquo0EgkyZtLHrCPIK2Qg?pwd=7w0k 在FineBI6.0webappswebrootWEB-INFlib下放置jar包 启动

    2024年04月17日
    浏览(63)
  • 数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析

    案例数据集是在线零售业务的交易数据,采用Python为编程语言,采用Hadoop存储数据,采用Spark对数据进行处理分析,并使用Echarts做数据可视化。由于案例公司商业模式类似新零售,或者说有向此方向发展利好的趋势,所以本次基于利于公司经营与发展的方向进行数据分析。

    2024年02月11日
    浏览(31)
  • 基于ECharts+flask的爬虫可视化

    项目效果。  本案例基于python的flask框架,通过爬虫程序将数据存储在csv文件中,在项目运行时会通过render_template映射出对应的页面,并且触发一个函数,该函数会读取csv文件的数据将之交给echarts渲染 ,echarts将之渲染到页面中。 demo.html  movie.py demo.html data.csv data.csv由movie.

    2024年02月11日
    浏览(31)
  • 编写web程序,基于echarts将Mysql表数据进行可视化展示及Hadoop学习心得

    文章目录 目录 前言 一、从MySQL数据库中获取需要展示的数据。 1.引入库 2.连接到MySQL数据库 二、创建图表 三、运行后结果展示 四、学习心得  总结         将Mysql表数据可视化展示在Web程序中可以借助ECharts这样的图表库来实现。通过Web程序连接MySQL数据库,获取数据后,

    2024年02月03日
    浏览(27)
  • Flask+Echarts搭建全国疫情可视化大屏

    本项目是基于flask+echarts搭建的全国疫情追踪的可视化大屏,主要涉及到的技术有csv处理,flask框架,echarts图表。 最终效果如下: 我们先搭建一个基础的flask应用 接着,需要编写index.html页面和css样式代码(这里我就直接放最终的代码) 我们需要编写获取数据的接口,然后通过

    2024年02月16日
    浏览(30)
  • Flask配合Echarts写一个动态可视化大屏

    ch 后端:flask 可视化:echarts 前端:HTML+JavaScript+css 大屏拆分 案例项目中大屏可按版块进行拆解,会发现这里大屏主要由标题、折线图、柱状图、地图、滚动图和词云等组成,整体可切分为8个版块,如下: 下方为简单演示: HTML 我们整体布局前,先通过简单的案例了解前端布

    2024年02月07日
    浏览(35)
  • 基于Hadoop的豆瓣电影的数据抓取、数据清洗、大数据分析(hdfs、flume、hive、mysql等)、大屏可视化

    项目介绍 有需要整个项目的可以私信博主,提供部署和讲解,对相关案例进行分析和深入剖析 环境点击顶部下载 = 本研究旨在利用Python的网络爬虫技术对豆瓣电影网站进行数据抓取,并通过合理的数据分析和清洗,将非结构化的数据转化为结构化的数据,以便于后续的大数

    2024年02月11日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包