大数据生态系统基础:Hadoop(一):介绍和安装

一、Hadoop 介绍      

  Apache Hadoop项目为可靠的、可扩展的分布式计算开发了开源软件。



         Apache Hadoop软件库是一个框架,它允许使用简单的编程模型在计算机集群中对大型数据集进行分布式处理。它被设计成从单个服务器扩展到数千台机器,每台机器都提供本地计算和存储。与依赖硬件交付高可用性不同。库本身的设计目的是检测和处理应用程序层的故障,因为集群中的每台计算机都有可能出现故障,所以在在计算机集群的顶部提供高可用的服务。

      该项目包括以下模块:

       Hadoop Common:支持其他Hadoop模块的公共实用程序。
       Hadoop分布式文件系统(HDFS):一个分布式文件系统,它提供对应用程序数据的高吞吐量访问。
      Hadoop YARN:作业调度和集群资源管理的框架。
      Hadoop MapReduce: 一个大型数据集的并行处理的yarn系统。


        Apache中其他Hadoop相关的项目包括:

    •  Ambari:一种基于web的工具,用于提供、管理和监视Apache Hadoop集群,其中包括对Hadoop HDFS、Hadoop MapReduce、Hive、HCatalog、HBase、Zookeeper、Oozie、Pig和Sqoop的支持。Ambari还提供了一个查看集群健康的指示板,比如热图和查看MapReduce、Pig和Hive应用程序的功能,并以一种用户友好的方式来诊断其性能特征。
    •  Avro:数据序列化系统。
    • Cassandra:一个可伸缩的多主数据库,没有单点故障。
    • Chukwa:一个用于管理大型分布式系统的数据收集系统。
    • HBase:一个可扩展的分布式数据库,支持大型表的结构化数据存储。
    • Hive:数据仓库基础设施,提供数据摘要和临时查询。
    • Mahout:一个可伸缩的机器学习和数据挖掘库。
    • Pig:一种高级的数据流语言和并行计算的执行框架。
    • Spark:Hadoop数据的快速和通用计算引擎。Spark提供了一种简单而富有表现力的编程模型,支持广泛的应用程序,包括ETL、机器学习、流处理和图形计算。
    • Tez:一种基于Hadoop Yarn的通用数据流编程框架,它提供强大而灵活的引擎来执行任意的任务,以处理批处理和交互用例的数据。Tez被用于Hadoop生态系统中的Hive、Pig和其他框架,以及其他商业软件(如ETL工具),以取代Hadoop MapReduce作为底层执行引擎。
    • Zookeeper:为分布式应用程序提供高性能的协调服务。
二、单节点集群安装
       1、目的
     本文描述了如何设置和配置单节点Hadoop安装,以便您可以使用Hadoop MapReduce和Hadoop分布式文件系统(HDFS)快速执行简单的操作。
      2、要求
      运行平台: GNU/Linux。windows 也支持,请参考https://wiki.apache.org/hadoop/Hadoop2OnWindows
      软件环境: Java SDK 1.7 。Hadoop 2.7和以后都使用 Java7。Hadoop 2.6以前的支持 Java 6
       软件工具: SSh(pdsh)
     3、下载
        下载地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/
          解压到 Home 目录。并使用 mv 将目录改为 hadoop
         
     4、 配置环境
          编辑./bash_profile 或者/etc/profile,提供 JAVA_HOME 和 HADOOP_HOME 目录,且需要增加 PATH 路径:JAVA_HOME/bin 和 HADOOP_HOME/bin、HADOOP_HOME/sbin
          export HADOOP_HOME=$HOME/hadoop
         export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
         export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native:$HADOOP_COMM    ON_LIB_NATIVE_DIR"
         export YARN_HOME=$HOME/hadoop
          export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
          export YARN_CONF_DIR=$YARN_HOME/etc/hadoop
         export HDFS_CONF_DIR=$HADOOP_HOME/etc/hadoop

        export JAVA_HOME=/Users/wangxinnian/jdk1.8

        export PATH=.:$JAVA_HOME/bin:$JAVA_HOME/lib:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH

             环境配置完毕后,使用: source  .bash_profile 或者 source /etc/profile 使之生效。运行 hadoop 即可出现用法提示,表示生效。

   5、独立启动模式
         默认情况下,Hadoop被配置为以非分布式模式运行,作为一个单一的Java进程。这对于调试非常有用。
       下面的示例复制未打包的conf目录作为输入,然后找到并显示给定正则表达式的每一个匹配项。输出被写入到给定的输出目录。
  $ mkdir input
  $ cp etc/hadoop/*.xml input
  $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0-alpha4.jar grep input output 'dfs[a-z.]+'
  $ cat output/*

    6、伪分布式操作
     Hadoop还可以在一个伪分布模式下运行,每个Hadoop守护进程在一个单独的Java进程中运行。
    执行伪分布式操作,还需要做一些配置。
    1) hadoop/ etc/hadoop/core-site.xml:
           
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>
  
  2) hadoop/ etc/hadoop/hdfs-site.xml:
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

  3) 设置 ssh 的免密登录
     首先试试 ssh localhost 是否需要密码,如果需要密码,要进行下面的操作
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  $ chmod 0600 ~/.ssh/authorized_keys

     
   4)执行
   下面都是执行本地 MapReduce
    格式化文件系统:
$ bin/hdfs namenode -format
      
    启动 NameNode 和 DataNode 服务
$ sbin/start-dfs.sh
     服务 log 在 $HADOOP_LOG_DIR  directory (defaults to  $HADOOP_HOME/logs ).
 
     NameNode的浏览器的 web 接口是:
  • NameNode - http://localhost:9870/
     创建执行MapReduce作业所需的HDFS目录:
$ bin/hdfs dfs -mkdir /user
  $ bin/hdfs dfs -mkdir /user/<username>

将输入文件复制到分布式文件系统中:

$ bin/hdfs dfs -mkdir input
  $ bin/hdfs dfs -put etc/hadoop/*.xml input
运行一些示例:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0-alpha4.jar grep input output 'dfs[a-z.]+'

检查输出文件:将输出文件从分布式文件系统复制到本地文件系统,并检查它们:
$ bin/hdfs dfs -get output output
  $ cat output/*

或者:
 
$ bin/hdfs dfs -cat output/*

停止服务使用:
$ sbin/stop-dfs.sh

5) 单节点的 YARN
 
您可以通过设置一些参数和运行ResourceManager守护进程和no需求守护进程来在伪分布模式下运行MapReduce作业。
下面的说明假设是1。~ 4。上面的步骤已经执行了。

配置:etc/hadoop/mapred-site.xml:
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

配置:etc/hadoop/yarn-site.xml:
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

启动:
$ sbin/start-yarn.sh

为ResourceManager浏览web界面;默认情况下,它是可用的:
  
  • ResourceManager - http://localhost:8088/
停止 yarn 服务:
$ sbin/stop-yarn.sh

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值