Hadoop1.2完全分布式安装与配置

一、Hadoop介绍

Hadoop是一个能够对大量数据进行分布式处理软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。

Hadoop由两部分组成,分别是分布式文件系统(HDFS)和分布式计算框架MapReduce。其中分布式文件系统(DFS)主要用于大规模数据的分布式存储,而MapReduce则构建在分布式文件系统之上,对于存储在分布式文件系统中的数据进行分布式计算。

优点:

1.高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。

2.高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

3.高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

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

5.低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。

1、HDFS架构图

HDFS的架构总体上采用了m/S(master/slave)架构,主要有以下几个组件组成:Client、NameNode、Secondary NodeNode和DataNode。

 (1)Client

    Client(用户)通过NameNode和DataNode交互访问HDFS中的文件。Client提供一个类似POSIX的文件系统接口工用户调用。

 (2)NameNode

    整个Hadoop集群中只有一个NameNode.它是整个系统的中枢,它负责管理HDFS的目录树和相关文件 元数据信息。这些信息是以“fsimage(HDFS元数据镜像文件)和Editlog(HDFS文件改动日志)两个文件形式存放在本地磁盘,当HDFS重启时冲洗构造出来的。NameNode还负责监控各个DataNode的健康状态,一旦发现某个DataNode损坏,则将DataNode移出HDFS并重新备份其上面的数据。

 (3)Secondary NameNode

   Secondary Namenode 最重要的任务并不是为NameNode元数据进行热备份,而是定期合并fsimage和edits日志,并传输给NameNode,为了减轻NameNode压力,NameNode自己并不会合并fsimage和edits,并将文件存储到磁盘上,而是交由Secondary NameNode完成。

 (4)DataNode

   每个Slave节点上安装一个DataNode,它负责实际的数据存储,并将数据信息定期汇报给NameNode。DataNode以固定大小的block为基本单位组织文件内容,block默认大小为64MB(GFS也是64MB)。当用户上传一个大于64MB的文件时,该文件会被切成若干个block,分别存储到不同的DataNode(更容易分布式处理);同时为了数据可靠,会将同一个block以流水线的方式写到若干个(配置中默认为3)不同的DataNode上。

JobTracker:hadoop的Map/Reduce调度器,负责与TackTracker通信分配计算任务并跟踪任务进度。

TaskTracker:hadoop调度程序,负责Map,Reduce任务的具体启动和执行。

2、环境描述:

操作系统:CentOS6.3_x64 IP地址
MASTER:Namenode、jobtracker 192.168.0.202

SLAVE1:Datanode、tasktracker

SLAVE2:Datanode、tasktracker


192.168.0.203

192.168.0.204

配置/etc/hosts记录,主机名相互ping通。
MASTER.COM 192.168.0.202

SLAVE1.COM

SLAVE2.COM


192.168.0.203

192.168.0.204

3、Hadoop组件介绍

Hadoop两个组件 Hadoop两个节点 Mapreduce两个引擎
HDFS:分布式文件系统存储 Name Node:集群中仅一个,提供数据服务,记录存储数据目录分布信息、分块信息 job trackers
Mapreduce:海量数据分析计算 Data Node:为HDFS提供存储数据块 task trackers

4、安装前准备

关闭IPTABLES和SELinux:


1

2

service iptables stop

chkconfig iptables off


1

2

vi /etc/selinux/config

SELINUX=disabled  #修改为disabled,重启

三个节点创建相同的用户hadoop,Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;2个Salve机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行;在Hadoop启动以后,Namenode是通过SSH来启动和停止各个datanode上的各种守护进程的,所以就必须要配置无密码登陆。

二、配置每台java环境


1

2

tar zxvf jdk-7u17-linux-x64.tar.gz

mv jdk-7u17-linux-x64 /usr/local/jdk

添加环境变量:


1

2

3

4

5

6

7

vi /etc/profile

JAVA_HOME=/usr/local/jdk

PATH=$PATH:$JAVA_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export JAVA_HOME CLASSPATH PATH

source /etc/profile

java --version #显示版本则配置成功

三、创建用户和配置密钥对认证

1.三个节点都要创建hadoop用户,而且uid一样并设置密码


1

2

useradd -u 600 hadoop

passwd hadoop

2.登陆到master创建密钥对


1

2

3

4

su - hadoop

ssh-keygen -t rsa #一直回车

ls /home/hadoop/.ssh

id_rsa id_rsa.pub #生成一对密钥

3.登陆两台slave创建.ssh目录


1

mkdir /home/hadoop/.ssh

4.登录master将公钥上传到两台slave并重命名为authorized.keys


1

scp /home/hadoop/.ssh/id_rsa.pub root@192.168.0.203/204:/home/hadoop/.ssh/authorized_keys

5.用root登陆两台slave修改ssh启用密钥对认证


1

2

3

4

5

6

7

8

vi /etc/ssh/sshd_config

RSAAuthentication yes # 启用 RSA 认证

PubkeyAuthentication yes # 启用公钥私钥配对认证方式

AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径

chmod 700 /home/hadoop/.ssh #必须设置700权限

chmod 600 /home/hadoop/.ssh/authorized_keys

chown hadoop:hadoop -R /home/hadoop/.ssh

service sshd restart

6.验证登陆


1

ssh root@192.168.0.203/204 #不用输入密码直接登陆两台slave上

四、安装Hadoop并将配置完整复制到slave机器上

1.下载:http://www.apache.org/dist/hadoop/core/hadoop-1.2.0/


1

2

tar zxvf hadoop-1.2.0.tar.gz

mv hadoop-1.2.0 /usr/local/hadoop

2.为了方便,使用hadoop命令或者start-all.sh等命令,添加环境变量:


1

2

3

4

5

6

vi /etc/profile

HADOOP_HOME=/usr/local/hadoop

PATH=$PATH:$HADOOP_HOME/bin

export HADOOP_HOME

source /etc/profile #生效变量

chown -R hadoop.hadoop /usr/local/hadoop #设置hadoop所属用户

五、修改集群配置(hadoop/conf)

1.配置masters和slaves主从节点

vi master:去掉localhost,加入master机器的IP:192.168.0.202

vi slaves:去掉localhost,加入slave所有机器的IP:192.168.0.203 192.168.0.204

2.vi hadoop-env.sh


1

export JAVA_HOME=/usr/local/jdk #去掉注释,修改jdk路径

3.vi core-site.xml


1

2

3

4

5

6

7

8

9

10

11

12

13

14

<configuration>

<property>

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

 <value>hdfs://192.168.0.202:9000</value>

</property

<property>

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

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

</property>

<property>

 <name>fs.checkpoint.period</name>

 <value>60</value>

</property>

</configuration>

参数说明:

fs.default.name: 主节点名字和端口

hadoop.tmp.dir:存放master临时文件,需要手动创建,以后不能删除,不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。

fs.checkpoint.period: snn检查nn日志的时间周期,这里是60秒,生产环境建议12小时

4.vi mapred-site.xml


1

2

3

4

5

6

<configuration>

<property>

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

 <value>192.168.0.202:9001</value>

</property>

</configuration>

参数说明:

mapred.job.tracker:master的主机(或者IP)和端口

5.vi hdfs-site.xml


1

2

3

4

5

6

7

8

9

10

11

12

13

14

<configuration>

<property>

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

 <value>/usr/local/hadoop/hdfs/data1,/usr/local/hadoop/hdfs/data2</value>

</property>

<property>

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

 <value>/usr/local/hadoop/name1,/usr/local/hadoop/name2</value>

</property>

<property>

 <name>dfs.replication</name>

 <value>2</value>

</property>

</configuration>

参数说明:

dfs.data.dir:DataNode存放块数据的本地文件系统路径

dfs.name.dir:NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。

dfs.replication:数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。

注意:

此处的name1、name2、data1、data2目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有问题。

配置结束,使用scp命令把配置好的hadoop文件夹拷贝到其他集群的机器中,并且保证上面的配置对于其他机器而言正确,例如:如果其他机器的Java安装路径不一样,要修改conf/hadoop-env.sh


1

scp -r /usr/local/hadoop/ root@slave1/2.com:/usr/local/hadoop

六、启动hadoop

1.先格式化一个新的分布式文件系统(hadoop namenode -format)

2.启动hadoop节点(start-all.sh)

执行完后可以到master机器上到/usr/local/hadoop/hdfs/data1、/usr/local/hadoop/hdfs/data2、/usr/local/hadoop/name1和/usr/local/hadoop/name2四个目录。在主节点master上面启动hadoop,主节点会启动所有从节点的hadoop。

3.关闭hadoop节点

stop-all.sh

主节点关闭hadoop,主节点会关闭所有从节点的hadoop。Hadoop守护进程的日志写入到logs下。

七、测试

1.查看端口是否开启

netstat -tupln | grep 9000

netstat -tupln | grep 9001

2.访问master(NameNode)和slave(JobTracker)启动是否正常http://192.168.0.202:50070和50030

3.jps查看守护进程是否运行

master显示:Job Tracker JpsSecondaryNameNod NameNode

slave显示:DataNode Jps TaskTracker

4.查看集群状态统计信息(hadoop dfsadmin -report)

master和slave输入信息:

八、常用命令


1

2

3

4

5

6

7

8

hadoop dfs -ls #列出HDFS下文件

hadoop dfs -ls in #列出HDFS下某个文档中的文件

hadoop dfs -put test.txt test #上传文件到指定目录并且重新命名,只有所有的DataNode都接收完数据才算成功

hadoop dfs -get in getin #从HDFS获取文件并且重新命名为getin,同put一样可操作文件也可操作目录

hadoop dfs -rmr out #删除HDFS上的out目录

hadoop dfs -cat in/* #查看HDFS上in目录的内容

hadoop dfsadmin -safemode leave #退出安全模式

hadoop dfsadmin -safemode enter #进入安全模式

九、添加一个新的节点

1.在新加的节点上安装hadoop,

2.修改hadoop/conf/master文件,加入 NameNode主机名,

3.在NameNode节点上修改hadoop/conf/slaves文件,加入新加节点主机名,

4.建立到新加节点无密码的SSH连接

5.运行启动命令:start-all.sh

6.http://master.node:50070,查看新增加的DataNode

时间: 2024-11-18 17:49:20

Hadoop1.2完全分布式安装与配置的相关文章

Hadoop2.3完全分布式安装与配置

一.Hadoop基本介绍 Hadoop优点 1.高可靠性:Hadoop按位存储和处理数据 2.高扩展性:Hadoop是在计算机集群中完成计算任务,这个集群可以方便的扩展到几千台 3.高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度快 4.高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配 5.低成本:Hadoop是开源的,集群是由廉价的PC机组成 Hadoop架构和组件 Hadoop是一个分布式系统基础架构,底层是HDFS(

ZooKeeper完全分布式安装与配置

Apache ZooKeeper是一个为分布式应用所设计开源协调服务,其设计目是为了减轻分布式应用程序所承担的协调任务.可以为用户提供同步.配置管理.分组和命名服务. 1.环境说明 在三台装有centos6.5(64位)服务器上安装ZooKeeper,官网建议至少3个节点,本次实验3台 (主机数:3(要求3+,且必须是奇数,因为ZooKeeper选举算法)). 需要提前安装jdk,选择版本是jdk-8u91-linux-x64. 2.配置主机名和ip映射关系 ZooKeeper集群所有结点作为一

Mahout学习之Mahout简介、安装、配置、入门程序测试

原文地址:http://blog.csdn.net/aaronhadoop/article/details/24577221 一.Mahout简介 查了Mahout的中文意思--驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了... 附logo: (就是他,骑在象头上的那个Mahout)  步入正文啦:        Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现.分类.聚

《Hadoop实战第2版》——2.1节在Linux上安装与配置Hadoop

2.1 在Linux上安装与配置Hadoop 在Linux上安装Hadoop之前,需要先安装两个程序: 1)JDK 1.6(或更高版本).Hadoop是用Java编写的程序,Hadoop的编译及MapReduce的运行都需要使用JDK.因此在安装Hadoop前,必须安装JDK 1.6或更高版本. 2)SSH(安全外壳协议),推荐安装OpenSSH.Hadoop需要通过SSH来启动Slave列表中各台主机的守护进程,因此SSH也是必须安装的,即使是安装伪分布式版本(因为Hadoop并没有区分开集群

hadoop2.6完全分布式安装HBase1.1

对于全分布式的HBase安装,需要通过hbase-site.xml文档来配置本机的HBase特性,由于各个HBase之间通过zookeeper来进行通信,因此需要维护一组zookeeper系统,关于zookeeper的安装使用,参考<hadoop2.6完全分布式安装zookeeper3.4.6> 关于HBase的介绍,可以看这里<HBase简介> 1.安装Hbase (1)下载hbase版本 下载地址:http://www.apache.org/dyn/closer.cgi/hba

完全分布式安装HBase 安装Hive远程模式(mysql)]【图解】

首先是HBase的完成分布式安装.这次部署的环境是Hadoop-1.2.1+hbase- 0.98.X.因为这个版本的HBase是直接对应hadoop-1.2.1,故也就省去了覆盖jar包的步骤以及排除了覆盖带来的不稳定性.OK,下载后解压,进入conf目录,配置hbase-env.sh文件.如图.这里HBASE_CLASSPATH是指向hadoop的conf目录的,这点需要注意. 下面是打开zookeeper. 接下来是配置hbase-site.xml.这里的HDFS文件系统中的hbase目录

git教程(二)--安装和配置git

转载:http://blog.csdn.net/gatieme/article/details/50586476 前言 GIT跟SVN一样有自己的集中式版本库或服务器.但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库.可以这样说,如果你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然能够提交文件,查看历史版本记录,创建项目分支等.对一些人来说,这好像没多大用处,但当你突然遇到没有网络的

Windows 2000活动目录的安装与配置

window 理解了活动目录的原理之后,现在我们就可以进行活动目录的安装与配置了,活动目录的安装配置过程并不是很复杂,因为WIN2K中提供了安装向导,只需按照提示一步步按系统要求设定即可.但安装前的准备工作显得比较复杂,只有充分理解了活动目录的前提下才能正确地安装配置活动目录.下面就详细地介绍一下活动目录的安装与配置及其准备了. 一.活动目录的安装前的准备 在前面我们知道"活动目录"是整个WIN2K系统中的一个关键服务,它不是孤立的,它与许多协议和服务有着非常紧密和关系,还涉及到整个W

安装和配置 IBM Operational Decision Management 黄金拓扑

引言 本文将指导您完成 IBM Operational Decision Management (ODM) V8 部署环境的安装和配置 .本文将介绍理解高度可用的.可伸缩的 WebSphere Application Server Network Deployment 环境需要掌 握的一些基本概念,还将介绍 ODM 服务器组件,并解释这些组件中影响分布式环境中的部署决策的特性或约 束条件. 除了讨论 WebSphere Application Server 单元拓扑中这些组件的布局之外,我们还将