Hadoop的三种模式的安装
Hadoop的三种模式的安装
一.Hadoop的三种模式
1.单节点模式
2.伪分布模式,一般用于测试
3.完全分布模式,集群环境,常用
Hadoop 主从节点分解:
二.安装环境
1.单机模式,一台主机,172.25.22.10
2.伪分布模式,一台主机,172.25.22.11
3.完全分布模式,三台主机,172.25.22.10 11 12
软件包:
hadoop-1.2.1.tar.gz
jdk-7u79-linux-x64.tar.gz
三.配置步骤之单机模式
注意:在配置环境时,最好以一个普通用户的身份去配置,三种模式都是以普通用户hadoop身份运行的
1.
单机模式只有一个节点,只需将hadoop包解压到相应的位置下即可,本次解压的目录是在/home/hadoop下,然后做一个软链接,方便之后切换目录。和修改配配置文件中文件目录的位置
ln -s hadoop-1.2.1/ hadoop
ln -s jdk1.7.0_79/ java
2.修改一下配置文件
将java的目录写进去
3.下一步配置ssh 无密码登陆到本机
ssh-keygen
ssh-copy-id 172.25.22.10
配置完成,可以直接ssh localhost到本机
4.配置完成后,测试
首先建立一个input 目录
mkdir input
Cp conf/*.xml input/
拿一个例子测试一下,
bin/hadoop jar hadoop-examples-1.2.1.jar grep input output 'dfs[a-z.]+'
Output输出的目录可自动生成
看到hadoop里边有这个目录,而且可以查看
如果拿网页看的话
http://172.25.22.10:50070/dfshealth.jsp 可以看到hdfs中保存的文件
http://172.25.22.10:50030/jobtracker.jsp 可以看到正在处理的过程
四.伪分布模式的配置
由于伪分布模式也是在一个节点上,在单节点的模式下,配置其几个配置文件
1.编辑其conf下的配置文件
#####vim core-site.xml 添加内容
<property>
<name>fs.default.name</name>
<value>hdfs://172.25.22.10:9000</value>
</property>
#####vim mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>172.25.22.10:9001</value>
</property>
######vim hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
配置文件修改完成
2.对hadoop进行格式化
bin/hadoop namenode -format
3.开启所有进程
bin/start-all.sh
4.查看进程
/home/hadoop/java/bin/jps
所有的进程都在这一个节点上,
JobTracker #####负责任务调度
TaskTracker #####负责数据处理
SecondaryNameNode
NameNode #####包含元数据信息
DataNode #####数据节点,存储数据
5.测试
bin/hadoop -put conf/ input
bin/hadoop jar hadoop-examples-1.2.1.jar grep input output 'dfs[a-z.]+'
这里的input 和之前那个input是完全不一样的,这个是存储在分布式文件系统中的
用网页查看可以看到
三台主机
五.完全分布式的配置
三台主机:
172.25.22.10 master
172.25.22.11 slave
172.25.22.12 slave
三台主机的配置是一样的,所以怎么使slave主机和master主机配置文件都相同呢?Scp的方式可以,但是会比较麻烦,所以考虑到nfs共享
1.在伪分布模式三个配置文件已经配置完成的基础下,配置master slave文件
2.配置nfs文件共享
在三台主机上,首先需要安装的服务
yum install -y rpcbind
yum install -y nfs-utils
开启rpcbind服务
3.配置exports文件
/home/hadoop 172.25.22.0/255.255.255.0(rw,anonuid=900,anongid=900)
exports -v
exportfs -rv
4.由于slave节点要和master节点的文件同步
所以在slave节点上
showmount -e 172.25.22.10
mount 172.25.22.10:/home/hadoop/ /home/hadoop/
可以看到文件都同步过去
5.在master节点上要给普通用户hadoop设置密码
然后
ssh-keygen
ssh-copy-id 172.25.22.10
这样就可以实现三台主机以普通用户登陆的无密码的交互
配置完成,需要测试:
注意:如果在刚开始的时候,是在root用户下安装的hadoop,那么想在普通用户下搭建的话,首先三台主机创建一个相同名字的用户,并且uid gid 都要保持一致,然后把在root下做的目录迁移过去
mv hadoop-1.2.1/ /home/hadoop/
并且要修改这个目录的归属组和归属用户
chown hadoop.hadoop /home/hadoop/* -R
软链接和java环境的修改
6.用分布式环境测试一下
首先格式化,然后打开所有的进程
bin/hadoop namenode -format
bin/start-all.sh
看各个节点的进程
测试程序,执行一个wordcount例子
bin/hadoop fs -put conf/ input
bin/hadoop jar hadoop-examples-1.2.1.jar wordcount input output