没有集群环境,怎么学好大数据处理框架(Hadoop,Spark)的相关知识? 举报 理由 举报 取消 没有集群环境,怎么学好大数据处理框架(Hadoop,Spark)的相关知识?在已经有Java,scala等丰富经验的前提下。 2017年12月23日 10 条回复 1254 次浏览 Hadoop,Spark,数据,数据处理
回复 ( 10 )
推荐用docker搭建你的集群,真是太方便了。大数据是一个知识体系,不仅仅是spark,你其实应该学的还包括,文件系统hdfs,Nosql,我推荐的是Cassandra,分布式消息队列,比如kafka,由于kafka绑定了zookeeper,所以zk也少不了。流式处理越来越重要,storm虽然很不错,但spark streaming由于能够和spark sql,mllib无缝整合,所以更加推荐。最后你会发现搭建可以拿来学习的开发环境是相当头疼的。那么,学习docker吧,github上有大量配置好的镜像可以供你使用。可以任意组织你期望的集群。所有一切都可以跑在一台单机上。总之,docker是学习大数据的终极利器。
已经有 java 和 scala 丰富经验的前提下,这个问题不复存在了
这么多人都说了,Hadoop和Spark都可以单机跑,
Spark单机也能跑
如果你只是学习怎么用hadoop和spark单机跑就是了。如果你非要用cluster,去组一个就是了。这么多提供cloud服务的公司呢,也不贵。国内用阿里,国外Amazon的EC2和Google的GCP都行。
Spark虽然是大规模的计算框架,但也支持在单机上运行,对于入门学习者而言,单机环境已经足够。实验楼Spark训练营Hadoop – Spark 大数据动手实验
Spark安装非常简单,如需本地安装可以参考以下步骤。
1. 安装
1.1 安装前准备
安装Spark之前需要先安装Java,Scala及Python。
安装Java
实验楼环境中已经安装了JDK,这里打开桌面上的Xfce终端,执行查看Java版本:
可以看到实验楼的Java版本是1.8.0_60,满足Spark 1.5.1对Java版本的要求。
如果需要自己安装可以在Oracle的官网下载Java SE JDK,下载链接:Java SE – Downloads
由于官网速度很慢,我们预先上传到了实验楼内网,下载并解压到/opt/目录:
关于学好大数据处理框架,我这里这样假设:
第一点相对简单,前面很多位都有回答,没有错,spark可以单机部署的,基本上主流框架都能单机部署,所以老老实实低头下载、编译、部署、coding、测试吧,多看文档和源码,多写代码,少看《xx天精通xx》之类的东西(不过可以参考玩玩,别当真就行)。
关于机器配置,其实也不用太夸张,这无非又是给自己的惰性找个借口罢了,主流能跑得动LOL的机器都能满足你基本的测试学习需要了,实在不行就壮士断腕放弃游戏直接把系统装成linux……所以关键还是你学习欲望是否强烈的问题。
当然其实也没有那么简单,大数据量和小数据量毕竟有本质上的区别,根本就是两个世界的东西,处理100M和100T数据的区别不只是时间长短、节点多少的问题,有些问题只有在大规模数据处理时才会遇到,能够解决好这类问题的人就很厉害了,也是这行门槛所在。
那么重点我想谈谈的是第二个情况:假设你想学好框架。
Hadoop 和Spark发展到了今天,都已经不仅仅是一个计算框架了,而使已经演化成了生态完整的系统,很多这个行业最优秀的程序员为它们做了贡献。赞美开源世界,这些代码对你都是Open的,那么就去阅读好了,带着目的的那种。比如你看到了spark standalone的任务提交流程代码,那么为什么它这么搞?能从中借鉴什么?假设哪天自己要设计一个别的分布式系统时是否能够参考?有什么优缺点?这些东西我认为在没有集群的情况下都是能够做的。
假设有这样的积累,当开始工作时,你放心:任何系统都会出现问题,当问题发生时对你来说应该一切都是脉络清晰的;任何系统都不可能满足所有需求,当新需求spark/hadoop或者其他什么的满足不了需求时需要重新开发或者改造时,你应该使思路活跃的,应该是能够直击问题关键点的。当然这些锻炼在没有集群和实际操作的情况下是很难做到的,但可以先做好准备。
我定义学好,在于系统的每个动作对你来说都是很清晰的,你知道它做这个动作的理由,它的实现方法,这个动作产生的影响,可能会出现问题的点……我比较笨,大概只能想到好好积累这一种手段……
云栖社区围绕大数据技术——Spark整理了一份详尽的学习、实践课程,整个课程分为三大部分:
一、基础打磨:《Scala入门到精通》《Linux&Akka基础》的系列学习课程;
二、深入理解:本部分主要包含《源码走读》、《组件解析》两部分内容;
三、应用实践:从语言的场景实践到技术应用提供了全方的实战演练案例,读者可以根据内容手把手地进行;
还有最后一部分是介绍基于阿里云E-MapReduce(点击了解产品详情)的实践应用讲解。
小编特意为想深入学习的上云“新”同学们准备了一份厚礼:10个阿里云免费套餐邀请码(想必很多同学知道他的价值,如果还有不了解的可以点击此处查看)用于实践学习使用。
获得方式:各位同学请在知乎原文评论中,点击括号中的原文——>(绝对干货:Spark核心技术系列课程和实践学习 – 知乎专栏)回复:我要阿里云免费套餐邀请码(可以免费申请开通阿里云服务器、数据库等30多款云计算产品),为公平起见采用评论点赞排名前十位的小伙伴可得。
课程介绍如下,提供给各位同学提前预览各取所需,课程学习页面请点击此处进入:
一、基础打磨篇:
1.1 《Scala入门到精通》
· 第一节:Scala语言初步
· 第二节:Scala基本类型及操作、程序控制结构
· 第三节:Array、List
· 第四节:Set、Map、Tuple、队列操作实战
· 第五节:函数与闭包
· 第六节:类和对象(一)
· 第七节:类和对象(二)
· 第八节:包和引入
· 第九节:继承与组合
· 第十节:Scala类层次结构、Traits初步
· 第十一节:Trait进阶
· 第十二节:I/O与正则表达式
· 第十三节:高阶函数
· 第十四节:Case Class与模式匹配(一)
· 第十五节:Case Class与模式匹配(二)
· 第十六节:泛型与注解
· 第十七节:类型参数(一)
· 第十八节:隐式转换与隐式参数(一)
· 第十九节:隐式转换与隐式参数(二)
· 第二十节:类型参数(二)
· 第二十一节:类型参数(三)
· 第二十二节:高级类型 (一)
· 第二十三节:高级类型 (二)
· 第二十四节:高级类型 (三)
· 第二十五节:提取器(Extractor)
· 第二十六节:Scala并发编程基础
· 第二十七节:Scala操纵XML
· 第二十八节:Scala与JAVA互操作
· 第二十九节:Scala数据库编程
· 第三十节:Scala脚本编程与结束语
1.2 《Linux & Akka基础》
· 第一节:Linux介绍、安装及使用初步
· 第二节:Linux文件系统、目录(一)
· 第三节:用户和组 · 第四节:Linux文件系统(二)
· 第五节:vi、vim编辑器(一)
· 第六节:vi、vim编辑器(二)
· 第七节:进程管理
· 第八节:网络管理
· 第九节:Shell编程入门(一)
· 第十节:Shell编程入门(二)
· 第十一节:Shell编程入门(三)
· 第十二节:Shell编程入门(四)
· 第十三节:Shell编程入门(五)
· 第十四节:Shell编程入门(六)
· 第十五节:基础正则表达式(一)
· Akka并发编程(一):并发编程简介
· Akka并发编程(二)::Actor模型(一)
· Akka并发编程(三):Actor模型(二)
· Akka并发编程(四):Actor模型(三)
· Akka并发编程(五):Actor模型(四)
· Akka并发编程(六):Actor模型(五)
· Akka并发编程(七):Actor模型(六)
· Akka并发编程(八):Actor模型(七)
二、深入理解篇
2.1 《源码走读》
· 第一节:Spark应用程序提交流程
· 第二节:SparkContext的创建
· 第三节:Spark Job的提交
· 第四节:Stage划分
· 第五节:Stage提交
· 第六节:Task提交
· 第七节:ResourceOffers与LaunchTasks解析
· 第八节:Task执行
· 第九节:Task执行成功时的结果处理
· 第十节:Standalone运行模式解析
· 第十一节:Spark SQL 处理流程分析
· 第十二节:Spark SQL之SQLContext(一)
2.2 《组件解析》
· 第一节:Spark 1.5.0集群搭建
· 第二节:Hadoop、Spark生成圈简介
· 第三节:Spark Intellij IDEA开发环境搭建
· 第四节:Spark编程模型(一)
· 第五节:Spark编程模型(二)
· 第六节:Spark编程模型(三)
· 第七节:Spark运行原理
· 第八节:Spark SQL与DataFrame(一)
· 第九节:Spark SQL运行流程解析
· 第十节:Spark SQL案例实战(一)
· 第十一节:Spark Streaming(一)
· 第十二节:Spark Streaming(二)
· 第十三节:Spark Streaming(三)
· 第十四节:Spark Streaming(四)
· 第十五节:Kafka 0.8.2.1 集群搭建
· 第十六节:Spark Streaming与Kafka
三、应用实践篇
3.1 《场景实践》
· 和封神一起“深挖”Spark
· 商品搜索引擎—推荐系统设计
· 阿里Spark实践与探索
· 如何做Spark 版本兼容
· 用线性回归无编码实现文章浏览数预测
· Spark Streaming+Spark SQL实现可配置ETL
· 2016中国spark技术峰会见闻摘要
· Spark Streaming 流式计算实战
· 利用 Spark DataSource API 实现Rest数据源
· 协同过滤算法多语言实现 · Spark 数据倾斜的一些表现
· Spark性能优化 · Spark性能优化——和shuffle搏斗
· Kafka+Spark Streaming+Redis实时计算实践
· 数据处理平台架构中的SMACK组合
3.2 《技术应用》
· SparkSQL实战(一):DataFrames基础
· SparkSQL实战(二):DataFrames进阶
· SparkSQL实战(三):SparkSQL应用案例
· ML On Spark(一):基础数据结构
· ML On Spark(二):基础数据结构
· ML On Spark(三):统计基础
· ML On Spark(四):统计基础
更多:E-MapReduce实践应用场景介绍
· 泰为基于EMR的考量与实践
· 基于E-MapReduce梨视频推荐系统
· Databricks、Intel、阿里、梨视频的实践
· E-MapReduce集群搭建HAWQ实践
· E-MapReduce支持计算与存储分离,成本降1倍
· 阿里云MongoDB与EMR的HelloWorld
· E-MapReduce(Hadoop)10大类问题集群规划
· 云上Hadoop之优势
点击此处查看课程详细内容
更多技术干货欢迎点击关注知乎机构号:阿里云云栖社区 – 汇聚阿里技术精粹
用VMware实现伪分布式。
没有集群环境,可以单机跑应用,但是还是没有解决学习大数据平台处理框架的问题。
我觉得有几个方面,可以给你参考:
1、你需要一个比较强劲的机器,内存/CPU要稍大一些,这些大数据的家伙都是吃资源的;
2、你可以选择采用虚拟化技术,比如VMware,VirtualBox,多跑几个linux,应该问题不大;
3、你还可以选择最近比较流行的Docker技术,很大程度上比虚拟化要便捷的多;
4、你还可以很土豪,买很多实体机,选择用Ambari搭建一个真实的hadoop环境,我觉得那样你会学得更快。