一、基础环境
系统: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、通过网站查看集群情况
注意:黄色部分与伪分布式安装的不同。