基于hadoop的健康膳食分析可视化系统的实现

随着人们健康意识的提高,对于膳食和营养的关注度也日益增加。基于大数据的健康膳食分析系统应运而生,旨在为用户提供个性化的膳食分析和建议。该系统通过收集用户的饮食数据、医疗记录和生活习惯等信息,结合大数据分析和人工智能技术,实现全面的健康膳食评估与规划。

该系统的核心功能包括以下几个方面:首先,通过用户输入的饮食信息和健康指标,系统能够快速分析用户的膳食结构和营养摄入情况,并给出相应的评估结果。其次,系统能够根据用户的个体差异和需求,定制个性化的膳食计划和建议,包括合理的食物搭配、摄入量控制和营养补充等。此外,系统还可以根据用户的健康状况和食物偏好,推荐适合其的健康菜谱和食谱,方便用户参考和选择。

基于大数据的健康膳食分析系统的研究意义在于,它能够帮助用户更好地了解自己的膳食情况,提供科学的膳食建议,引导用户养成良好的饮食习惯,预防和管理慢性疾病。同时,该系统还有助于医疗机构和研究机构收集和分析大量的膳食数据,为公共卫生政策制定和营养健康研究提供参考依据。综上所述,基于大数据的健康膳食分析系统在促进个人健康、提升医疗质量和推动公共卫生发展等方面具有重要的应用前景和社会意义。

本文首先介绍了设计的背景与研究目的,其次介绍系统相关技术,重点叙述了系统功能分析以及详细设计,最后总结了系统的开发心得。

本论文的主要研究工作及取得的成果如下:

1.使用基于Python语言的大数据框架Hadoop生态圈,使用MapReduce框架计算原始信息。原始数据进行数据分析后存储到HDFS,最后将结果保存至数据库MySQL中存储分析并通过前端界面展示

2、使用Flask等软件开发技术开发系统后台,使用Pycharm开发工具构建程序工程设计并成功开发出了一套基于Hadoop的健康膳食分析可视化系统

关键词:Hadoop框架;膳食数据分析;MapReduce;Flask


Abstract

With the improvement of people's health awareness, the attention to diet and nutrition is also increasing. The healthy diet analysis system based on big data came into being, aiming to provide users with personalized diet analysis and recommendations. By collecting information such as users' diet data, medical records and living habits, the system combines big data analysis and artificial intelligence technology to achieve comprehensive healthy diet evaluation and planning.

The core functions of the system include the following aspects: First, through the user input diet information and health indicators, the system can quickly analyze the user's dietary structure and nutrient intake, and give the corresponding evaluation results. Secondly, the system can customize personalized meal plans and recommendations according to the individual differences and needs of users, including reasonable food combinations, intake control and nutritional supplements. In addition, the system can also recommend healthy recipes and recipes suitable for users according to their health status and food preferences, which is convenient for users to reference and choose.

The research significance of the healthy diet analysis system based on big data is that it can help users better understand their dietary situation, provide scientific dietary recommendations, guide users to develop good eating habits, prevent and manage chronic diseases. At the same time, the system will also help medical institutions and research institutions to collect and analyze large amounts of dietary data for public health policy formulation and nutrition and health research. In summary, the healthy diet analysis system based on big data has important application prospects and social significance in promoting personal health, improving medical quality and promoting the development of public health.

This paper first introduces the design background and research purpose, then introduces the system related technology, focuses on the system function analysis and detailed design, and finally summarizes the development experience of the system.

The main research work and achievements of this paper are as follows:

1. Use Hadoop ecosystem, a big data framework based on Python language, and use MapReduce framework to calculate raw information. The original data is analyzed and stored in the HDFS. The result is saved to the MySQL database for storage and analysis and displayed on the front-end interface.

2. Developed the system background with Flask and other software development technologies, built program engineering with Pycharm development tool, designed and successfully developed a set of Hadoop-based healthy diet analysis visualization system.

Key words: Hadoop framework; Dietary data analysis; MapReduce; Flask

目 录

1 绪 论

1.1 课题背景

1.2 课题研究的意义

1.3 系统实现的功能

1.4 课题研究现状

2系统相关技术

2.1 Python语言介绍

2.2  Mysql数据库介绍

2.3 大数据生态圈技术

2.4  B/S架构

2.5本章小结

3 系统设计

3.1 系统设计流程

3.2  系统平台架构

3.3 膳食数据分析设计

3.4 本章小结

4系统详细设计

4.1  大数据环境搭建

4.1.1  部署HDFS

4.1.2  部署Hadoop集群

4.2  数据可视化

4.2.1  登录

4.2.2  健康膳食数据管理

4.2.3  健康膳食类型分析

4.3  健康膳食营养分析

4.3.1  健康膳食营养分析

4.3.2  健康膳食Top20分析

4.4  本章小结

5 总结与心得体会

5.1 系统开发遇到的问题

5.2 总结与展望

5.3 心得体会

参考文献

致谢

1 绪 论

1.1 课题背景

随着新时代下互联网技术的快速发展,膳食健康分析模式也发生了翻天覆地的变化,健康膳食分析系统的研究背景主要源于以下几个方面:

健康意识的提升:随着人们健康意识的提高,越来越多的人开始关注自己的饮食习惯和营养摄入。了解和控制自己的膳食结构和营养摄取情况对于维持身体健康和预防疾病至关重要。因此,开发一种能够帮助人们进行个性化膳食分析和规划的系统具有迫切的需求。

大数据技术的发展:随着大数据技术的快速发展和云计算的普及,人们能够更加方便地收集、存储和处理大量的饮食数据。这些数据包括各种食物的营养成分、用户的饮食记录、医疗健康数据等。基于大数据技术,可以从海量数据中挖掘出有用的信息和规律,为用户提供准确的膳食分析和建议。

个性化健康管理的需求:每个人的身体状况、生活习惯和营养需求都不相同,因此,传统的通用膳食建议往往无法满足个体化的需求。针对个人的基因特征、健康状况和目标需求,开发一种个性化的健康膳食分析系统,可以更好地满足用户的需求,提供针对性的膳食规划和建议。

营养健康管理的重要性:膳食是维持人体正常生理功能和预防慢性疾病的重要因素。不良的饮食习惯和营养不均衡会导致肥胖、心血管疾病、糖尿病等健康问题的发生。因此,开发一种能够帮助用户了解和改善自己饮食习惯的系统,对于促进健康、预防疾病具有重要意义。

综上所述,健康膳食分析系统的研究背景主要源于健康意识的提升、大数据技术的发展、个性化健康管理的需求以及营养健康管理的重要性。通过开发这样的系统,可以帮助用户实现个性化的膳食分析和规划,提高健康水平,预防疾病的发生。

目前膳食分析网站数据一般有以下特点: 

一, 数据量增长迅猛:互联网的迅速发展,数据量正在以指数级增长,互联网公司每年都会产生大量的数据。以前没有并行存储计算的时候,这些数据要么丢弃掉,要么进行归档封存。

二,数据的多样性:我们传统意义上的数据可能会存储在数据库中的关系型数据,如用户信息,订单信息等。但目前数据格式上多种多样,特别是应用日志,很多都是以Json格式来进行存储。Json 格式数据中也会有List等等结构。所以数据结构的复杂程度也越来越高。

三,数据来源丰富:以前我们分析的数据基本都是存储在关系型数据库中。如Oracle或者Mysql.现在关系型数据库中的数据已经成为数据来源的一种方式。 更多的数据来源于应用日志,打点数据。网站访问行为等数据。

基于以上三点,传统的关系型数据库已经没有办法来进行处理了。所以就迫切需要一种能够存储海量数据的分布式计算系统。Hadoop便成为首选的技术解决方案。

1.2 课题研究的意义

基于大数据的健康膳食分析系统的研究意义在于,它能够帮助用户更好地了解自己的膳食情况,提供科学的膳食建议,引导用户养成良好的饮食习惯,预防和管理慢性疾病。同时,该系统还有助于医疗机构和研究机构收集和分析大量的膳食数据,为公共卫生政策制定和营养健康研究提供参考依据。综上所述,基于大数据的健康膳食分析系统在促进个人健康、提升医疗质量和推动公共卫生发展等方面具有重要的应用前景和社会意义。因此构建一套膳食数据分析系统是非常必要的。

1.3 系统实现的功能

本次设计任务是要设计一个基于Hadoop的健康膳食分析可视化系统的研究与实现,通过这个系统能够为用户提供更好的平台。系统的主要功能包括:用户个人资料、定位膳食数据分析功能、统计模块用户可以根据系统给定的账号进行登录,登录后可以进入基于Hadoop的健康膳食分析可视化系统,对基于Hadoop的膳食数据系统所有模块进行管理。

1.4 课题研究现状

健康膳食分析系统是一个较新的研究领域,目前国内外均存在一定的研究和应用。以下是国内外研究现状的一些主要方面:

国内研究现状: 国内研究机构和高校在健康膳食分析系统方面进行了一系列的研究。他们通过收集大量的饮食数据、营养成分数据库以及个人健康信息,结合数据挖掘和机器学习等技术,开发了不同类型的健康膳食分析系统。这些系统能够对用户的饮食结构和营养摄入情况进行评估,并根据用户的个体特征和需求提供个性化的膳食建议。

国外研究现状: 国外研究机构和大学也在健康膳食分析系统方面进行了广泛的研究。例如,美国国立卫生研究院(NIH)资助的“我的健康之路”项目开发了一个名为“SuperTracker”的在线膳食分析工具,可以帮助用户分析自己的膳食结构和营养摄入情况,并提供个性化的膳食建议。

此外,还有一些商业公司也开发了健康膳食分析系统,例如Fitbit、MyFitnessPal等。这些系统通常结合了智能手环、智能手机等设备,通过收集用户的运动量、睡眠质量和饮食记录等信息,进行综合分析和建议。

总体而言,国内外在健康膳食分析系统方面的研究都取得了一定的进展。不同的系统在数据来源、分析方法和功能设计上存在差异,但都致力于为用户提供个性化的膳食分析和建议,促进健康管理和预防疾病。随着人工智能和大数据技术的不断发展,健康膳食分析系统有望在未来得到更广泛的应用和推广。

2系统相关技术

本文Python为开发语言,利用了当前先进的后台框架,以Pycharm为系统开发工具,MySQL为后台数据库,开发的一个基于Hadoop的健康膳食分析可视化系统的研究与实现。

2.1 Python语言介绍

基于Hadoop的健康膳食分析可视化系统的研究与实现在前台管理网页效果中主要采用的是Python语言开发,现在越来越多的软件公司都使用Python语言来开发web端的应用。因为就目前的市场上网页制作模块来说,Python语言包含的内容是相对而言比较丰富全面的,而且Python语言已经成为现在市场上最为常见的开发技术。我们都知道Python语言是一种开发技术,它的开发是跨平台的,Python语言可以在Windows操作系统上运行也可以在Linux系统上运行。

Python是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Python语言具有功能强大和简单易用两个特征。Python语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程   。

Python具有简单性、面向对象、分布式健壮性安全性、平台独立与可移植性、多线程、动态性等特点。Python可以编写桌面应用程序、Web应用程序、分布式系统嵌入式系统应用程序等。

当编辑并运行一个Python程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本写字板UltraEdit等)或集成开发环境(EclipseMyEclipse等)在Python源文件中定义不同的类,通过调用类(这些类实现了Python API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Python虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Python API调用。

2.2  Mysql数据库介绍 

MySQL 是一款安全、跨平台、高效的,并与 PHP、Python 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的。
    MySQL 的象征符号是一只名为 Sakila 的海豚,代表着 MySQL 数据库的速度、能力、精确和优秀本质。

图2-1 MySQL图标

本系统采用的数据库是MySQL数据库,其目的是用来存储利用爬虫爬取到的大量膳食数据数据集和数据处理之后的分析结果。

2.3 大数据生态圈技术

随着以互联网为代表的信息技术深度发展,传统机器的软硬件不足以支持如此庞大的数据量的存储,管理及分析能力,因而专门应对大数据的分布式处理技术应运而生.如今业界大数据处理的主流平台非Hadoop莫属.Hadoop自推出以来因其在大数据领域的广泛实用性,很快在工商业界得到普及应用,同时得到了学术界的广泛研究.在短短的几年中,Hadoop很快成为到目前为止最为成功,最广泛使用的大数据处理主流技术和系统平台,并且成为一种大数据处理事实上的标准,得到了各行业大量的进一步探索与研究应用,尤其是在互联网行业得到了广泛的应用.

(1) Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

(2)主要解决,海量数据的存储和海量数据的分析计算问题。

(3广义上来说,HADOOP通常是指一个更广泛的概念——HADOOP生态圈。

Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架;Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上[5]。

Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序。

图2-2 大数据集群机器

用户编写的程序分成三个部分:Mapper,Reducer,Driver(提交运行mr程序的客户端)。

(1)Mapper阶段

(1)用户自定义的Mapper要继承自己的父类

(2)Mapper的输入数据是KV对的形式(KV的类型可自定义)

(3)Mapper中的业务逻辑写在map()方法中

(4)Mapper的输出数据是KV对的形式(KV的类型可自定义)

(5)map()方法(maptask进程)对每一个<K,V>调用一次

(2)Reducer阶段

(1)用户自定义的Reducer要继承自己的父类

(2)Reducer的输入数据类型对应Mapper的输出数据类型,也是KV

(3)Reducer的业务逻辑写在reduce()方法中

(4)Reducetask进程对每一组相同k的<k,v>组调用一次reduce()方法

(3)Driver阶段

整个程序需要一个Drvier来进行提交,提交的是一个描述了各种必要信息的job对象。

大数据系统中主要是对膳食数据集通过使用代码进行数据清洗,然后再导入Hadoop HDFS中分布存储。在通过MapReduce程序并行计算进行数据抽取,多维分析,查询统计等操作来完成数据分析部分。

2.4  B/S架构 

B/S的系统是通过能上网的电脑就可以使用,它最大的优点是不需要安装专门的软件,首先浏览器向服务器发出请求,然后服务器处理请求把信息再返回给浏览器。不需要再次对数据进行存取与计算数据,只要负责显示数据来降低要求,如果说客户端像个“瘦子”,而服务器会越来越“胖”。B/S体系结构与C/S体系结构相比,最大的不同是:B/S体系的应用软件使用网络浏览器作为与用户交互的平台,而C/S则需要开发专用的应用程序。

当前MIS系统结构目前存在两种较为流行的结构:C/S和B/S两种。

    C/S结构的系统:C/S结构就是客户机服务器结构,它可以法派任务到Client端和Server端来进行,充分利用两端硬件环境的优势,来降低系统的通讯的花费。客户端主要作用是处理人机交互,执行客户端应用程序,收集数据以及向服务器发送任务请求。服务器基本作用是执行后台程序,它主要对客户机的请求申请进行反馈,除此之外,它的作用还包括:数据服务预约储系统的共享管理、通讯管理、文件管理等等。

    B/S结构的系统:这种网络结构简化了客户端,并把系统功能实现的中心集中到服务器上,在这种模式中,只需要一个浏览器就可以了。这种结构将很多的工作交于WEB服务器,只通过浏览器请求WEB服务,随后根据请求返回信息。

通常在网站网内部使用,采用C/S。而使用不仅限于内网的情况下使用B/S。考虑到本管理系统的一系列需求,所以,该系统开发使用B/S结构开发。

2.5本章小结

本章主要分析了系统开发过程中使用到的技术点和框架,通过研究这些技术的原理后,在本设计中加以应用,包括用户健康平台信息采集的爬虫技术,数据持久化存储技术,以及基于Flask框架的膳食数据分析后台技术,同时本文还使用了较为流行的Echarts前端可视化技术。通过预研上述技术点并加以应用从而开发出基于Hadoop的膳食健康分析系统

3 系统设计

3.1 系统设计流程

(1)明确目的

在设计招膳食电商大数据分析平台初期需要了解如何获取膳食数据原始数据是非常基础也是关键的一步。要了解大数据分析平台期望达到什么样的运营效果,从而在标签体系构建时对数据深度、广度及时效性方面作出规划,确保底层设计科学合理。

(2)数据采集

只有建立在客观真实的数据基础上,大数据计算分析的结果才有效。在采集数据时,需要考虑多种维度,比如不同膳食数据平台数据,还可以通过行业调研、用户访谈、用户信息填写及问卷、平台前台后台数据收集等方式获得。

(3)数据清洗

就对于各大膳食数据网站或者APP集到的数据而言,可能存在非目标数据、无效数据及虚假数据,因而需要过滤原始数据,去除一些无用的信息以及脏数据,便于后续的处理。

(4)特征工程

特征工程能够将原始数据转化为特征,是一些转化与结构化的工作。在这个步骤中,需要剔除数据中的异常值并将数据标准化。

(5)数据计算

 在这一步我们将得到的膳食数据网站数据存储到大数据分析平台,通过开发MapReduce程序对原始数据进行计算,将不同维度的结果存储到Mysql中。

(6)数据展示

 分析结果可以通过大数据后台展示到前端界面,对于普通用户而言,只需要登录到该后台系统,就可以获取到膳食数据网站分析后的计算结果。

3.2  系统平台架构

图3-1 基于Hadoop的膳食数据分析设计与实现平台架构

在任何信息系统当中有价值的数据都是必不可少的重要部分,如何通过手上的资源获取得到有价值的数据便是开发系统。首先需要考虑的问题根据系统的功能设计数据获取和处理的流程以及其实现方法都已经基本上确定获取和处理流程。

由于大数据开发需要搭建集群环境,而集群环境一般都要求位于同一局域网内的多台机器,由于多台机器从购买和维护的成本的角度上而言都是比较昂贵的,这对于普通开发者而言是一笔不小的费用,因此本文拟使用Vmware虚拟机搭建大数据集群环境。
      Vmware是一款功能强大的桌面虚拟计算机软件,它提供用户可在单一的桌面同时运行不同的操作系统,同时提供用户开发、测试、部署新的应用程序的最佳解决方案。Vmware具有不同系统内核的多个版本的工具包镜像,如Ubuntu,CentOS等,本文选择CentOS版本的镜像,CentOS是免费的、开源的、可以重新分发的开源操作系统,是Linux发行版之一。而HADOOP集群即HDFS集群和YARN集群又依赖于Linux内核,因此选择CentOS版本的镜像最为合适,这样即可在独立的服务器上实现大数据集群的部署。

3.3 膳食数据分析设计

图3-2 膳食数据界面

原始的电商信息数据一般信息较为冗杂,且很难看出规律,因此我们需要将数据存储在HDFS上,数据在多台机器上保存了n份,保证了原始数据的高可用。然后通过MapReduce框架开发程序,将海量的原始数据计算过程分成一个个的job提交到yarn上管理执行。

Mapreduce确保每个reducer的输入都是按键排序的。系统执行排序的过程(即将map输出作为输入传给reducer)称为shuffle。下面是Mapreduce计算最重要的shuffle原理,可以看出具有同key的Mapper端输出将会汇向同一Reducer端,从而达到分布式计算的效果。

图3-3 Mapreduce的shuffle原理

本文中如需分析目前膳食电商上的各品类的用户使用信息情况,首先需要定义一个mapper类,这也就是mapper任务中的核心逻辑,需要在代码中对每条就业数据的所属行业字段过滤,下面表3-5为mapper任务的主要逻辑代码。

3-5 mapper任务的主要逻辑

public class DataMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
    protected void map(LongWritable key, Text value, Context context)
            throws IOException, InterruptedException {
        // 1 将maptask传给我们的文本内容先转换成String
        String line = value.toString();
        // 2 根据,将这一行切分成多个字段
        String[] fields = line.split(",");
        // 3 取其中的字段
        String industry = fields[8];
        // 4 将所属行业输出为<data,1>,以便于后续的数据分发
        context.write(new Text(industry), new IntWritable(1));
    }
}

再编写完Mapper任务代码后,需要再定义一个Reducer类用于处理Reducer过程的业务逻辑,用于不同榜单音乐播放位的统计数量,下面表3-6为Reducer任务的主要逻辑代码。

3-6  reducer任务的主要逻辑

public class DataReducer extends Reducer<Text, IntWritable, Text, IntWritable> {

protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {

int count = 0;

// 1 汇总各个个数

for(IntWritable value:values){

count +=value.get();

}

// 2输出的总次数

context.write(key, new IntWritable(count));

}}

再编写完Mapper任务和reducer任务的业务代码后还需要定义一个主类用于管理上述的作业,MapReduce框架会将上述的Mapper和Reducer任务拆分为一个个的job,并提交到yarn上管理执行下表3-7膳食商城信息所属品类MapReduce作业管理类的主要逻辑

3-7 膳食数据MapReduce作业管理类

public class DataDriver {

public static void main(String[] args) throws Exception {

// 1 获取配置信息,或者job对象实例

Configuration configuration = new Configuration();

Job job = Job.getInstance(configuration);

// 2 指定本业务job要使用的mapper/Reducer业务类

job.setMapperClass(MusicMapper.class);

job.setReducerClass(MusicReducer.class);

// 3 指定mapper输出数据的kv类型

job.setMapOutputKeyClass(Text.class);

job.setMapOutputValueClass(IntWritable.class);

// 4 指定最终输出的数据的kv类型

job.setOutputKeyClass(Text.class);

job.setOutputValueClass(IntWritable.class);

// 5 指定job的输入原始文件所在目录

FileInputFormat.setInputPaths(job, new Path(args[0]));

FileOutputFormat.setOutputPath(job, new Path(args[1]));

// 7 将job中配置的相关参数,以及job所用的Python类所在的jar包, 提交给yarn去运行

boolean result = job.waitForCompletion(true);

System.exit(result?0:1);

}

}

任务主类编写成功后,将其打成jar包,并提交到hadoop环境上,通过hadoop fs命令执行该mapreduce作业。并可通过Hadoop的管理web页面查看作业的执行的具体情况和时长等信息,下图3-5是统计音乐播放信息所属行业的任务运行在Hadoop管理页面的执行情况。

图3-4 Mapreduce的作业运行详情

3.4 本章小结

本章主要分析了基于Hadoop的健康膳食分析可视化系统开发过程中使用到的技术和具体的实现步骤,这其中主要介绍了Scrapy爬虫框架的搭建环境和具体爬虫流程,包括程序中的一些核心配置等,在获取到爬虫数据后,通过 MapReduce框架对爬虫数据进行分析和计算,并详细介绍了MapReduce程序的核心编程步骤。本章我们已完成数据的采集和分析工作,为后文的数据分析可视化系统奠定了数据基础。

4系统详细设计

4.1  大数据环境搭建

4.1.1  部署HDFS

(1)在master服务器上确定存在hadoop安装目录

[root@master ~]# ls  /usr/cstor/hadoop

(2)设置JDK安装目录

编辑文件“/usr/cstor/hadoop/etc/hadoop/hadoop-env.sh”,找到如下一行:

export JAVA_HOME=${JAVA_HOME}

将这行内容修改为:

export JAVA_HOME=/usr/local/jdk1.7.0_79/

(3) 指定HDFS主节点

编辑文件“/usr/cstor/hadoop/etc/hadoop/core-site.xml”,将如下内容嵌入此文件里最后两行的<configuration></configuration>标签之间:

<property>

  <name>hadoop.tmp.dir</name>

  <value>/usr/cstor/hadoop/cloud</value>

</property>

<property>

  <name>fs.defaultFS</name>

  <value>hdfs://master:8020</value>

</property>

(4) 在master服务器上格式化主节点:

[root@master ~]# hdfs  namenode  -format

统一启动HDFS:

[root@master ~]#cd /usr/cstor/hadoop

[root@master hadoop]# sbin/start-dfs.sh

(5) 通过查看进程的方式验证HDFS启动成功

[root@master sbin]#  jps #jps查看java进程

若启动成功,会看到类似的如下信息:

6208 NameNode

6862 Jps

6462 SecondaryNameNode

4.1.2  部署Hadoop集群

(1) 在master上操作:确定存在Hadoop。

[root@master ~]# ls /usr/cstor

Hadoop/

[root@master ~]#

在master机上操作:进入/usr/cstor目录中。

[root@master ~]# cd /usr/cstor

[root@master cstor]#

进入配置文件目录/usr/cstor/Hadoop/conf, 先拷贝并修改slave.templae为slave。

[root@master ~]# cd /usr/cstor/Hadoop/conf

[root@master cstor]# cp  slaves.template slaves

(2) 在Hadoop-conf.sh中加入JAVA_HOME。

[root@master cstor]# vim /usr/cstor/Hadoop/sbin/Hadoop-config.sh

加入以下内容

export JAVA_HOME=/usr/local/jdk1.7.0_79

(3) 启动Hadoop集群。

[root@master local]# /usr/cstor/Hadoop/sbin/start-all.sh

图5-2  Hadoop启动成功效果图

4.2  数据可视化

4.2.1  登录

用户登录时需要在登录界面输入用户名、密码进行身份认证,要求必须是表单认证、校验。其配置文件中配置了相应的Realm 类,当用户登录系统进行身份认证和权限控制时,Shiro会在该类中从数据库获取到用户信息及其具有的权限信息,并 且比较用户输入的账号是否存在或者输入的密码与数据源中的密码是否匹配。在实际实现中, 程序中自定义了MyRealm 类继承Realm 类,并重写了doGetAuthenticationInfo( )认证方法和doGetAuthorizationInfo( )授权方法。具体流程如时序图如5-3所示。

图5-3  登录界面

4.2.2  健康膳食数据管理

如果用户要查看健康膳食的信息,就需要进入到健康膳食的管理页面中,添加健康膳食的相关信息,并且要注意输入正确的信息,输入的健康膳食记录与数据库的记录不能冲突。添加健康膳食会有健康膳食的详细信息,当然用户也可以对健康膳食信息进行删除。效果如图5-4所示。

图5-4  健康膳食管理界面

4.2.3  健康膳食类型分析

用户输入用户名和密码可以登录到系统中,在类型分析界面中能够膳食类型的信息,类型分析界面如图5-5所示。

图5-5 类型分析管理

4.3  健康膳食营养分析

4.3.1  健康膳食营养分析

系统通过对不同类型的健康膳食数量和营养进行统计,计算,在前端界面渲染结果,最终健康膳食大数据展示看板如图5-6所示,图中内容展示的是健康膳食数量的分布情况和健康膳食营养的情况。

图5-6  健康膳食大数据展示看板

4.3.2  健康膳食Top20分析

系统通过对不同类型和维度数量进行统计,计算,在前端界面渲染结果,最终健康膳食大数据展示看板如图5-7所示,图中内容展示的是健康膳食数量的分布情况和健康膳食营养的情况。

图5-7 健康膳食Top20展示看板

4.4  本章小结

本章主要分析了基于大数据的健康膳食信息可视化分析系统开发过程中使用到的技术和具体的实现步骤,这其中主要介绍了基于Hadoop框架的健康膳食信息可视化大数据分析系统的搭建环境和开发步骤,包括程序中的一些数据库配置等。前端页面采用的是Echarts和html实现。

5 总结心得体会

5.1 系统开发遇到的问题 

在网络爬虫开发的过程中,由于企业网站会设置反爬虫操作,膳食网站的前端页面代码会更改,包括页面的整体结构和局部的标签都进行了细微的改变,甚至有一小部分业务逻辑也进行了改变,进而导致之前前期已完成的开发爬虫代码无法长期使用,需要定期维护和修改。

5.2 总结与展望 
    为保证有足够的技术能力去开发本系统,首先本人对开发过程中所用到的工具和技术进行了认真地学习和研究,详细地钻研了基于Hadoop的健康膳食分析可视化系统的研究以及 Flask等软件开发技术,同时还研究了大数据Hadoop技术等。
    从基于Hadoop的膳食数据景点推荐的系统需求研究分析开始 ,到整体框架的设计以及各个详细功能的设计具体实现,最后到Hadoop的膳食数据景点推荐基础架构和详细功能已经大致开发完毕,并将其部署在本地服务器当中运行,用户可以登录使用该系统进行膳食健康信息的筛选,同时查询大数据的分析结果。本系统的开发与设计能够一定程度上解决用户面对错综复杂的膳食健康信息难以辨别真伪等问题,让用户可以便携的查询结果,但由于本人的时间和精力的原因,本系统还有部分功能需要完善,如爬取更多膳食数据网站的数据,更多维度去分析数据结果等,本人将会在后续完善这些工作。

5.3 心得体会

整个课程设计终于完成了,完成的好辛苦,好艰难,但还是顺利的完成了。我们付出了很多心血和汗水,但我认为我们得到的更多。如果没有同学们的互相帮助,这次课程设计就不会这么顺利,这种同舟共济的团队精神深深震撼了我,《礼记学记》上也有讲过:“独学而无友,则孤漏而寡闻”。同时有些同学积极的态度让我感到一丝惭愧,他们所体现出的坚持不懈的品质更令我折服。当然这次程序设计也让我看到了自己基础的薄弱。古人有诗云:“路漫漫其修远兮,吾将上下而求索”。从今天起我将不断继续求索,学习之路也好,人生之路也罢,总之我受益匪浅。

参考文献

 [1]王娟琳,陶宇炜,高东伟等.基于Hadoop高校网络舆情监管平台研究[J].电脑知识与技术,2023,19(18):76-78.

[2]胡舒淋,蔡春花.基于大数据的新能源汽车健康状态评价技术[J].办公自动化,2023,28(03):15-19.

[3]蔡全福.大数据技术在医疗健康管理的应用与设计[J].安徽电子信息职业技术学院学报,2022,21(06):1-6.

[4]周胜尧.基于大数据的医保异常分析与研判方法研究[D].北京交通大学,2022.

[5]邢洪波.基于Hadoop的医疗数据存储的研究[D].沈阳工业大学,2022.

[6]焦怡迪.天津市学生体质健康大数据平台的设计与实现[D].天津体育学院,2021.

 [7]何建龙,马凤才,焦景虎.互联网使用、社会资本与农村居民膳食质量改善——基于黑龙江省微观调查数据分析[J/OL].农业现代化研究,1-11[2023-12-28].

[8]陈秉彦,郭晓菲,林晓姿等.纳微化笋膳食纤维改善酸奶货架期乳清析出的作用[J/OL].食品科学,1-13[2023-12-28].

致谢

在完成该论文的时刻,我脑海里立刻想到的就是我的导师。我的导师学识渊博,教学严谨。从我论文选题开始就一直孜孜不倦的帮助我。并在论文撰写的过程中一直给予我指导性建议。并且在我遇到困难,毫无头绪的时候,他帮我理清思路,指导我克服困难,最终完成了论文的撰写。在此真诚的表示感谢。

感谢同学们的努力配合,积极合作,并且在我撰写论文的过程中给了我很多建议,使我受益匪浅,他们对工作的热情都是我学习的楷模。

还要感谢我室友们,是你们一直对我的鼓励,才能让我能够顺利的完成论文。

最后,向在百忙中抽出时间对木文进行评审并提出宝贵意见的各位专家表示衷心地感谢!

  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值