大数据生态圈所涉及的技术(一)

发表于:2018-7-05 11:41  作者:51Testing采编   来源:CSDN

字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签:

  今天博主是做一个大概的概述,缺少的章节会在后面慢慢补充,感兴趣的同学可以在下面评论留言。
  数据可视化展示中心:
  KIbana官网:点击打开链接
  用户指南:点击打开链接
  Grafana官网:点击打开链接
  Grafana帮助文档:点击打开链接

  大数据特征:
  1)大量化(Volume):存储量大,增量大 TB->PB
  2)多样化(Variety):
  来源多:搜索引擎,社交网络,通话记录,传感器
  格式多:(非)结构化数据,文本、日志、视频、图片、地理位置等
  3)快速化(Velocity):海量数据的处理需求不再局限在离线计算当中
  4)价值密度低(Value):但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来

  大数据带来的革命性变革:
  1)成本降低
  2)软件容错,硬件故障视为常态
  3)简化分布式并行计算

  数据分析师的必备技能:
  数据采集:所谓数据采集并不是我们理解的数据爬虫,尤其是我们在工作中遇到的数据很多都是来自系统内的数据,来自数据库的数据来自日志的数据。但是这些数据维度是非常多并且复杂的,所以在分析前我们就需要把这些数据采集来。数据采集常用的手段有:SQLPython,其中SQL是数据分析的必备技能,Python是加分项。
  数据清洗:采集来的数据一般是不规整的,字段缺失或者有错误是常有的事情,如果我们不对这些数据进行清洗,分析出的结果就会出现各种异常。在数据清洗这一块就需要用到一些简单的统计学基础。
  数据分析:数据分析最重要的是行业知识和逻辑思维能力。行业知识往往是通过在行业中的工作经历来获取的,当然作为学生也可以通过一些行业相关的数据报告和杂志来获得。而逻辑思维能力,需要后天的不断的锻炼,常见的锻炼方法是多看数据分析实战相关的书籍,学习作者的思维方式;经常和小伙伴一起做头脑风暴;对于一些工作生活中有趣的经验主义的事情尝试通过数据角度去解答。
  数据可视化:让结论更加的容易理解。目前国内外的数据可视化的产品也非常多,常用的有:Echarts/Tableau/Excel/Python等
  为了应对大数据的这几个特点,开源的大数据框架越来越多,先列举一些常见的:
  文件存储:Hadoop HDFS、Tachyon、KFS
  离线计算:Hadoop MapReduce、Spark
  流式、实时计算:Storm、Spark Streaming、S4、Heron、
  K-V、NOSQL数据库:HBase、Redis、MongoDB
  资源管理:YARN、Mesos
  日志收集:Flume、Scribe、Logstash、Kibana
  消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ
  查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
  分布式协调服务:Zookeeper
  集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager
  数据挖掘、机器学习:Mahout、Spark MLLib
  数据同步:Sqoop
  任务调度:Oozie

  第一章:初识Hadoop
  1.1 学会百度Google
  1.2 参考资料首选官方文档
  http://hadoop.apache.org/
  1.3 先让Hadoop跑起来
  Hadoop可以算是大数据存储和计算的开山鼻祖,现在大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。
  关于Hadoop,你至少需要搞清楚以下是什么:
  Hadoop 1.0、Hadoop 2.0
  MapReduce、HDFS
  NameNode、DataNode
  JobTracker、TaskTracker
  Yarn、ResourceManager、NodeManager
  1.4 试试使用Hadoop
  HDFS目录操作命令;
  上传、下载文件命令;
  提交运行MapReduce示例程序;
  打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志
  知道Hadoop的系统日志在哪里
  1.5 你该了解它们的原理了
  MapReduce:如何分而治之;
  HDFS:数据到底在哪里,什么是副本;
  Yarn到底是什么,它能干什么;
  NameNode到底在干些什么;
  Resource Manager到底在干些什么;
  1.6 自己写一个MapReduce程序
  Java、Shell、Python都可以

  第二章:更高效的WordCount
  2.1 学点SQL
  2.2 SQL版WordCount
  SELECT word,COUNT(1) FROM wordcount GROUP BY word;
  使用SQL处理分析Hadoop上的数据,方便、高效、易上手、更是趋势。不论是离线计算还是实时计算,越来越多的大数据处理框架都在积极提供SQL接口
  2.3 SQL On Hadoop之Hive
  为什么说Hive是数据仓库工具,而不是数据库工具呢?有的朋友可能不知道数据仓库,数据仓库是逻辑上的概念,底层使用的是数据库,数据仓库中的数据有这两个特点:最全的历史数据(海量)、相对稳定的;所谓相对稳定,指的是数据仓库不同于业务系统数据库,数据经常会被更新,数据一旦进入数据仓库,很少会被更新和删除,只会被大量查询。而Hive,也是具备这两个特点,因此,Hive适合做海量数据的数据仓库工具,而不是数据库工具
  2.4 安装配置Hive
  http://hive.apache.org/
  2.5 试试使用Hive
  请参考1.1 和 1.2 ,在Hive中创建wordcount表,并运行2.2中的SQL语句
  在Hadoop WEB界面中找到刚才运行的SQL任务。看SQL查询结果是否和1.4中MapReduce中的结果一致
  2.6 Hive是怎么工作的
  明明写的是SQL,为什么Hadoop WEB界面中看到的是MapReduce任务?
  2.7 学会Hive的基本命令
  创建、删除表;
  加载数据到表;
  下载Hive表的数据;
  截至到这里你应该已经具备以下技能和知识点:
  MapReduce的原理(还是那个经典的题目,一个10G大小的文件,给定1G大小的内存,如何使用Java程序统计出现次数最多的10个单词及次数);
  HDFS读写数据的流程;向HDFS中PUT数据;从HDFS中下载数据;
  自己会写简单的MapReduce程序,运行出现问题,知道在哪里查看日志;
  会写简单的SELECT、WHERE、GROUP BY等SQL语句;
  Hive SQL转换成MapReduce的大致流程;
  Hive中常见的语句:创建表、删除表、往表中加载数据、分区、将表中数据下载到本地;
  从上面的学习,你已经了解到,HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据,MapReduce是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据,而Hive则是SQL On Hadoop,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapReduce,提交运行

  第三章:把别处的数据搞到Hadoop上(数据采集)
  3.1 HDFS PUT命令
  这个在前面你应该已经使用过了。put命令在实际环境中也比较常用,通常配合shell、python等脚本语言来使用。建议熟练掌握
  3.2 HDFS API
  HDFS提供了写数据的API,自己用编程语言将数据写入HDFS,put命令本身也是使用API
  实际环境中一般自己较少编写程序使用API来写数据到HDFS,通常都是使用其他框架封装好的方法。比如:Hive中的INSERT语句,Spark中的saveAsTextfile等。建议了解原理,会写Demo
  3.3 Sqoophttp://sqoop.apache.org/
  Sqoop是一个主要用于Hadoop/Hive与传统关系型数据库,OracleMySQL、SQLServer等之间进行数据交换的开源框架。就像Hive把SQL翻译成MapReduce一样,Sqoop把你指定的参数翻译成MapReduce,提交到Hadoop运行,完成Hadoop与其他数据库之间的数据交换
  自己下载和配置Sqoop(建议先使用Sqoop1,Sqoop2比较复杂)。了解Sqoop常用的配置参数和方法
  使用Sqoop完成从MySQL同步数据到HDFS;使用Sqoop完成从MySQL同步数据到Hive表;如果后续选型确定使用Sqoop作为数据交换工具,那么建议熟练掌握,否则,了解和会用Demo即可
  3.4 Flumehttp://flume.apache.org/
  Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上
  因此,如果你的业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。
  下载和配置Flume。使用Flume监控一个不断追加数据的文件,并将数据传输到HDFS;Flume的配置和使用较为复杂,如果你没有足够的兴趣和耐心,可以先跳过Flume。
  3.5 阿里开源的DataX
  与关系型数据库数据交换的工具,非常好用。
  可以参考博文http://blog.csdn.net/ayanami001/article/details/48102823。现在DataX已经是3.0版本,支持很多数据源。你也可以在其之上做二次开发。有兴趣的可以研究和使用一下,对比一下它与Sqoop

Python+Selenium大型电商项目(京东商城)实战直播,优惠名额抢占中>>

评 论

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2018, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道