大数据时代之hadoop(一):hadoop安装,时代hadoop


 

 

1、hadoop版本介绍

 

0.20.2版本以前(不含该版本)的配置文件都在default.xml中。

0.20.x以后的版本不含有eclipse插件的jar包,由于eclipse的版本不一,所以就需要自己编译源码生成对应的插件。

0.20.2——0.22.x版本的配置文件集中在conf/core-site.xml、 conf/hdfs-site.xml  和 conf/mapred-site.xml. 中

0.23.x 版本有添加了yarn技术,配置文件集中在  conf/core-site.xml, conf/hdfs-site.xml, conf/yarn-site.xml and conf/mapred-site.xml.这4个文件上。

 

由于0.23.x版本的变化比较大,添加了新的技术,让很多基于hadoop的一些插件难以兼容,如hive、hbase、pig等都基于0.23.x以前的版本。

所以apache就开始统一版本号,这样从版本号就可以区分hadoop的功能。

0.22.x 直接升级到1.0.0 

0.23.x 直接升级到2.0.0

这样就把hadoop分为两个版本 1和2 

1版本:主要基于原来的技术的升级和发展,同时支持其它技术的支持。如果想用hbase、hive等技术就只有选择 版本1

2版本:主要基于新技术的推广和发展,如果只是基于hadoop开发,这个是一个很好的选择。

 

目前官网上下载hadoop处描述:

Download

  • 1.2.X - current stable version, 1.2 release
  • 2.4.X - current stable 2.x version
  • 0.23.X - similar to 2.X.X but missing NN HA.

 

2、hadoop安装及模式

 

目前,我在实验环境中使用的是hadoop-0.20.2,所以以后我都是基于这个版本进行描述。

Hadoop各个组件的配置在文件夹conf下。早期的hadoop采用一个配置文件hadoop-site.xml来配置Common,HDFS和MapReduce组件,从0.20.0版本开始,分为三个文件。

                 core-site.xml:配置Common组件的属性。
          hdfs-site.xml:配置HDFS属性。
          mapred-sit.xml:配置MapReduce属性。

 

2.1、Hadoop运行模式

Hadoop的运行模式有以下三种:

             独立模式(standalone或local mode):无需任何守护进程(daemon),所有程序都在单个JVM上执行。主要用在开发阶段。默认属性就是为本模式所设,所以不需要额外的配置。
             伪分布式模式(pseudo-distributed model):Hadoop守护进程运行在本地机器上,模拟一个小规模的集群。
             全分布模式(full distributed model):Hadoop守护进程运行在一个集群上。

 

不同模式关键配置属性

组件名称

属性名称

独立模式

伪分布模式

全分布模式

Common

fs.default.name

file:/// (默认)

hdfs://localhost:9000

hdfs://namenode:9000

HDFS

dfs.replication

N/A

1

3 (默认)

MapReduce

mapred.job.tracker

local (默认)

localhost:9001

jobtracker:9001

 

2.2、本机模式安装


 由于默认属性专为本模式所设定,且无需运行任何守护进程,因此本模式除了把dfs.replication值设为1外,无需任何别的操作。

 

 测试:

进入$HADOOP_HOME目录下执行以下命令来测试安装是否成功 
  

   $ mkdir input 
   $ cp conf/*.xml input 
   $ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 
   $ cat output/*


 

   输出:  
         1    dfsadmin

 

 经过上面的步骤,如果没有出现错误就算安装成功了。

 


2.3、伪分布式模式安装步骤

安装步骤:

          1、设置环境变量(JAVA_HOME,path,HADOOP_HOME,CLASSPATH)
           2、修改hadoop配置文件(core-site.xml,hdfs-site.xml,mapred-site.xml)
           3、设置ssh无密码登陆
           4、格式化文件系统  hadoop namenode -format
           5、启动守护进程   start-all.sh
           6、停止守护进程

 

其中第二步实例:

<configuration> 
  <property> 
    <name>fs.default.name</name> 
    <value>localhost:9000</value> 
  </property> 
  <property> 
    <name>mapred.job.tracker</name> 
    <value>localhost:9001</value> 
  </property> 
  <property> 
    <name>dfs.replication</name> 
    <value>1</value> 
  </property> 
</configuration> 


 

 启动后可以通过网页方式查看NameNode和JobTracker状态
 NameNode -
http://localhost:50070/
 JobTracker -
http://localhost:50030/


 测试:


  复制文件到分布式文件系统上 
   

$ bin/hadoop fs -put conf input 


  运行测试 
   

$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 


获取测试程序的执行结果

$ bin/hadoop fs -cat output/*

 

  输出:
   

   3 dfs.class
   2 dfs.period
   1 dfs.file
   1 dfs.replication
   1 dfs.servers
   1 dfsadmin
   1 dfsmetrics.log


  
  经过上面的步骤,如果没有出现错误就算安装成功了。

 

2.4、全分布模式安装步骤

安装步骤:

            1、设置环境变量(JAVA_HOME,path,HADOOP_HOME,CLASSPATH)
            2、修改hadoop配置文件(core-site.xml,hdfs-site.xml,mapred-site.xml,masters,slaves)
            3、设置ssh无密码登陆
            4、格式化文件系统  hadoop namenode -format
            5、启动守护进程   start-all.sh
            6、停止守护进程

 

 启动后可以通过网页方式查看NameNode和JobTracker状态
 NameNode -
http://namenode:50070/
 JobTracker -
http://jobtracker:50030/


 注意:
        在每个机器上的相同位置分别安装hadoop,且用户名相同。


3、eclipse插件安装


 eclipse hadoop插件,是为了快速开发mapreduce程序,提供了

         mapreduce location视图,用于设置mapreduce变量;

         windows->preferences 增加了设置hadoop安装位置设置栏;

         在Project Explore视图里面增加了DFS Locations项目,能够查看hdfs文件系统的内容,并能够上传下载文件;

         new project 里面增加了mapreduce project;

        增加了run on hadoop平台功能。

 


需要注意的是hadoop自带的contrib\eclipse-plugin\hadoop-0.20.2-eclipse-plugin.jar过时了,需要从网上下载一个新的,否则在运行mapreduce程序时没有反应。

 

 

 


hadoop 怎实现大数据

Hadoop本身是分布式框架,如果在hadoop框架下,需要配合hbase,hive等工具来进行大数据计算。如果具体深入还要了解HDFS,Map/Reduce,任务机制等等。如果要分析还要考虑其他分析展现工具。

大数据还有分析才有价值

用于分析大数据的工具主要有开源与商用两个生态圈。开源大数据生态圈:1、Hadoop HDFS、HadoopMapReduce, HBase、Hive 渐次诞生,早期Hadoop生态圈逐步形成。2、. Hypertable是另类。它存在于Hadoop生态圈之外,但也曾经有一些用户。3、NoSQL,membase、MongoDb商用大数据生态圈:1、一体机数据库/数据仓库:IBM PureData(Netezza), OracleExadata, SAP Hana等等。2、数据仓库:TeradataAsterData, EMC GreenPlum, HPVertica 等等。3、数据集市:QlikView、 Tableau 、 以及国内的Yonghong Data Mart 。
 

有人说,大数据时代,最精髓的IT技术是Hadoop ,Yarn,Spark,详解?

  Hadoop
  它是一个分布式系统基础架构,由Apache基金会所开发。
  用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
  Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

  Yarn
  它是Hadoop2.0的升级版。
  Yarn 的优点:
  这个设计大大减小了 JobTracker(也就是现在的 ResourceManager)的资源消耗,并且让监测每一个 Job 子任务 (tasks) 状态的程序分布式化了,更安全、更优美。
  在新的 Yarn 中,ApplicationMaster 是一个可变更的部分,用户可以对不同的编程模型写自己的 AppMst,让更多类型的编程模型能够跑在 Hadoop 集群中,可以参考 hadoop Yarn 官方配置模板中的 mapred-site.xml 配置。
  对于资源的表示以内存为单位 ( 在目前版本的 Yarn 中,没有考虑 cpu 的占用 ),比之前以剩余 slot 数目更合理。
  老的框架中,JobTracker 一个很大的负担就是监控 job 下的 tasks 的运行状况,现在,这个部分就扔给 ApplicationMaster 做了,而 ResourceManager 中有一个模块叫做 ApplicationsMasters( 注意不是 ApplicationMaster),它是监测 ApplicationMaster 的运行状况,如果出问题,会将其在其他机器上重启。
  Container 是 Yarn 为了将来作资源隔离而提出的一个框架。这一点应该借鉴了 Mesos 的工作,目前是一个框架,仅仅提供 java 虚拟机内存的隔离 ,hadoop 团队的设计思路应该后续能支持更多的资源调度和控制 , 既然资源表示成内存量,那就没有了之前的 map slot/reduce slot 分开造成集群资源闲置的尴尬情况。

  Spark
  Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。

他们三个其实也可以说Hadoop发展的几个阶段,目前Spark非常火,是用Scala语言写的。
 

相关内容