Hadoop伪分布式安装流程.docx
《Hadoop伪分布式安装流程.docx》由会员分享,可在线阅读,更多相关《Hadoop伪分布式安装流程.docx(21页珍藏版)》请在冰豆网上搜索。
Hadoop伪分布式安装流程
Hadoop伪分布式安装流程
一、说明
Hadoop的运行模式有三种:
第一种是单机模式(localmode)
此模式不需要运行任何守护进程(daemon),所有的程序都运行在一个JVM上。
在这种模
式下调试和测试较方便,所以通常情况下在这种模式下进行开发测试,是应用开发阶段采
用的模式。
第二种是伪分布模式(pseudo-distributedmode)
模拟分布式,单机上运行Hadoop守护进程。
开发测试阶段采用的模式。
第三种是完全分布式(fully-distributedmode)
Hadoop守护进程运行在一个分布的集群上。
这种模式需要关注的是各组件属性的正确配
置和完整的启动Hadoop守护进程。
GNU/Linux是Hadoop产品开发和运行的平台。
Hadoop已在有四千个节点的GNU/Linux
主机组成的集群系统上得到验证。
Windows平台是作为开发平台支持的。
由于分布式操
作尚未在Windows平台上充分测试,所以还不作为一个生产平台被支持。
所需软件包括:
JDK1.6及以上版本,必须安装,建议选择Sun公司发行的Java版本。
SSH必须安装并且保证sshd服务一直运行,以便用Hadoop脚本管理远端Hadoop守护进程。
安装Hadoop集群通常要将安装软件解压到集群内的所有机器上。
以Hadoop2.0为例。
集群里的一台机器被指定为NameNode,另一台不同的机器被指定为ResourceManager。
这些机器是Master。
余下的机器即作为DataNode也作为NodeManager。
这些机器是Slaves。
通常使用HADOOP_HOME指定Hadoop的安装的根路径。
要求集群里的所有机器的HADOOP_HOME路径相同。
就是把Hadoop安装在相同的路径下。
伪分布式模拟了分布式Hadoop集群的一些功能。
通常运用在测试环境,并且不是并行的。
但是,小规模的Hadoop安装提供了学习Hadoop基础的简单方法。
Hadoop需要运行在Linux系统上,Linux是Hadoop唯一支持的生产平台,通常是在Windows系统开发,而运行则在Linux系统上的Hadoop环境下运行。
对硬件的要求是双核、2G内存和尽可能大的硬盘空间。
Linux环境,Java环境等。
下面分步说明安装步骤。
1.1Hadoop伪分布式安装流程
1.1.1安装ApacheHadoop
从Hadoop的网站(http:
//hadoop.apache.org/)上下载最新的发布版本(通常是一个打包好的gzippedtar文件),如:
hadoop-*.*.*.tar.gz。
通常把Hadoop安装包解压到/usr/local目录下,当然也可以解压到/opt目录下。
cd/usr/local
tar-xzvfhadoop-2.7.0.tar.gz
mvhadoop-2.7.0hadoop
vi/etc/profile
要为Hadoop配置环境变量,便于在任何目录执行Hadoop命令。
以root用户登录系统,在/etc目录下的profile中添加以下内容。
HADOOP_HOME是Hadoop的安装目录,设置PATH是为了系统可以找到Hadoop所有的命令,并且可以在任何目录执行Hadoop命令,而不用先进入到Hadoop的bin或sbin目录下再执行命令。
CLASS_PATH是告知Java虚拟机Hadoop的jar包在什么位置。
用户root有修改系统文件的权限,用文本编辑器打开/etc/profile文件
vi/etc/profile
在profile文件后面添加以下内容保存退出
exportHADOOP_HOME=/usr/local/hadoop
exportPATH=$PATH:
$HADOOP_HOME/sbin:
$HADOOP_HOME/bin
exportCLASS_PATH=$CLASS_PATH:
$HADOOP_HOME/lib
1.1.2安装JDK
Hadoop是用Java语言编写的,因此需要在Java环境下工作。
尽管其他的JDK安装包也支持Hadoop,但使用最广的任然是Sun提供的JDK。
Hadoop2.0版本以上要求JDK版本在1.6及以上。
从官网下载发布的最新JDK安装包(Linux系统)。
我们以CentOS6.4的Linux系统为例,系统已经预安装了开源的JDK版本,通过命令java-version进行查看。
通过命令删除预安装的JDK版本
rpm-qa|grepjava
rpm-e--nodeps文件名
用命令java-version检查是否已经卸载
安装JDK
cd/usr/local
tar-xzvfjdk-8u51-linux-i586.tar.gz
解压完成后在/usr/local目录下多了一个jdk1.8.0.51目录,注意JAVA_HOME就是JDK的安装目录/usr/local/jdk1.8.0.51。
配置环境变量:
用root用户登录配置环境变量
vi/etc/profile
在profile配置文件最后添加一下内容:
exportJAVA_HOME=/usr/local/jdk1.8.0_51
exportJRE_HOME=/usr/local/jdk1.8.0_51/jre
exportPATH=$JAVA_HOME/bin:
$JRE_HOME/bin:
$PATH
exportCLASS_PATH=.:
$JAVA_HOME/lib:
$JRE_HOME/lib
为了确保JAVA_HOME配置生效,运行profile脚本
source/etc/profile
1.1.3SSH免认证登录(无密码验证)配置
单机模式下,没有Hadoop守护进程,所以不需要配置SSH。
在伪分布式和完全分布式情况下必须启动Hadoop守护进程,然而启动Hadoop守护进程的前提是已经成功安装了SSH。
Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(SecureShell)来启动和停止各个DataNode上的各种守护进程的。
这就必须在节点之间执行指令的时候无需输入密码,因此需要安装配置SSH,这样NameNode使用SSH无密码登录并启动其它节点上的DataNode进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode报告节点运行情况。
用下面的命令查看系统是否安装了SSH服务和RSYNC服务
rpm-qa|grepopenssh
rpm-qa|greprsync
rsync是远程数据同步工具,可以同步多台主机间的文件。
如果没有安装两个服务,采用下面命令安装,但是安装需要连接外网。
安装命令是:
yuminstallssh
yuminstallrsync
在主机上生成密码对。
注意:
用普通用户yarn登录生成密码对
命令:
ssh-keygen-trsa-f~/.ssh/id_rsa
把生成的公钥追加到yarn用户的~/.ssh/authorized_keys文件中,就是把密码字符串复制进去,次追加公钥,前面的信息不能丢失。
这个文件非常重要,机器间登录都要读取这个文件,判断是否允许登录,注意:
使用yarn用户执行下面命令。
命令:
cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
为文件authorized_keys设置读写权限,这个文件在用户yarn工作目录下,yarn就是属主,设置属主的读写权限,注意:
使用yarn用户执行下面命令。
命令:
chmod600~/.ssh/authorized_keys
用户yarn修改~/.ssh目录的权限,让yarn用户对目录有读、写、执行的权限
命令:
chmod700~/.ssh
要对SSH服务的配置文件进行设置,对/etc/ssh/目录下的sshd_config文件进行配置,注意:
这个文件是root的权限,所以要更换为root用户,使用管理员权限修改文件。
命令:
su-#切换到root用户
cd/etc/ssh#切换到/etc/ssh目录下
visshd_config#用vi编辑器打开sshd_config文件进行编辑
sshd_config文件:
将下面三行配置项前面的#号去掉,然后保存退出
#LoginGraceTime2m
#PermitRootLoginyes
#StrictModesyes
#MaxAuthTries6
#MaxSessions10
RSAAuthenticationyes
PubkeyAuthenticationyes
AuthorizedKeysFile.ssh/authorized_keys
#AuthorizedKeysCommandnone
#AuthorizedKeysCommandRunAsnobody
#Forthistoworkyouwillalsoneedhostkeysin/etc/ssh/ssh_known_hosts
#RhostsRSAAuthenticationno
#similarforprotocolversion2
#HostbasedAuthenticationno
配置完成后要重启服务,退出root,用户yarn测试验证是否成功
命令:
servicesshdrestart#重新启动SSH服务,使配置生效
sshlocalhost#测试是否需要输入密码
配置/etc目录下的文件hosts,注意:
使用root权限,配置如下:
命令:
cd/etc
vihosts
在/etc/hosts文件中添加ip和主机名,使用空格分开,注意:
主机名要和你的主机名相同。
…
127.0.0.1YARN
将/usr/local/hadoop目录下的所有文件授权给当前用户,使用root用户
chown-Ryarn:
yarnhdoop
1.1.4创建Hadoop工作目录
数据目录和日志目录通常情况下不在Hadoop安装目录下,因为Hadoop版本升级不会影响到已存储的数据。
当然我们是测试环境,可以在Hadoop安装目录中创建。
cd/usr/local/hadoop
mkdir-pdata/namenode
mkdir-pdata/snamenode
mkdir-pdata/datanode
mkdir-pdata/pid
mkdirlogs
mkdir-ptmp/mapred/local
这些创建的目录在配置文件中要用到。
1.1.5配置hadoop-env.sh配置文件
hadoop-env.sh配置文件是Hadoop运行期核心的配置文件,文件中的变量为集群特有的值。
针对集群的实际情况要对此文件进行配置。
hadoop-env.sh文件中主要设置了Hadoop守护进程的运行环境和守护进程的运行参数。
守护进程包括NameNode进程、DataNode进程、ResourceManager进程、NodeManager进程和SecondaryNameNode进程。
蓝色部分为添加或配置项。
配置如下:
…
#Thejav