Hadoop学习(1)

现在自己处于找工作的阶段,而现在我中意的职位有数据分析师,数据挖掘师,还有商业智能,这三者都是通过分析数据,挖掘数据中的价值而作为途径的。所以需要数据挖掘的知识和熟悉数据分析的工作


现在数据已经完全已经超出了人们的理解范围,各种各样的大数据,如果要分析数据,就要做大数据平台下的数据分析,而现在大数据平台搞的最好的就是Hadoop,其实我已经接触Hadoop已经有二年半了,但是对于什么是Hadoop,Hadoop是做什么,还有Hadoop要怎么用,Hadoop有哪些优缺点还是不是很熟悉,现在就系统的记录一下


Hadoop是分布式数据和计算框架,最核心的部分就是大数据的存储HDFS和大数据的处理MapReduce。Hadoop提供了一个稳定的,高容错的,高吞吐量的可自由扩展的框架

作为一个分布式的系统,首先要做的就是稳定。因为Hadoop可以在商业电脑上部署,所以可以想象机器的故障率很高的,在这样的情况下,hadoop提供了自己的解决方案。首先是存储方面,在默认情况下,数据存储到HDFS的时候,都会有备份,一般默认是备份3份,这三份,三份备份到不同的机架,当某台电脑出现问题的时候,可以重新备份,同时当一个电脑坏掉后,需要数据的电脑可以从备份的电脑读取数据。另外还有一个好处,就是当要读取某个数据块的时候,可以选取离着自己最近的数据块读取,这样的话也能加快传输时间。第二呢,就是在计算机处理的时候,当某个任务出现问题的时候,hadoop有个Jobtracker,这个可以把出现问题的task分配到其他的电脑执行,保证结果的完整i系那个,同时当某个电脑一直执行有问题的时候,将task分配给空闲的电脑,谁先执行完,就直接作为结果

Hadoop的两个核心都是来自于谷歌的技术,HDFS来自谷歌的GFS,MapReduce就是谷歌04年的那篇论文,所以说谷歌是大牛了。


HDFS在整个系统里面有一个NameNode和很多个DataNode,为什么说整个系统是灵活的呢,因为只要将新的机器写入到slaves中,当启动的时候,nameNode可以自动找到这个机器,加入到整个的系统中。因为只有一个NameNode,所以有常见的系统的通病,就是当NameNode死掉的时候,整个系统就会挂掉,为了避免出现这样的情况发生,设计出了一个新的部分,叫做SecondNameNode,这个相当于NameNode的备份,所以状态记录一直落后于NameNode

MapReduce是一个编程模型,灵感来自于函数式编程,就只有两个函数Map函数和Reduce函数,如果还要加上一个的话还剩下就是Combiner函数。我第一个程序的测试就是WordCount,这是一个很简单的程序,但是我自己搞了好久才搞定的,有的时候会有一些小的bug,一般也是用WordCount解释MapReduce模型,挺生动形象的,这里我就不解释了,这个模型很容易找到的。

MapReduce运行job的时候,有两种tracker,一种是Jobtracker,一种是Tasktracker,Task又分为Map Task还有Reduce Task,一个完整的Job是有很多Task构成的

现在大家简单的把数据分为结构化数据,非结构化数据,半结构化数据。结构化的数据很好处理,RDB就是用来处理这个的,但是对于非结构化和半结构化的,关系型数据库就不行了,这时候就是Hadoop出场了。半结构化比如说文档呀,简历呀等等,非结构化就是图片,视频之类的。

其实hadoop家族还有很多的东西,比如说数据仓库的Hive,大数据表HBase,还有Pig,Zookeeper,这些我都没有用过,以后我会慢慢的实验的

猜你喜欢

转载自blog.csdn.net/wjcquking/article/details/44568207