1. 发现公司里的大数据开发挣得很多,想转行,
您好:
大数据来技术前景我们是毋自庸置疑的,而对于学习更是争先恐后。在这些人中,不乏有已经在IT圈混迹好几年的程序员,自然也有初出茅庐的零基础小白。说实话,大数据不比编程学习,还是需要一定的基础的,时间起码需要半年左右。
想要成为一个优秀的大数据人才并不容易,你不仅需要系统的学习理论知识,熟练掌握技能技巧,还需要具备一定的开发经验,而这些仅靠自学是远远不够的,比较好的方式就是参加专业学习。希望可以帮到你。
2. 大数据如何入门
首先我们要了解java语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。
大数据
Java :只要了解一些基础即可,做大数据不需要很深的Java 技术,学java SE 就相当于有学习大数据基础。
Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。
Hadoop:这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapRece和YARN,HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapRece是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。
Zookeeper:这是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们个人来讲只需要把它安装正确,让它正常的run起来就可以了。
Mysql:我们学习完大数据的处理了,接下来学习学习小数据的处理工具mysql数据库,因为一会装hive的时候要用到,mysql需要掌握到什么层度那?你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库。这里主要的是学习SQL的语法,因为hive的语法和这个非常相似。
Sqoop:这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以不用这个,直接把Mysql数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意Mysql的压力。
Hive:这个东西对于会SQL语法的来说就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapRece程序。有的人说Pig那?它和Pig差不多掌握一个就可以了。
Oozie:既然学会Hive了,我相信你一定需要这个东西,它可以帮你管理你的Hive或者MapRece、Spark脚本,还能检查你的程序是否执行正确,出错了给你发报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢上它的,不然你看着那一大堆脚本,和密密麻麻的crond是不是有种想屎的感觉。
Hbase:这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。
Kafka:这是个比较好用的队列工具,队列是干吗的?排队买票你知道不?数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来,你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了,因为处理不过来就是他的事情。而不是你给的问题。当然我们也可以利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写到各种数据接受方(比如Kafka)的。
Spark:它是用来弥补基于MapRece处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以操作它,因为它们都是用JVM的。
3. 大数据需要学编程吗
很多人了解到大数据发展的前景和空间很好,适合发展自己的职业生涯,导致很多零基础的想要加入大数据的学习中
首先,0基础入门大数据,先从一门编程语言入手。我建议,如果你想往大数据开发方向走,学习Java,想学数据分析或者数据挖掘,那就选Python。
为什么一开始的入门要学习编程呢?
这就跟问学习为什么要学会拿画笔、学习音乐为什么要练发声一样,因为它是基础啊!
学习大数据,不能只看数据,不能只设计算法,关键是要通过编程把算法来实现,看算法是否对数据有一定的效果。如果不学一门语言,你就不能和计算机对话,就没有办法让计算机来处理数据,也就不能证明你的想法和算法的有效性和准确性。
既然编程是基础,重要性就不用我在多说了吧,一定要学好哦。
0基础学习大数据需要Java基础
Java:开发需求最多的编程语言之一,可以从事网站开发、桌面程序设计、游戏开发、安卓后台开发、全栈开发等。它可以说是大数据最基础的编程语言,一是大数据的本质是海量数据的计算,查询与存储,后台开发很容易接触到大数据量存取的应用场景;二是Java天然的优势,大数据的组件很多是用Java开发的。
零基础小白想学习大数据,需要从Java基础开始学起,可以把Java语言作为第一个入门语言。一般来说,学会JavaSE就可以了,但能掌握JavaEE的话会更好。
JavaSE:变量、循环、if等等;面向对象;I/O输入和输出(HDFS会用到);反射、泛型,MR查询;JDBC:操作关系型数据库(RDBMS)(HIVE会用到)。
大数据需要学习Linux系统管理、Shell编程设计、Maven
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁;Shell既是一种命令语言,又是一种程序设计语言。Shell是一个命令解释器,解释执行用户所输入的命令和程序。Maven是一个项目管理工具,可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理。
大数据技术往往运行在Linux环境下,大数据的分布式集群(Hadoop,Spark)都是搭建在多台Linux系统上,对集群的执行命令都是在Linux终端窗口输入......想从事大数据相关工作,需要掌握Linux系统操作方法和相关命令。
4. 我也已经25岁其实就有转行的打算了,想转数据分析大数据行业,我大学本科是和这个专业相关的,
读研期间多跟着导师做项目,有些导师手上有很多横向项目,是参与实践回的良好途径,其实有人答读研期间跟上班一样忙,不要让学校时光虚度。另外,你年龄不小了,可以在读书期间思考以后就业的问题,读书时成家政策也支持,当然有合适的结婚对象才行。
5. hadoop作用
1.hadoop有三个主要的核心组件:HDFS(分布式文件存储)、MAPREDUCE(分布式的计算)、YARN(资源调度),现在云计算包括大数据和虚拟化进行支撑。
在HADOOP(hdfs、MAPREDUCE、yarn)大数据处理技术框架,擅长离线数据分析.
Zookeeper 分布式协调服务基础组件,Hbase 分布式海量数据库,离线分析和在线业务处理。
Hive sql 数据仓库工具,使用方便,功能丰富,基于MR延迟大,可以方便对数据的分析,并且数据的处理可以自定义方法进行操作,简单方便。
Sqoop数据导入导出工具,将数据从数据导入Hive,将Hive导入数据库等操作。
Flume数据采集框架,可以从多种源读取数据。
Azkaban对操作进行管理,比如定时脚本执行,有图形化界面,上传job简单,只需要将脚本打成bao,可直接上传。
2.hadoop的可以做离散日志分析,一般流程是:
将web中的数据取过来【通过flume】,然后通过预处理【maprece,一般只是使用map就可以了】,就是将数据中没有用处的数据去除掉,将数据转换【比如说时间的格式,Agent的组合】,并将数据进行处理之后以固定格式输出,由Hive处理,Hive是作用是将数据转换出一个表,RTL就是写SQL的一个过程,将数据进行分析,然后将数据报表统计,这个时候使用的是pig数据分析【hive一般作为库,pig做分析,我没有使用pig,因为感觉还没有hive的HQL处理方便】,最后将含金量最大的数据放入到mysql中,然后将mysql中的数据变为可视图化的工具。
推荐的使用:当我们浏览一各网页的时候,将数据的值值传递给后台保存到log中,后台将数据收集起来,hadoop中的fiume可以将数据拿到放入到HDFS中,原始的数据进行预处理,然后使用HIVE将数据变为表,进行数据的分析,将有价值的数据放入到mysql,作为推荐使用,这个一般是商城,数据的来源也是可以通过多种方式的,比如说隐形图片、js、日志等都可以作为采集数据的来源。
3.hadoop中的HDFS有两个重要的角色:NameNode、datanode,Yarn有两个主要的主角:ResourceManager和nodeManager.
4.分布式:使用多个节点协同完成一项或者多项业务功能的系统叫做分布式系统,分布式一般使用多个节点组成,包括主节点和从节点,进行分析
5.maprece:是使用较少的代码,完成对海量数据的处理,比如wordCount,统计单词的个数。
实现思想:将单词一个一个的遍历,然后将单词加1处理,但是这是集群,那么就每个节点计算自己节点的数据,然后最后交给一个统计的程序完成就可以了,最后将单词和结果输出。
6. hadoop的hdfs的某个目录里面有两个文件然后想进行文件中key对应的value相乘操作
参考wordcount程序,然后修改:
在map阶段将key和value分别拿到(和wordcount不同,你这里只需要对每行版按照空格或者\t分隔权分别取到key和value即可,不用想wordcount对value赋值为1),
在rece阶段对同一个key的value序列进行相乘(wordcount是对同一个key的序列value进行相加的)。
7. 如何连接hive metastore
最好先启动metasotre然后再启动hiveserverhive--servicemetastore-----------StartupHiveEmbeddedhive--servicehiveserver-----------StartupHiveStandalone(如果metastore配置成remote方式那就应该把metastore也启动)测试standalone,必须用remotemysql那种设置howtoconfigeration,prefertohive--servicehiveserver2---.rts,andcan'.,startingwithHive0.11.0hadoopjar/opt/mapr/hadoop/hadoop-0.20.2/hadoop-0.20.2-dev-examples.jarwordcount/user/root/wcin/user/root/wcout1
8. 零基础应该如何学习Hadoop
关于Hadoop,首先我们需要了解Hadoop 1.0、Hadoop 2.0、MapRece、HDFS、NameNode、DataNode、JobTracker、TaskTracker、Yarn、ResourceManager、NodeManager。并且还要自己学会如何搭建Hadoop,先让它跑起来。(建议先使用安装包命令行安装,不要使用管理工具安装。现在都用Hadoop 2.0)
HDFS目录操作命令;上传、下载文件命令;提交运行MapRece示例程序;打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。知道Hadoop的系统日志在哪里。以上完成之后,就应该去了解他们各个的原理了。例如:MapRece:如何分而治之;HDFS:数据到底在哪里,究竟什么才是副本;Yarn到底是什么,它能干什么;NameNode到底在干些什么;Resource Manager到底在干些什么;
其次,我们可以自己写一个(照抄也行)WordCount程序,打包并提交到Hadoop运行。你不会Java、Shell、Python都可以,有个东西叫Hadoop Streaming。如果你认真完成了以上几步,恭喜你,你的一只脚已经进来了。
再其次,一定要学习SQL,它会对你的工作有很大的帮助。就像是你写(或者抄)的WordCount一共有几行代码,但是你用SQL就非常简单了,例如:SELECT word,COUNT(1) FROM wordcount GROUP BY word;这便是SQL的魅力,编程需要几十行,甚至上百行代码,而SQL一行搞定;使用SQL处理分析Hadoop上的数据,方便、高效、易上手、更是趋势。不论是离线计算还是实时计算,越来越多的大数据处理框架都在积极提供SQL接口。另外就是SQL On Hadoop之Hive于大数据而言一定要学习的。
最后,学会Hive的基本命令:创建、删除表;加载数据到表;下载Hive表的数据;MapRece的原理(还是那个经典的题目,一个10G大小的文件,给定1G大小的内存,如何使用Java程序统计出现次数最多的10个单词及次数);HDFS读写数据的流程;向HDFS中PUT数据;从HDFS中下载数据;自己会写简单的MapRece程序,运行出现问题,知道在哪里查看日志;会写简单的Select、Where、group by等SQL语句;Hive SQL转换成MapRece的大致流程;Hive中常见的语句:创建表、删除表、往表中加载数据、分区、将表中数据下载到本地。
关于零基础应该如何学习Hadoop,青藤小编就和您分享到这里了。如果您对大数据工程有浓厚的兴趣,希望这篇文章可以为您提供帮助。如果您还想了解更多关于数据分析师、大数据工程师的技巧及素材等内容,可以点击本站的其他文章进行学习。