Hadoop单机模式的配置与安装

Hadoop单机模式的配置与安装

版权所有

前言:

由于Hadoop属于java程序,所以,安装Hadoop之前需要先安装jdk。

对于hadoop0.20.2的单机模式安装就需要在一个节点(一台主机)上运行5个节点。

分别是:

JobTracker:负责Hadoop的Job任务分发和管理。

TaskTracker:负责在单个节点上执行MapReduce任务。

对于Hadoop里面的HDFS的节点又有

NameNode:主节点,负责管理文件存储的名称节点

DateNode:数据节点,负责具体的文件存储节点。

由于HDFS中NameNode非常繁忙,容易产生故障。说以对于HDFS文件系统来说,需要一个节点随时给他复制编辑到名称节点NameNOde里面去。这样的一个类似于备份的节点叫做SecondaryNameNode。

所以对于Hadoop来说单机模式部署时

JobTracker

TaskTracker

NameNode

SecondaryNameNode

DateNode

这样的5个节点都只能安装在一台主机上。

很显然,在单机模式,里面数据如果自动做备份存储多份就没有意义。所以在单机模式和伪分布式模式里面数据只需要存储一份就可以了。但在完全分布式环境里面hadoop最少有三个节点(三台主机)。

完全分布式。最少要有三个节点(三台主机)

一个节点用来做:NameNode和JobTracker

一个节点用来做:SecondaryNameNode,随时用来编辑日志,完成向NameNode之间的合并。

一个节点用来做:DateNode,存储数据。

虽然三个节点组成的Hadoop并不能算完全分布模式。但已经具备了hadoop的基本构架了。随时可以增加其他节点。因此可以实现工作的节点越多,其hadoop的调度越强大。为了Hadoop能正常运行,Hadoop为每一个进程默认启动了1G的内存,当然这并不影响我们在虚拟机上模式实现。这1G的内存只是它最大能用到的是1G的内存。所以在正在的Hadoop运行时,你必须要保证Hadoop的物理资源要足够才行。

Hadoop的单机模式安装。

一般来说Hadoop都是别人编译好的版本。直接解压缩,然后过去启动就行了。

本次安装Hadoop所需要的基本工具。

hadoop-0.20.2-cdh3u4.tar.gz

jdk-7u76-linux-x64.tar.gz

注意:Hadoop的版非常多,每种版本之间差异特别大,一般每个版本都会对应特定的Jdk版本。

第一步:解压安装包到指定位置

[[email protected]]# tar -xf jdk-7u76-linux-x64.tar.gz -C /usr/gd/

[[email protected]]# tar -xf hadoop-0.20.2-cdh3u4.tar.gz -C /usr/gd/

注意:这里的/usr/gd/目录为本人已经提前创建好的目录,当然,你也可以选择自己创建好的其他目录。不过如果这里的目录改变了,下面后来的配置信息也要随着改变。

第二步,进入目录查看文件

[[email protected]]# cd /usr/gd/

[[email protected] gd]#ll

第三步:为jdk和Hadoop创建连接文件。

[[email protected] gd]#ln -s jdk1.7.0_76 java

[[email protected] gd]#ln -s hadoop-0.20.2-cdh3u4 hadoop

第四步:在/etc/profile.d/目录下配置hadoop和Jdk的环境变量

先配置java的环境变量:

[[email protected] gd]#vim /etc/profile.d/java.sh

添加如下信息:

JAVA_HOME=/usr/gd/java

JAVA_BIN=$JAVA_HOME/bin

PATH=$JAVA_BIN:$PATH

export JAVA_HOMEJAVA_BIN PATH

wq保存退出。

配置hadoop的环境变量:

[[email protected] gd]#vim /etc/profile.d/hadoop.sh

添加如下信息:

HADOOP_HOME=/usr/gd/hadoop

PATH=$HADOOP_HOME/bin:$PATH

export HADOOP_HOMEPATH

wq保存退出。

到这里为了测试刚刚配置的信息是否成功,可以重新登录一次。

[[email protected] gd]#exit

退出当前用户

然后重新登录:

第五步:检查(hadoop是否已经配置成功,查看hadoop的版本信息)

输入:

[[email protected] ~]# hadoopversion

检查java环境变量是否已经配置成功,查看java的版本信息

[[email protected] ~]#java -version

这里已经看到配置基本完成。

第六步:修改hadoop的配置文件:

进入hadoop文件夹

[[email protected] ~]# cd/usr/gd/hadoop

[[email protected]]# cd conf/

[[email protected] conf]#ll

【Masters】当前运行的为主节点,Masters定义要运行的第二名称节点。

hadoop的secondary-masters主机列表,当启动Hadoop时,其会在当前主机上启动NameNode和JobTracker,然后通过SSH连接此文件中的主机以作为备用NameNode;

【Slaves】定义每一个重节点。保证每个节点都运行tasktracke,datenode这两个进程。

Hadoop集群的slave主机列表,master启动时会通过SSH连接至此列表中的所有主机并为其启动DataNode和taskTracker进程;

【core-site.xml】用于定义系统级别的参数,如HDFS URL、Hadoop的临时目录以及用于rack-aware集群中的配置文件的配置等,此中的参数定义会覆盖core-default.xml文件中的默认配置;

【hdfs-site.xml】HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等,此中的参数定义会覆盖hdfs-default.xml文件中的默认配置;

【mapred-site.xml】HDFS的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,此中的参数定义会覆盖mapred-default.xml文件中的默认配置;

【hadoop-env.sh】用于定义hadoop运行环境相关的配置信息,比如配置JAVA_HOME环境变量、为hadoop的JVM指定特定的选项、指定日志文件所在的目录路径以及master和slave文件的位置等;

经过上面的结束,你应该大致了解了这些配置文件的作业了。接下来就要配置这些信息。

[[email protected] conf]#cat masters

[[email protected] conf]#cat slaves

我们可以看到这里都是localhost。由于本次是按照的单机模式。所以不需要修改这两个文件。

修改core-site.xml文件

[[email protected] conf]#vim core-site.xml

在这个文件中<configuration>为一个节点,专门用来给我们添加配置信息的。

在<configuration></configuration>之间添加如下信息

<property>

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

<value>/hadoop/temp</value>

</property>

<property>

<name>fs.default.name</name>

<value>hdfs://localhost:8020</value>

</property>

wq保存退出。

其中:hadoop.tmp.dir的值是指定hadoop的临时目录。

我们知道hadoop中的Map是会生成临时文件的,这里就是定义类似的临时存放文件的目录。

其中:fs.default.name是用来定义HDFS的默认名称节点路径。就是我们将来访问HDFS文件时,如果没有指定路径,就会联系这里定义的路径的主机,去联系这台主机去寻找其路径。

编辑:mapred-site.xml文件

[[email protected] conf]#vim mapred-site.xml

同样也能看到<configuration>这个接口。

添加如下信息在<configuration></configuration>之间

<property>

<name>mapred.job.tracker</name>

<value>localhost:8021</value>

</property>

wq保存退出

运行MapReduce需要为其指定一个主机作为JobTracker节点,在一个小规模的Hadoop集群中,它通常跟NameNode运行于同一物理主机。可以通过mapred.job.trakcer属性定义JobTracker监听的地址(或主机名)和端口(默认为8021),与前面的fs.default.name属性的值不同的是,这不是一个URI,而仅一个“主机-端口”组合。

在MapReduce作业运行过程中,中间数据(intermediate data)和工作文件保存于本地临时文件中。根据运行的MapReduce作业不同,这些数据文件可能会非常大,因此,应该通过mapred.local.dir属性为其指定一个有着足够空间的本地文件系统路径,其默认值为${hadoop.tmp.dir}/mapred/local。mapred.job.tracker可以接受多个以逗号分隔路径列表作为其值,并会以轮流的方式将数据分散存储在这些文件系统上,因此指定位于不同磁盘上的多个文件系统路径可以分散数据I/O。

另外,MapReduce使用分布式文件系统为各TaskTracker保存共享数据,这可以通过mapred.system.dir属性进行定义,其默认值为${hadoop.tmp.dir}/mapred/system。下面给出了一个较简单的mapred-site.xml文件示例。

编辑:hdfs-site.xml文件

[[email protected] conf]#vim hdfs-site.xml

在<configuration> </configuration>之间添加如下内容

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

wq保存退出。

HDFS进程有许多属性可以定义其工作路,如dfs.name.dir属性定义的HDFS元数据持久存储路径默认为${hadoop.tmp.dir}/dfs/name、dfs.data.dir属性定义的DataNode用于存储数据块的目录路径默认为${hadoop.tmp.dir}/dfs/data、fs.checkpoint.dir属性定义的SecondaryNameNode用于存储检查点文件的目录默认为${hadoop.tmp.dir}/dfs/namesecondary。

为了数据可用性及冗余的目的,HDFS会在多个节点上保存同一个数据块的多个副本,其默认为3个。而只有一个节点的伪分布式环境中其仅用保存一个副本即可,这可以通过dfs.replication属性进行定义。如下所示的内容即可作为最简单的hdfs-site.xml配置文件。

第七步:创建启动hadoop的用户,为其用户设置无密码访问本机。

创建hduser用户

[[email protected] /]#useradd hduser

将之前的/etc/gd/hadoop文件下的所有文件赋予hduser

[[email protected] /]#chown -R hduser.hduser /usr/gd/hadoop/

[[email protected] /]# ll/usr/gd/hadoop/

为hduser用户指定密码

[[email protected] /]#passwd hduser

在之前配置文件core-site.xml中定义了hadoop的换成文件存放目录。所以现在先创建那个目录,并赋予hduser权限。

[[email protected] /]#mkdir /hadoop/temp/ -pv

属于hduser权限

[[email protected] /]#chown -R hduser.hduser /hadoop

登录hduser并为hduser创建无密码访问本机

[[email protected] /]# su- hduser

[[email protected] ~]$ssh-keygen -t rsa -P ‘‘

[[email protected] ~]$ssh-copy-id -i .ssh/id_rsa.pub [email protected]

在这个过程中,你需要输入一次yes和一次hduser用户的密码

检查是否可以无密码访问

输入:

[[email protected] ~]$ssh localhost ‘date‘

如果没有提示你要输入密码,就证明已经设置成功。

第八步:格式化HDFS文件系统并启动hadoop

输入命令:

[[email protected] ~]$hadoop namenode -format

此时HDFS文件系统已经格式化完成。

输入命令启动hadoop

[[email protected] ~]$start-all.sh

输入命令jps查看hadoop的进程。

[[email protected] ~]$jps

到这里看见这5个进程表示hadoop已经启动完成。即单机hadoop配置启动完成。

验证:使用Hadoop做一次单词统计

在hadoop文件系统中创建一个目录test

命令:

[[email protected] ~]$hadoop fs -mkdir test

查看hadoop上的这个目录

[[email protected] ~]$hadoop fs -ls

上传/etc/profile文件到hadoop的文件系统中

[[email protected] ~]$hadoop fs -put /etc/profile test/

使用hadoop开始做单词统计读取目录为test/ 结果输出目录为testlog

[[email protected] ~]$hadoop jar /usr/gd/hadoop/hadoop-examples-0.20.2-cdh3u4.jar wordcount testtestlog

现在任务已经执行完成。

查看hadoop统计完成后输出的文件

[[email protected] ~]$hadoop fs -ls testlog

查看统计结果

[[email protected] ~]$hadoop fs -cat testlog/part-r-00000

到这里已经知道了hadoop的单机模式部署。也成功的在hadoop上执行了一次单词统计。

时间: 2024-07-28 12:39:15

Hadoop单机模式的配置与安装的相关文章

Hadoop单机模式安装

需要先添加用来运行Hadoop进程的用户组hadoop及用户hadoop. 1. 添加用户及用户组 创建用户hadoop $ sudo adduser hadoop 需要输入shiyanlou的密码:shiyanlou.并按照提示输入hadoop用户的密码. 2. 添加sudo权限 将hadoop用户添加进sudo用户组 $ sudo usermod -G sudo hadoop 四.安装及配置依赖的软件包 1. 安装openssh-server.java.rsync等 $ sudo apt-g

Spark教程-构建Spark集群-配置Hadoop单机模式并运行Wordcount(1)

安装ssh Hadoop是采用ssh进行通信的,此时我们要设置密码为空,即不需要密码登陆,这样免去每次通信时都输入秘密,安装如下: 输入“Y”进行安装并等待自动安装完成. 安装ssh完成后启动服务 以下命令验证服务是否正常启动: 可以看到ssh正常启动: 设置免密码登录,生成私钥和公钥: 在/root/.ssh中生成两个文件:id_rsa和id_rsa.pub,id_rsa为私钥,id_rsa.pub为公钥,我们将公钥id_rsa.pub追加到 authorized_keys中,因为author

3-1.Hadoop单机模式安装

Hadoop单机模式安装 一.实验介绍 1.1 实验内容 hadoop三种安装模式介绍 hadoop单机模式安装 测试安装 1.2 实验知识点 下载解压/环境变量配置 Linux/shell 测试WordCount程序 1.3 实验环境 hadoop2.7.6 Linux CentOS6终端 1.4 适合人群 本课程难度为一般,属于初级级别课程,适合具有linux基础的用户. 1.5 相关文件 https://pan.baidu.com/s/1a_Pjl8uJ2d_-r1hbN05fWA 二.H

Hadoop单机模式安装入门(Ubuntu系统)

闲来无事,突然看到关于Hadoop集群.以前也了解过,网上找过一些关于百度,谷歌等底层hadoop集群的文档,可是面对很多陌生的技术,看不太通透.所有想自己动手虚拟机试试.经常听到这么高大上的名词,Hadoop已经成为大数据的代名词.短短几年间,Hadoop从一种边缘技术成为事实上的标准.而另一方面,MapReduce在谷歌已不再显赫.当企业瞩目MapReduce的时候,谷歌好像早已进入到了下一个时代. Hadoop支持三种启动集群模式,分别是单机模式,wei分布式模式,安全分布式模式.下面我做

Hadoop单机模式安装-(1)安装设置虚拟环境

网络上关于如何单机模式安装Hadoop的文章很多,按照其步骤走下来多数都失败,按照其操作弯路走过了不少但终究还是把问题都解决了,所以顺便自己详细记录下完整的安装过程. 此篇主要介绍如何在Windows环境下设置虚拟机环境以及一些准备工作,熟悉WMware的朋友可以略过. 我所记录的笔记适合没有Linux基础的朋友跟我一起操作,同时欢迎高手参观指导. 环境约定 以下环境基于攥写时间:5th July 2015. 宿主机器:Windows 8 虚拟机环境:WMware Wrokstation 11

Hadoop单机模式安装-(2)安装Ubuntu虚拟机

网络上关于如何单机模式安装Hadoop的文章很多,按照其步骤走下来多数都失败,按照其操作弯路走过了不少但终究还是把问题都解决了,所以顺便自己详细记录下完整的安装过程. 此篇主要介绍在虚拟机设置完毕后,如何进行Ubuntu的安装. 我所记录的笔记适合没有Linux基础的朋友跟我一起操作,同时欢迎高手参观指导. 环境约定 以下环境基于攥写时间:5th July 2015. 宿主机器:Windows 8 虚拟机环境:WMware Wrokstation 11 Ubuntu版本:Ubuntu Deskt

Hadoop单机模式部署

一.Hadoop部署模式 单机模式:默认情况下运行为一个单独机器上的独立Java进程,主要用于调试环境 伪分布模式:在单个机器上模拟成分布式多节点环境,每一个Hadoop守护进程都作为一个独立的Java进程运行 完全分布式模式:真实的生产环境,搭建在完全分布式的集群环境 二.添加用户和组 $ sudo adduser hadoop                         ##创建用户hadoop $ sudo usermod -G sudo hadoop                 

虚拟机下Linux系统Hadoop单机/伪分布式配置:Hadoop2.5.2+Ubuntu14.04(半原创)

系统: Ubuntu 14.04 64bit Hadoop版本: Hadoop 2.5.2 (stable) JDK版本: JDK 1.6 虚拟机及Ubuntu安装 1. 下载并安装 VMware workstation 11 下载地址:https://my.vmware.com/web/vmware/info/slug/desktop_end_user_computing/vmware_workstation/11_0?wd=%20VMware%20workstation%2011%20&is

#hadoop#单机(伪分布)安装及测试

tips:这个部署完全在以root用户操作,系统为ubuntu14.04,使用了Oracle JDK7_u55替换原来的OpenJDK 安装过程: 安装Java: 从自己的宿主机ftp服务器下载包: cd /usr/lib/jvm wget ftp://192.168.42.110/jdk-7u55-linux-x64.tar.gz  tar xvf jdk-7u55-linux-x64.tar.gz mv jdk1.7.0_55/ java-7-sun 编辑bashrc: vi ~/.bash