一、基础环境

系统:centos6.5

软件:hadoop2.4

 

二、安装

root下让普通用户具有sudo权限

vi /etc/sudoers

root   ALL=(ALL)       ALL

hadoop   ALL=(ALL)       ALL

 

1、修改主机名和IP的映射关系

vim /etc/hosts

192.168.1.205 node1

2、关闭防火墙

查看防火墙状态

service iptables status

关闭防火墙

service iptables stop

查看防火墙开机启动状态

chkconfig iptables --list

关闭防火墙开机启动

chkconfig iptables off

3、安装jdk

  mkdir-p /home/hadoop/app

tar -zxvf jdk-7u55-linux-i586.tar.gz -C /home/hadoop/app

将jdk添加到环境变量

vim /etc/profile

在文件最后添加

export JAVA_HOME=/home/hadoop/app/jdk-7u_65-i585

export PATH=$PATH:$JAVA_HOME/bin

刷新配置

source /etc/profile

 4、安装hadoop2.4.1

tar -zxvf hadoop-2.4.1.tar.gz -C /home/hadoop/app/

进入目录查看各个目录

   大量的jar包在share里面

Doc可以删除

各个工程项目:

Common公共组件

hdfs hdfs的jar包

httpfs    http协议访问hdfs的api

mapreduce 运算模型

tools      工具类

yarn       资源调度框架

 

修改配置

修改5个配置文件

vi hadoop-env.sh

vi core-site.xml

耦合模式

标红色的配置错误会导致启动时如下错误:

Incorrectconfiguration: namenode address dfs.namenode.servicerpc-address ordfs.namenode.rpc-address is not configured.

在<value></value>可以定义多种文件系统,如hdfs、阿里的tfs,谷歌的gfs等

 

 

 

 

不同的进程,datanode管理文件block,需要存起来就是这个路径。

这里是测试环境,随便写个目录。如果是生产环境最好是单独的挂在点。

vi hdfs-site.xml

这个里面是运行细节

副本的个数,我这里伪分布式,一个就行。

这里还可以定义切块的大小。

Hadoop之前老版本每块是64m,现在是128M

 

目前hdfs可以运行了。

 

sh-4.1$ cp mapred-site.xml.template mapred-site.xml

 vimapred-site.xml

这个配置说的是yarn放到那个节点上跑,如果不指定,他就在本地跑。

vi yarn-site.xml

第一个配置说明yarn集群里面的老大

 

下面是从节点

传输到从节点的机制是shuffle

 

三、启动hadoop

1、环境变量
sudo vi /etc/profile
export JAVA_HOME=/home/hadoop/app/jdk-7u_65-i585
export HADOOP_HOME=/home/hadoop/app/hadoop-2.4.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
source /etc/profile
2、初始化格式化nodename
-bash-4.1$ hadoopnamenode -format
DEPRECATED: Use of this script to execute hdfs command isdeprecated.
Instead use the hdfs command for it.
/home/hadoop/app/hadoop-2.4.1/bin/hdfs:/home/hadoop/app/jdk1.7.0_65/bin/java: /lib/ld-linux.so.2: bad ELF interpreter:No such file or directory
/home/hadoop/app/hadoop-2.4.1/bin/hdfs: line206: /home/hadoop/app/jdk1.7.0_65/bin/java: Success-bash-4.1$ ^C
报错处理:
-bash-4.1$ yum isntall glibc
-bash-4.1$ sudo yum install glibc.i386
-bash-4.1$ hadoop namenode -format
DEPRECATED: Use of this script to execute hdfs command isdeprecated.
Instead use the hdfs command for it.
 
16/01/25 06:32:07 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host =node1/192.168.0.205
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 2.4.1
STARTUP_MSG:   classpath =/home/hadoop/app/hadoop-2.4.1/etc/hadoop:/home/hadoop/app/hadoop-2.4.1/share/hadoop
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
BP-652819878-192.168.0.205-1453674729166
16/01/25 06:32:09INFO common.Storage: Storage directory  /home/hadoop/app/hadoop-2.4.1/data/dfs/name has beensuccessfully formatted.
16/01/25 06:32:09 INFO namenode.NNStorageRetentionManager: Going toretain 1 images with txid >= 0
16/01/25 06:32:09 INFO util.ExitUtil: Exiting with status 0
16/01/25 06:32:09 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at node1/192.168.0.205
************************************************************

初始化成功

 

3、查看元数据

4、启动

 

先启动HDFS

sbin/start-dfs.sh

再启动YARN

sbin/start-yarn.sh

验证是否启动成功

jps

修改文件(指定datanode)

http://192.168.0.205:50070 (HDFS管理界面)

http://192.168.0.205:8088 (MR管理界面)

四、真实分布式搭建

下面的步骤是搭建真实分布式的过程:

1、配置hosts文件(此步加入master和slave的ip和主机名)

2、建立hadoop运行帐号

3、配置ssh免密码连入

4、下载并解压hadoop安装包

5、配置namenode,修改site文件

6、配置hadoop-env.sh文件

7、配置masters和slaves文件(2.*版本里面vi  slaves)

8、向各节点复制hadoop目录

scp -r ./hadoop-2.4.1/* node2

scp -r ./hadoop-2.4.1/* nodeN

 

9、格式化namenode

10、启动hadoop

11、用jps检验各后台进程是否成功启动

12、通过网站查看集群情况

注意:黄色部分与伪分布式安装的不同。