hadoop安装教程

 

Hadoop的优势

1)高可靠性:因为Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。

2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。

3) 高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。

4)高容错性:自动保存多份副本数据,并且能够自动将失败的任务重新分配。

 

Hadoop组成

1)Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。

2)Hadoop MapReduce:一个分布式的离线并行计算框架。

3)Hadoop YARN:作业调度与集群资源管理的框架。

4)Hadoop Common:支持其他模块的工具模块。

 

     2.1  HDFS(Hadoop Distributed File System)架构概述

      1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。

  2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。

  3)Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。

 

    2.2 YARN架构概述

  1)ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;

  2)NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;

  3)ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。

  4)Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。

 

  2.3 MapReduce架构概述

  MapReduce将计算过程分为两个阶段:Map和Reduce

  1)Map阶段并行处理输入数据

  2)Reduce阶段对Map结果进行汇总  

配置Hadoop环境变量

首先去官网下载hadoop压缩包 点击打开链接

将下载好的hadoop压缩包和jdk压缩包一样上传到Linux系统,用命令解压的到目标文件夹:

tar -xvf hadoop-2.7.3.tar.gz -C ~/training/

解压好之后,进到解压的目录下,使用命令pwd列出文件所在的目录,copy一下:

之后 使用vi命令: vi ~/.bash_profile:

HADOOP_HOME="/root/training/hadoop-2.7.3" export HADOOP_HOME PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH export PATH

使用source ~/.bash_profile 使命令生效

搭建Hadoop本地模式:

Hadoop环境分为三种模式,一种是本地模式,一种是伪分布式,还有一种是全分布式。 伪分布式一般适用于开发,生产环境上是全分布式,伪分布式一台机器就可以了,但是全分布式至少3台机器。

如果想搭建本地模式很简单只需要改一个文件,进入/root/training/hadoop-2.7.3/etc/hadoop 这个个路径下,

vi hadoop-env.sh,修改里面的export JAVA_HOME="" 指向你jdk的路径即可

如下:

 

顺便介绍一个命令,如果你不记得你的JAVA_HOME的地址,可以用一个命令查看:echo $JAVA_HOME

 

最后各式一下hadoop, 输入命令: hdfs namenode -format 即可

最后 start-all.sh即可

 伪分布式环境搭建

有了上面的本地模式,搭建伪分布式模式就相对简单的多:只需要配置/root/training/hadoop-2.7.3/etc/hadoop这个目录下的的文件即可:

(1) hadoop-env.sh

这个文件中的jdk的安装路径,在上面的本地模式已经配置过。

(2) hdfs-site.xml

<property> 
     <name>dfs.replication</name>
     <value>1</value>
 </property>

这个属性设置的是HDFS文件的副本个数,默认为因为我们是伪分布式,只有一台机器,nameNode 和DataNode都在一台机器上,所以设置为1.

(2)core-site.xml

<property> 
    <name>fs.defaultFS</name> 
    <value>hdfs://localhost:9000</value> 
</property> 
<property> 
    <name>hadoop.tmp.dir</name> 
    <value>/root/training/hadoop-2.7.3/tmp</value> 
</property>

这两个参数,第一个设置的是HDFS的访问接口,第二个是HDFS的存放目录

(3)mapred-site.xml

这个文件是不存在的,但是有这个文件mapred-site.xml.template这个文件,我们可以复制一个:

 cp mapred-site.xml.template mapred-site.xml

这样在里面添加: 这个表示的是MapReduce的运行环境

<property> 
    <name>mapreduce.framework.name</name> 
    <value>yarn</value> 
</property>

(4)yarn-site.xml

<property> 
    <name>yarn.resourcemanager.hostname</name> 
    <value>localhost</value> 
</property> <property> 
    <name>yarn.nodemanager.aux-servsuoyuices</name> 
    <value>mapreduce_shuffle</value> 
</property>

第一个是yarn的主节点,第二个表示MapReduce的运行方式

配置完之后:hdfs namenode -format

start-all.sh

即可启动hadoop

输入命令jps,列出所有的进程如下:

 

全分布式:

全分布式至少需要3台机器,我们以3台机器为例,一台运行NameNode,另外两台运行DataNode

配置起来跟伪分布式差不多需要更改几处文件

hdfs-site.xml

<property> 
    <name>dfs.replication</name> 
    <value>2</value> 
</property>

数据的副本数就不要是1了,改成2

添加另外两台dataNode,需要更改文件slaves:

 

这个里面原来默认就是你本机,需要将localHost删除,添加你的另外两台机器的ip即可,这台机器作为主机主节点运行NameNode,其他两台机器运行DataNode

三台机器都要这么配置那就太麻烦了,配置好了一个之后可以copy到另外的机器:

scp -r hadoop-xx root@ip:/root/xxx/

这个命令的含义就是将hadoop-xx 这个文件copy到主机ip上,名字是root。:后面是路径

 

                                                                                                                                                                                                                                 

                                                                      

                                                                              欢迎关注,一起学习大数据!

下周kafka专场,欢迎关注公众号,获得最新信息!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章