没有集群环境,怎么学好大数据处理框架(Hadoop,Spark)的相关知识?

理由
举报 取消

没有集群环境,怎么学好大数据处理框架(Hadoop,Spark)的相关知识?在已经有Java,scala等丰富经验的前提下。

2017年12月23日 10 条回复 1124 次浏览

回复 ( 10 )

  1. qiqiqi
    理由
    举报 取消

    推荐用docker搭建你的集群,真是太方便了。大数据是一个知识体系,不仅仅是spark,你其实应该学的还包括,文件系统hdfs,Nosql,我推荐的是Cassandra,分布式消息队列,比如kafka,由于kafka绑定了zookeeper,所以zk也少不了。流式处理越来越重要,storm虽然很不错,但spark streaming由于能够和spark sql,mllib无缝整合,所以更加推荐。最后你会发现搭建可以拿来学习的开发环境是相当头疼的。那么,学习docker吧,github上有大量配置好的镜像可以供你使用。可以任意组织你期望的集群。所有一切都可以跑在一台单机上。总之,docker是学习大数据的终极利器。

  2. Nextchen
    理由
    举报 取消

    已经有 java 和 scala 丰富经验的前提下,这个问题不复存在了

  3. 纪路
    理由
    举报 取消

    这么多人都说了,Hadoop和Spark都可以单机跑,

  4. 用心阁
    理由
    举报 取消

    Spark单机也能跑

  5. 李冰
    理由
    举报 取消

    如果你只是学习怎么用hadoop和spark单机跑就是了。如果你非要用cluster,去组一个就是了。这么多提供cloud服务的公司呢,也不贵。国内用阿里,国外Amazon的EC2和Google的GCP都行。

  6. Wayne Shi
    理由
    举报 取消

    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/目录:

    wget http://labfile.oss.aliyuncs.com/courses/456/scala-2.11.7.tgz
    tar zxvf scala-2.11.7.tgz
    sudo mv scala-2.11.7 /opt/
    

  7. 昆吾
    理由
    举报 取消

    关于学好大数据处理框架,我这里这样假设:

    1. 学会大数据框架应用开发;
    2. 学会大数据框架;

    第一点相对简单,前面很多位都有回答,没有错,spark可以单机部署的,基本上主流框架都能单机部署,所以老老实实低头下载、编译、部署、coding、测试吧,多看文档和源码,多写代码,少看《xx天精通xx》之类的东西(不过可以参考玩玩,别当真就行)。

    关于机器配置,其实也不用太夸张,这无非又是给自己的惰性找个借口罢了,主流能跑得动LOL的机器都能满足你基本的测试学习需要了,实在不行就壮士断腕放弃游戏直接把系统装成linux……所以关键还是你学习欲望是否强烈的问题。

    当然其实也没有那么简单,大数据量和小数据量毕竟有本质上的区别,根本就是两个世界的东西,处理100M和100T数据的区别不只是时间长短、节点多少的问题,有些问题只有在大规模数据处理时才会遇到,能够解决好这类问题的人就很厉害了,也是这行门槛所在。

    那么重点我想谈谈的是第二个情况:假设你想学好框架。

    Hadoop 和Spark发展到了今天,都已经不仅仅是一个计算框架了,而使已经演化成了生态完整的系统,很多这个行业最优秀的程序员为它们做了贡献。赞美开源世界,这些代码对你都是Open的,那么就去阅读好了,带着目的的那种。比如你看到了spark standalone的任务提交流程代码,那么为什么它这么搞?能从中借鉴什么?假设哪天自己要设计一个别的分布式系统时是否能够参考?有什么优缺点?这些东西我认为在没有集群的情况下都是能够做的。

    假设有这样的积累,当开始工作时,你放心:任何系统都会出现问题,当问题发生时对你来说应该一切都是脉络清晰的;任何系统都不可能满足所有需求,当新需求spark/hadoop或者其他什么的满足不了需求时需要重新开发或者改造时,你应该使思路活跃的,应该是能够直击问题关键点的。当然这些锻炼在没有集群和实际操作的情况下是很难做到的,但可以先做好准备。

    我定义学好,在于系统的每个动作对你来说都是很清晰的,你知道它做这个动作的理由,它的实现方法,这个动作产生的影响,可能会出现问题的点……我比较笨,大概只能想到好好积累这一种手段……

  8. 阿里云云栖社区
    理由
    举报 取消

    云栖社区围绕大数据技术——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之优势

    点击此处查看课程详细内容

    更多技术干货欢迎点击关注知乎机构号:阿里云云栖社区 – 汇聚阿里技术精粹

  9. Patrick Leung
    理由
    举报 取消

    用VMware实现伪分布式。

  10. 移动易MobileEasy
    理由
    举报 取消

    没有集群环境,可以单机跑应用,但是还是没有解决学习大数据平台处理框架的问题。

    我觉得有几个方面,可以给你参考:

    1、你需要一个比较强劲的机器,内存/CPU要稍大一些,这些大数据的家伙都是吃资源的;

    2、你可以选择采用虚拟化技术,比如VMware,VirtualBox,多跑几个linux,应该问题不大;

    3、你还可以选择最近比较流行的Docker技术,很大程度上比虚拟化要便捷的多;

    4、你还可以很土豪,买很多实体机,选择用Ambari搭建一个真实的hadoop环境,我觉得那样你会学得更快。

我来回答

Captcha 点击图片更换验证码