{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

大数据和Java语言有啥区别?

dinferdinfer 回答0 收藏1
收藏问题

10条回答

lidashuang

lidashuang

回答于2022-06-28 15:22

想要了解大数据和Java语言区别是什么?我们先来简单了解一下他们定义的范畴:

大数据:简而言之,就是海量的数据,数据种类繁多,数据结构多变,数据存储方式不同,需要通过工具去收集这些数据,然后存储在存储介质的集群上。

java:java是一门计算机的编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。


从定义可以大概了解到大数据和java语言区别应该是java语言只是大数据中的一门开发工具语言,具体是怎么样?我们一起来看看大数据架构和java语言在大数据中应用。


大数据架构

一、数据源

首先从最底层的数据源来讲,大数据包含的数据是各方各面的,所有在数据的来源上也是多种多样的。从种类上来讲大体上可以分为以下几类:

  • 日志数据:应用系统的运行日志,用户访问的行为日志等

  • DB数据:企业内部业务系统的数据,例如客户管理系统的客户数据,订单系统的订单数据,物流系统的物流数据等

  • 流式数据:简单的理解就是实时采集的数据,源源不断像流水一样产生的数据,例如淘宝上用户的访问记录

  • 互联网数据:互联网数据有两种,一种是自己去采集的数据,一种是跟外部企业合作的数据,例如可以开发爬虫程序去爬取网站上公开的信息,和淘宝京东合作利用客户购买行为数据等

  • 其他数据:还有一些其他方面的数据,例如硬件设备产生的数据,特别是现在IOT物联网的火热,就是将所有硬件设备的数据收集起来进行分析


二、数据接入

数据源的多种多样,所以在数据接入技术和工具上也是多种多样的,常用技术和工具有以下几种:

  • Sqoop:一款用来在Hadoop(Hive)和关系型数据库之间传输数据的工具,可以将一个关系型数据库中的数据导入到HDFS(Hive)中,也可以将HDFS中的数据导入到关系型数据库中,主要是针对于DB数据源的数据接入。

  • Flume:一个分布式的、高可靠的、高可用的将大批量的不同数据源的日志数据收集、聚合、移动到数据中心(HDFS)进行存储的系统,主要针对于日志数据的收集和推送到数据仓库,类似的还有ELK体系的Logstash组件。

  • Kafka:一个分布式流处理平台,用于构造实时流数据管道,它可以在系统或应用之间可靠地获取数据,具有高性能、持久化、多副本备份、横向扩展能力,主要针对于流式数据的接入


三、数据存储


说到数据存储,大数据的发展历史离不开一个叫Hadoop的家族产品,可以很直接的这么说,没有Hadoop就没有大数据,国内很多大数据公司一开始建立的数据存储数仓都是基于Hadoop体系建立的,那么Hadoop到底是什么呢?

Hadoop是一个分布式文件系统(Hadoop Distributed File System),简称HDFS。简单的理解就是,可以利用大量便宜低端硬件配置的服务器,组建成一个跨服务器的存储集群,数据可以保存在多个服务器上,实现大数据量的存储和降低硬件成本。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。


说到数据存储,不得不说一下数据仓库的架构,不同于传统的业务系统使用的关系型数据库,Hadoop一个分布式文件系统,存储方式是按照文件的存储方式,所以就有了数据仓库架构的说法。数据仓库的架构主要有星型和雪花型两种方式:

星型:一种使用关系数据库实现多维分析空间的模式,称为星型模式。星型模式的基本形式必须实现多维空间(常常被称为方块),以使用关系数据库的基本功能。

雪花型:当星型模式的维度需要进行规范化时,星型模式就演进为雪花模式。


大数据的数据仓库架构主要采用雪花型架构,因为数据源的多样化,导致数据结构也是多样化的。不同于关系型数据库,都是基于二维表的形式,而大数据的数据有文本数据,日志数据,设备数据,爬虫数据,业务数据等,所以从接入数据到数仓还需要经过ETL(抽取-extract、转换-transform、加载-load)清洗的过程才能落地到数据仓库。一般数据仓库架构可以分为五层:



  • ODS层:ODS层主要是保存和来源数据一致的格式

  • DIM层:DIM层主要用来存储一些基础的维度表,很少会改动
  • MID层:MID层主要是用来处理根据业务逻辑和指标口径筛选出来的数据
  • DW层:DW层根据主题分类,将数据按照不同的主题建立数据表存储和进行维度化
  • DM层:DM层主要是面向应用层的建模,例如一张分析报表需要展示不同维度和指标的分析,那么根据这些维度和指标从DW层的不同主题分类中的数据关联出来,形成一张数据表给报表使用。


四、数据应用

在数据清洗完落地数据仓库之后,就是怎么去利用这些数据去变现业务价值。不同行业有不同行业的用法,在这里小编以自身经历说一下,小编所在的大数据部门主要是针对金融行业进行数据分析的,那么大概的应用场景有以下几种:

数据分析报表:基于业务需求开发的固定维度和指标的分析报表

移动端数据可视化:基于手机端App展示的数据图形可视化应用


数据分析周报,月报:按周或着按月进行数据汇总分析和预测,常用于邮件推送,公众号推送

大屏可视化驾驶舱:基于大屏端数据图形可视化,数据高度汇总,大而全


机器学习风控模型:基于机器学习算法训练出统一规则的模型,用于贷前,贷中或者贷后风控评审关卡。


java语言




在这里就不在过多的描述java的作用了,我们来聊聊java语言在大数据中可以做什么?


从上文大数据架构来看,java语言主要可以应用于开发数据应用和大数据工具,例如java web开发数据分析报表,移动可视化分析,大屏可视化驾驶舱等,也可以用于开发一些数据处理过程中用于自动化和便捷开发的工具,例如调度系统:用于数据清洗作业的自动化依赖调度;补录系统:用于数据缺失值的可视化补录表,便于数据治理的自动化;发布平台:用于调度作业一键从不同环境之间部署和数据同步审批等。


【我是蜡笔小添,专注IT前沿技术和科技资讯分享,欢迎关注我@蜡笔小添,我们一起学习交流探讨】

评论0 赞同0
  •  加载中...
2i18ns

2i18ns

回答于2022-06-28 15:22

请高兴能回答你的问题!

首先要明确一点,大数据是一个行业方向,而Java是一门开发语言

大数据是什么

大数据是近几年的一个专业名词,以海量数据为核心,产生数据分析结果的技术处理过程和处理方式。大数据本身不在于原始数据的多少,而在于通过大数据分析数据产生之后的应用数据的价值是什么。

大数据最开始用的技术大家都认为是Hadoop,但实际上大数据处理的方式多种多样,处理的技术语言可选性也很多,Java是其中一种,但并不是唯一的一种。 像C、GO、Python都可以处理大数据。

当然基于大数据的数据存储和计算的要求,云计算和大数据也算是共生共存的。


Java是什么?

Java是一种跨平台的开发语言,应用的场景很多, WEB,SERVICE,API,APP等等,算是目前各开发语言当中综合能力最强的一种。目前来看市场中Java开发的就业机会还是最高的。


说到这里,我想你应该能足够解答你的问题了。


如果我的回答对你有帮助,请记得点赞收藏!

评论0 赞同0
  •  加载中...
wangtdgoodluck

wangtdgoodluck

回答于2022-06-28 15:22

JAVA

java是一种面向对象的程序设计语言,主要应用于软件的编写。同时java也继承了C语言大部分语法,但在使用上java要更加的简单。因为java的跨平台性和可移植性,也使得java可以被应用在各个程序的编写和操作系统中。又因为java是一种开源的编程语言。所以java可以进行跨平台的编写、开发程序。

java语言主要涉及的工作方向分为两个方面,一个方面是进入领导层,做项目的负责人。这个就需要有大量的知识储备,技能要求极高。同时还要有一定的管理能力。另一方面就是Java工程师,从初级工程师一点一点的做到高级工程师。java语言涉及的工作方向比较的单一,但是工作岗位需要的人很多。相对来说还是很好找工作。


大数据

大数据主要应用于统计学中,也多被应用在物联网中。用于指导人们的商业行为、战略觉策、未来预期的一种分析处理方法。大数据都是被应用在物联网中。用于对信息的捕获和获取,对于得到的信息进行分析和工作。主要的应用范围应用于各种后台数据的分析。

大数据主要涉及的工作岗位数据分析师、数据架构师、数据工程师,人工智能等方向,其中数据分析师主要是从事行业的数据、搜集、整理、分析、在针对这些数据进行公司的发展的规划作出评估,给出一个大概的发展趋势。数据架构师主要是创建数据管理系统,对数据库管理系统进行整合,集中,保护和维护数据源。数据工程师主要是做数据库的开发,建设,测试和维护架构。主要是应用大数据进行编写和开发。用于较大规模的处理系统。人工智能主要是在人工智能机器人上有很大的用途。机器的开发、和数据的收集、统计上都有大数据的存在。


JAVA大数据

java大数据就如同表面上来看的一样是java与大数据的结合。java作为一种辅助工具来辅助大数据的学习。java属于纯开发软件,大数据是未来发展的一种趋势。java大数据的出现把编程语言与大数据结合在一起,相对于java来讲它比java找工作的方向会更多。java的只能找java方向的,但是java大数据的即可以找有关Java方向的工作又可以找大数据方向的。增加了未来学习大数据的人的就业机会。更加的好找工作。也可以把java大数据理解为java的升级版。

总而言之,java与大数据的最大区别就是一个是编程语言,更注重于开发;而大数据更重视数据的逻辑关系,更接近于实际应用。就业方向来看,java相对于java大数据的就业方向更局限。大数据的可以找Java的工作也可以找大数据的工作。java只能找他自己的工作。选择的方向更加的受限。但其实选择则那个都是挺不错的的一个发展方向。

评论0 赞同0
  •  加载中...
harryhappy

harryhappy

回答于2022-06-28 15:22

我自己就是Java转做大数据的,下面是我的建议:

Java是一门语言,20年前就诞生了,现在Java就业已经十分饱和,竞争力很大,需要你不断深入学习。

大数据是Java的一个应用方向,只需要你掌握Java基础,就可以转行大数据,大数据人才是我们目前数据时代非常稀缺的人才,就算你现在做Java,以后也得转大数据,因为你只有懂了大数据,你才能和数据时代接轨。

薪资方面,同等经验薪资,目前大数据起码是Java的2倍。

评论0 赞同0
  •  加载中...
Travis

Travis

回答于2022-06-28 15:22

最近发现有些同学并不太了解大数据开发工程师这个职位,所以想简单介绍一下什么是大数据开发工程师,当前互联网公司的数据开发到底是什么样子的?和一般的Java或者PHP工程师在工作上有什么区别?

什么不是大数据开发?

仅使用数据库(关系型mysql,sqlserver,oracle等 非关系型 mongo redis等),尽管数据量达到千万级别,亿级别不是大数据开发。

从业务系统的数据库中查询数据然后产出报表不是大数据开发。

端上(页面,h5,手机native)埋点上报数据记录到数据库中不是大数据开发。

什么是大数据开发?

大数据开发需要的技能

到智联上搜了一下大数据开发工程师这个职位,随便点了几个职位,截图如下:

所以说,现在互联网公司所指的大数据开发用到的工具是:hadoop,hive,hbase,spark,kafka等。

大数据开发做的事情

精简到一个词语就是:统计

精简到两类指标就是:PV和UV

精简到一句话就是:统计各种指标的PV和UV

PC互联网时代,各门户网站(比如:新浪,网易,搜狐)关注的是各自网站今天被打开了几次(pv),今天有多少人(uv)访问了网站。更复杂一点的比如:

页面上某个按钮或者某个连接有多少人点击了几次

某个页面上的热力图(点击地方越多,图上颜色越重)

移动互联网时代,手机应用被用户打开的次数和人数也是大家关注的重点,但是除此之外还多出了许多其他非常重要的数据,由于手机屏幕的限制,信息流成为了移动时代的主流。

各大门户网站非常关注自己的新闻客户端中:在信息流中曝光了多少篇文章,其中有多少篇文章被用户点击了。每篇文章阅读了长时间,因为用户点击的文章越多,使用客户端的时间越长,各公司的广告收入才越高,所以各公司想方设法推荐用户喜欢的内容。

如何做这些事情

因为网站的浏览行为,手机客户端中文章的曝光或者点击这些数据非常大,基本以亿为单位起。所以传统的把统计信息放到数据库中的方式已经不能完成这项统计工作。(例如:wordpress博客中,用户每阅读一篇文章,mysql中就会更新这篇文章的阅读次数+1)

所以大数据是通过日志来统计这些指标。

比如:后台服务的日志(apache,tomcat,weblogic,nginx日志)

例如下图,我的个人网站apache服务的access日志。

日志的url字段中以 /年份(红色部分)开头行数就是这个网站文章页被访问的次数,以/category(蓝色部分)开头的行数就是这个网站分类目录被访问的次数。

当然我的这份日志中是统计不了用户数的,因为用户数的统计需要在每条日志上记录当前用户的唯一标识,然后再做个去重,去重后的数量就是用户数,但是这里没有上报用户的唯一标识。

那如何统计人数呢,一般互联网公司会自己在页面或者客户端上生成一个用户的唯一标识,然后主动上报到自己的日志服务器上。

大数据主要难点在于:

日志量太大(一般大点的互联网公司,一个业务线每天的日志都有几个t,再大些的每天几十t,几百t也不奇怪),需要掌握大数据相关技术例如前面提到的hadoop,hive等。

数据的及时性,从离线计算来说,一般每天零点,前一天的日志都接收完毕,开始计算前一天的数据,几点能计算完毕?要看各个公司各自的要求。

数据的准确性。(这是重中之重,大数据开发的工作就是统计,统计的数据如果不准....)如果是实时计算,需要掌握实时相关技术。例如:每5分钟网站的在线人数。

监控监控监控:监控任务是否失败,数据是否产出,产出的数据是否异常。

容灾容灾容灾:如果任务失败如何补救。比如实时任务,由于某种原因13:00到14:00的数据没有,如何把数据补回来。

大数据开发和一般业务开发的对比

在转做大数据开发之前,一直在用Java作业务系统: 例如hr系统(考勤,薪资等),收费系统。

谈谈我个人对业务系统开发和大数据开发的理解:

业务系统:

一句话:对数据库的各种增删改查操作。

重点难点在于:

对复杂业务的理解上(比如计算工资:基本工资,五险一金,全勤奖,高温补贴,报销,奖金,加班费.....等等都需要计算)。

线上服务的稳定,比如facebook,淘宝等网站高并发的压力下维持网站正常运行。

大数据开发

一句话:对字符串的各种算数。

重难点在于:

数据的及时性。例如实时数据中,想知道 12:00~12:10这10分钟的用户数,如果这个数据在晚上20点才计算完成,那就没什么意义了。再比如,大家应该都有体验过:在手机上刷新闻的时候,你点了某一篇文章,再继续刷新闻,后面很快会出来不少和前面点击的那篇文章类似的文章,这就是根据你的点击给你及时推荐你有更大可能点的东西。

数据的准确性。这个重要性不言而喻

数据的稳定性和容灾。

评论0 赞同0
  •  加载中...
leone

leone

回答于2022-06-28 15:22

Java是一门面向对象编程语言,大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是一个概念性的东西。

大数据组件应用分类:数据采集、实时处理、数据存储、离线处理、交互式查询、数据展现。

大数据需要学习的技术体系包含Hadoop、spark、kafka、Storm等,Java只是学习大数据技术需要的一个编程基础。

相关:大数据全系技术概览

https://www.toutiao.com/i6552825781175714308/

评论0 赞同0
  •  加载中...
Y3G

Y3G

回答于2022-06-28 15:22

本人10年开发培训经验,期间经历了Java Web,Android,H5,大数据,PHP等多个不同的方向的开发,也做过软件培训公司的金牌讲师,很有兴趣回答你这个问题。

对于大数据和Java语言的区别,我觉得还是很大的,有多大呢?可能就跟“建筑工人与楼房的区别”一样,当然这个比喻可能也不是很恰当,大约就是这样吧。

为啥这样说呢?

大数据:

大数据确切的说,它并不能算一门具体的技术,而是一种概念,一种大的技术范畴。大数据主要是用来处理,分析,存储海量数据,对这些大量的数据进行加工处理等操作。大数据领域里面涉及到Hadoop,hive,flink,hbase,java等各种具体的技术,看清楚,在这里Java也可以为大数据的实现提供服务哦。所以可以说,Java可以帮助我们实现大数据的开发,Java就像是一个“建筑工人",它可以把各种数据原料整合在一起,构建出大数据这么一个环境。

Java:

Java就是一门面向对象的高级编程语言,可以用Java实现Android,Web,Swing等各中软件的开发,是一门具体的技术。


我从事互联网开发10年,主要的研究方向集中在Java web微服务架构领域,Android移动端研发,HTML5前端方向,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信你一定会有所收获。

如果有Java,Android,H5等开发方面的问题,或者是开发求职方面的问题,都可以在评论区留言,或者私信我。

评论0 赞同0
  •  加载中...
YFan

YFan

回答于2022-06-28 15:22

大数据是以Java开发为基础的,大数据是处理各种形式的海量数据,Java是做开发的,软件开发等,我是学的开发,在北京一家公司,薪资也还行,在中公学的,现在也还挺满意,比以前薪资高很多

评论0 赞同0
  •  加载中...
chaos_G

chaos_G

回答于2022-06-28 15:22

大数据无疑是目前IT领域的最受关注的热词之一。几乎凡事都要挂上点大数据,否则就显得你OUT了。如果再找一个可以跟大数据并驾齐驱的IT热词,Java无疑是跟大数据并驾齐驱的一个词语。很多人在提到大数据的时候总会想到Java,那么Java与大数据到底是什么关系?两者之间有什么区别呢?

Java是什么?

一提起Java,大家都不陌生,Java是一门高级的网络编程语言,对于我们现在所用的软件及APP都是后台java编写出来的,对于大数据来说java是一门基础的工具类语言,Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java和大数据是什么关系?

大数据框架的编写支持很多开发语言,但是Java在大数据开发方面有很大的优势,目前流行的大数据Hadoop框架,很多部分都是用开源的Java语言编写,因此Java在大数据方面有很大优势。在大数据的中,也许别的你可能不在意,但是Hadoop想必你是注意到了的吧,大数据中不得不学的重要内容。

Java跟大数据的区别

1.架构层面

Java体系:三层架构 表现层(Web) 业务层(service) 持久层(Dao)

大数据体系:围绕数据 数据采集(数据源) 数据存储 数据计算(分析) 数据展示

2.技术层面

Java: 成熟 解决方案多 技术点集中

大数据:相对年轻 迭代更新快 解决方案相对少 技术相当繁琐 杂碎

3.开发层面

Java: 代码量很大 偏向业务 运维等任务相对较少 固定搭配、习惯用法较多

大数据:代码量很少 偏向技术(原理 知识) 运维任务略多(集群、服务器等)

4.市场层面

Java: 很成熟 有自己的行业规范 如日中天

大数据:市场起步阶段 规范有待健全 朝阳产业(结合人工智能、机器学习等)

Hadoop 的创始人 Doug Cutting 曾说过:“ Java 在开发者的生产率和运行效率之间取得很好的权衡。开发者可以使用广泛存在的高质量类库,切身受益于这种简洁、功能强大、类型安全的语言。“

换言之:没有Hadoop就不存在大数据,没有Java就没有Hadoop。

总结

大数据以Java技术为基础,在熟练掌握了Java技术以后,再学习大数据的相关技术会容易很多。

千锋武汉官网有很多Java大数据教学视频,还有完整版学习路线,想学的小伙伴可以去下载学习试试。

评论0 赞同0
  •  加载中...
pkwenda

pkwenda

回答于2022-06-28 15:22

大数据学名为BigData,是前几年新兴起的一个IT名词,偏算法和实现,又分为工程类和应用类。Java是一门开发语言,两者本质上并无直接可比较的地方。但大数据本身也有非常多的开发语言来支持,所以如果就开发语言和能力来比较又会产生非常多的方向性。下面给您详细描述下各自的行业描述和对应的细节。

大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换而言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”。从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘。但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。 随着云时代的来临,大数据(Big data)也吸引了越来越多的关注。分析师团队认为,大数据(Big data)通常用来形容一个公司创造的大量非结构化数据和半结构化数据,这些数据在下载到关系型数据库用于分析时会花费过多时间和金钱。大数据分析常和云计算联系到一起,因为实时的大型数据集分析需要像MapReduce一样的框架来向数十、数百或甚至数千的电脑分配工作。大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理(MPP)数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。

大数据目前可以使用的平台很多,而且厂商也很多,如Cloudera、ucloud的版本、Hadoop等。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

Java面向对象实现便捷、快讯的开发方式,很受学生、工程师欢迎,目前很多高校、职业院校开展Java课程学习,同事随着互联网、移动互联网的发展,web、手机的开发更偏向轻便的Java语言。

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<