作业二

    1. 了解对比Hadoop不同版本的特性,可以用图表的形式呈现。
      Hadoop主要分为2个版本,分别为Hadoop1.0和2.0。2.0是1.0的升级版,Apache Hadoop是一款支持数据密集型分布式应用并以Apache 2.0许可协议发布的开源软件框架,被称为社区版Hadoop。他是免费的,而且资料真实准确,但是生态环境比较复杂。
    2. Hadoop生态的组成、每个组件的作用、组件之间的相互关系,以图例加文字描述呈现。

      HBase:

      Google Bigtable的开源实现

      列式数据库

      可集群化

      可以使用shell、web、api等多种方式访问

      适合高读写(insert)的场景

      HQL查询语言

      NoSQL的典型代表产品 

      Hive:

      数据仓库工具。可以把Hadoop下的原始结构化数据变成Hive中的表

      支持一种与SQL几乎完全相同的语言HiveQL。除了不支持更新、索引和事务,几乎SQL的其它特征都能支持

      可以看成是从SQL到Map-Reduce的映射器

      提供shell、JDBC/ODBC、Thrift、Web等接口

      Zookeeper:

      Google Chubby的开源实现

      用于协调分布式系统上的各种服务。例如确认消息是否准确到达,防止单点失效,处理负载均衡等

      应用场景:Hbase,实现Namenode自动切换

      工作原理:领导者,跟随者以及选举过程

      Sqoop:

      用于在Hadoop和关系型数据库之间交换数据

      通过JDBC接口连入关系型数据库

      Chukwa:

      架构在Hadoop之上的数据采集与分析框架

      主要进行日志采集和分析

      通过安装在收集节点的“代理”采集最原始的日志数据

      代理将数据发给收集器

      收集器定时将数据写入Hadoop集群

      指定定时启动的Map-Reduce作业队数据进行加工处理和分析

      Pig:

      Hadoop客户端

      使用类似于SQL的面向数据流的语言Pig Latin

      Pig Latin可以完成排序,过滤,求和,聚组,关联等操作,可以支持自定义函数

      Pig自动把Pig Latin映射为Map-Reduce作业上传到集群运行,减少用户编写Java程序的苦恼 

      Avro:

      数据序列化工具,由Hadoop的创始人Doug Cutting主持开发 

      用于支持大批量数据交换的应用。支持二进制序列化方式,可以便捷,快速地处理大量数据 

      动态语言友好,Avro提供的机制使动态语言可以方便地处理 Avro数据。

       Thrift接口

      Cassandra:

      NoSQL,分布式的Key-Value型数据库,由Facebook贡献

      与Hbase类似,也是借鉴Google Bigtable的思想体系

      只有顺序写,没有随机写的设计,满足高负荷情形的性能需求

    3. 官网学习Hadoop的安装与使用,用文档的方式列出步骤与注意事项。
      http://www.apache.org/

      →Projects

      →Projects List

      Hadoop 

      答:1、创建Hadoop用户

       

      创建用户的命令是useradd,设置密码的命令为passwd。

       

              2、JAVA安装

       

      对于Ubuntu本身,系统上可能已经预装了JAVA,它的JDK版本为openjadk,路径为“/usr/lib/jvm/default-java”,需要配置的JAVA_HOME环境变量就可以设置这个值。

       

             3、SSH登录权限设置

       

      让名称节点生成自己的SSH密匙,命令如下:

       

      ssh-keygen -t rsa -P ''

       

      生成之后,需要将它的公共密匙发送给集群中的其他机器。我们可以将id_dsa.pub中的内容添加到需要匿名登录的机器的“~/ssh/authorized_keys”目录下,然后,在理论上名称节点就可以无密码登录这台机器了。对于无密码登录本机而言,可以采用以下的代码:

       

      cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

       

      这时就可以通过ssh localhost命令来检测一下是否需要输入密码。

       

             4、安装单机Hadoop

       

      解压玩hadoop文件夹后,在hadoop文件夹中,“etc/hadoop”目录下面放置了配置文件。我们只需要将JAVA_HOME环境变量指定到本机的JDK目录就可以了,命令如下:

       

       $export JAVA_HOME=/user/lib/jvm/default-java

       

            5、Hadoop伪分布式安装

       

      我们需要修改core-site.xml、hdfs-site.xml这两个文件

       

      修改后的core-site.xml文件如下:

       

      <configuration>

       

         <property>

       

           <name>hadoop.tmp.dir</name>

       

           <value>file:/usr/local/hadoop/tmp</value>

       

           <description>Abase for other temporary directories.</description>

       

        </property>

       

      </configuration>

       

      修改后的hdfs-site.xml文件如下:

       

      <configuration>

       

         <property>

       

           <name>dfs.replication</name>

       

           <value>1</value>

       

        </property>

       

         <property>

       

           <name>dfs.namenode.name.dir</name>

       

           <value>file:/usr/local/hadoop/tmp/dfs/name</value>

       

        </property>

       

         <property>

       

           <name>dfs.datanode.data.dir</name>

       

           <value>file:/usr/local/hadoop/tmp/dfs/data</value>

       

        </property>

       

      </configuration>

       

      配置完成后,需要初始化文件系统,执行命令如下:

       

      $./bin/hadoop namenode -format

       

      当看到运行结果为“Exiting with status 0”之后,就说明初始化成功。

       

posted @ 2020-09-19 13:37  胡啊六  阅读(143)  评论(0)    收藏  举报