{eval=Array;=+count(Array);}
虽然不一定需要java 语言基础,但是选择java 语言是一条比较好的捷径。
首先,大数据的很多组件都是java 语言写的,想要加深学习,就必须去啃源码,要啃源码,那java 语言就近水楼台先得月了。
其次,大多数做大数据的公司都是招聘java 开发人员的,这样就业方面,就比较机会多一些。
当然,除了java 语言,python 语言,shell 脚本语言,都是需要掌握的,能为工作带来不少便捷。
最后,要做好大数据,数学逻辑思维很重要,可以着重培养一下
最后附上一张招聘信息
大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。大数据技术是指从各种各样类型的数据中,快速获得有价值信息的能力。所以不必学java 。大数据完全始于数据存储,也也就是说始于大数据框架Hadoop。
一、学习大数据需要的基础
javaSE,EE(SSM)
90%的大数据框架都是java写的。
如:MongoDB--最受欢迎的,跨平台的,面向文档的数据库。
Hadoop--用Java编写的开源软件框架,用于分布式存储,并对非常大的数据集进行分布式处理。
Spark --Apache Software Foundation中最活跃的项目,是一个开源集群计算框架。
Hbase--开放源代码,非关系型,分布式数据库,采用Google的BigTable建模,用Java编写,并在HDFS上运行。
MySQL(必须需要掌握的)
SQLon Hadoop又分:
batch SQL(Hive):一般用于复杂的 ETL 处理,数据挖掘,高级分析。
interactive SQL:交互式 SQL 查询,通常在同一个表上反复的执行不同的查询
operation SQL:通常是单点查询,延时要求小于 1 秒,该类系统主要是HBase。
Linux
Linux(一种操作系统,程序员必须掌握的,我的博客里有我对Linux的介绍)
大数据的框架安装在Linux操作系统上
二、需要学什么
第一方面:大数据离线分析
一般处理T+1数据:
Hadoop:(common、HDFS、MapReduce、YARN)重点中的重点。
Hadoop的框架最核心的设计就是:HDFS 和 MapReduce,
Hadoop :主要是的环境搭建
Hadoop的思想:处理数据的思想。
Hadoop用Java编写的开源软件框架,用于分布式存储,并对非常大的数据集进行分布式处理,
用户可以在不了解分布式底层细节的情况下,开发分布式程序,
充分利用集群进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。
HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算。
HDFS:
HDFS 的架构是基于一组特定的节点构建的,这是由它自身的特点决定的。
这些节点包括NameNode(仅一个),它在 HDFS 内部提供元数据服务;
DataNode,它为 HDFS 提供存储块。
由于仅存在一个 NameNode,因此这是 HDFS 的一个缺点(单点失败)。
存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。
这与传统的 RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定 NameNode 可以控制所有文件操作。
NameNode 是一个通常在HDFS实例中的多带带机器上运行的软件,
它负责管理文件系统名称空间和控制外部客户机的访问。
NameNode 决定是否将文件映射到 DataNode 上的复制块上。
对于最常见的 3 个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。
DataNode:
DataNode 也是一个通常在HDFS实例中的多带带机器上运行的软件。
Hadoop 集群包含一个 NameNode 和大量 DataNode。
DataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。
Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度
MapReduce:
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算
概念"Map(映射)"和"Reduce(归约)"
MapReduce是面向大数据并行处理的计算模型、框架和平台,它隐含了以下三层含义:
1)MapReduce是一个基于集群的高性能并行计算平台(Cluster Infrastructure)。
2)MapReduce是一个并行计算与运行软件框架(Software Framework)
3)MapReduce是一个并行程序设计模型与方法(Programming Model & Methodology)。
Hive(MPP架构):
大数据数据仓库
通过写SQL对数据进行操作,类似于mysql数据库中的sql
扩展:
MPP架构:MPP 架构的优点是查询速度快,通常在秒计甚至毫秒级以内就可以返回查询结果。
(但MPP 架构不适合大规模部署)
HBase(博客中有 这个重要)
基于HDFS的NOSQL数据库
面向列的存储
列存储:
列存储的思想是将元组垂直划分为列族集合,每一个列族独立存储,列族可以退化为只仅包含
一个列的平凡列族。当查询少量列时,列存储模型可以极大的减少磁盘IO 操作,提高查询性能。
当查询的列跨越多个列族时,需要将存储在不同列族中列数据拼接成原始数据,由于不同列族
存储 在不同的 HDFS 节点上,导致大量的数据跨越网络传输,从而降低查询性能。
扩展前沿框架:
协作框架:
sqoop(桥梁:HDFS 《==》RDBMS)
Sqoop(发音:skup)是一款开源的工具,一个用来将Hadoop和关系型数据库中的数据相互转移的工具,
主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,
可以将一个关系型数据库(例如 :MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS
中,也可以将HDFS的数据导进到关系型数据库中。
Sqoop介绍:
Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,
也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。
RDBMS:
RDBMS即关系数据库管理系统(Relational Database Management System),
是将数据组织为相关的行和列的系统而管理关系数据库的计算机软件就是关系数据库管理系统,
常用的数据库软件有Oracle、SQL server等。
RDBMS 是SQL 的基础,同样也是所有现代数据库系统的基础
RDBMS 中的数据存储在被称为表(tables)的数据库对象中。
表是相关的数据项的集合,它由列和行组成。
RDBMS的特点:
1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成database
flume:收集日志文件中信息
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,
Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,
Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力
调度框架anzkaban,了解
crontab(Linux自带)
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。
该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
Kylin(中国自主知识产权操作系统)
Kylin操作系统是国家高技术研究发展计划(863计划)的重大成果之一,
是以国防科技大学为主导,与中软、联想等单位联合设计和开发的具有完全自主版权,
可支持多种微处理器和多种计算机体系结构,具有高性能、高可用性和高安全性,
并与Linux应用二进制兼容的国产中文服务器操作系统。
Impala:
Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,
能查询存储在Hadoop的HDFS和HBase中的PB级大数据。
已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,
仍然是一个批处理过程,难以满足查询的交互性。重要的是它查询的很快
ElasticSearch(ES)
ElasticSearch是一个基于Lucene的搜索服务器。
它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。
ES概念:
cluster
代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,
主从节点是对于集群内部来说的。
es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,
因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。
了解:
Shards
Replicas
Recovery
River
Gateway
Discovery.zen
Transport
这个目前来说还是需要有的,但是不需要太深。以下答复也许可以帮助到您。
学习大数据是需要有java,python和R语言的基础。
1) Java学习到什么样的程度才可以学习大数据呢?
java需要学会javaSE即可。javaweb,javaee对于大数据用不到。学会了javase就可以看懂hadoop框架。
2) python是最容易学习的,难易程度:python java Scala 。
python不是比java更直观好理解么,因为会了Python 还是要学习java的,你学会了java,再来学习python会很简单的,一周的时间就可以学会python。
3) R语言也可以学习,但是不推荐,因为java用的人最多,大数据的第一个框架Hadoop,底层全是Java写的。就算学会了R还是看不懂hadoop。
java在大数据中的作用是构成大数据的语言,大数据的第一个框架Hadoop以及其他大数据技术框架,底层语言全是Java写的,所以推荐首选学习java
再给你们举例说明下它们的分工和作用,java注重业务,大数据注重数据,前端是脸(页面显示),java是胳膊(业务),大数据是直男大脑,人工智能,深度学习是有情商的大脑。
给你分享下大数据整体技术体系以及大数据相关热门就业岗位
当然啊。
校招都需要扎实的java基础,还需要有参加过javaEE项目,有开发经验的。
如果只会一点JavaSE,可能简历都过不了。
这还只是校园招聘的要求,要是社招对JAVA的要求就更高了,其它企业,大家可以自行去招聘网站查看,基本都如此。
虽然大数据开发岗位随着大数据产业的发展,需求在增加,但是学习大数据开发的人也在增加。2019年,开设大数据专业的本科高校就达到了283所,可以预见,几年之后,大数据开发岗位竞争将会非常激烈,随之,企业对大数据开发岗位的要求也会增加。
首先无论如何肯定要有计算机基础百,当然实在基础很薄弱也不是不行,不影响入行但是影响你的上限。
其次很重度要的是对数据库要有一定的理解,不过如果是零基础开始学的话,也问题知不大。
然后就是语言基础,Java对大数据开发很重要,Python对数据分析重要。有语言基础肯定方便你学习,道但实在没有也没关系。
大数据很多组件都是用java开发的,你不懂java的话,看不懂源码,更没办法进行开发了,但是如果你做的只是hbase,hive这些可以不用懂太深,会SQL就行了,如果要往更深层次学习,建议还是要学习java
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答