Hadoop伪分布式安装流程补充.docx

上传人:b****0 文档编号:17154518 上传时间:2023-07-22 格式:DOCX 页数:23 大小:24.44KB
下载 相关 举报
Hadoop伪分布式安装流程补充.docx_第1页
第1页 / 共23页
Hadoop伪分布式安装流程补充.docx_第2页
第2页 / 共23页
Hadoop伪分布式安装流程补充.docx_第3页
第3页 / 共23页
Hadoop伪分布式安装流程补充.docx_第4页
第4页 / 共23页
Hadoop伪分布式安装流程补充.docx_第5页
第5页 / 共23页
Hadoop伪分布式安装流程补充.docx_第6页
第6页 / 共23页
Hadoop伪分布式安装流程补充.docx_第7页
第7页 / 共23页
Hadoop伪分布式安装流程补充.docx_第8页
第8页 / 共23页
Hadoop伪分布式安装流程补充.docx_第9页
第9页 / 共23页
Hadoop伪分布式安装流程补充.docx_第10页
第10页 / 共23页
Hadoop伪分布式安装流程补充.docx_第11页
第11页 / 共23页
Hadoop伪分布式安装流程补充.docx_第12页
第12页 / 共23页
Hadoop伪分布式安装流程补充.docx_第13页
第13页 / 共23页
Hadoop伪分布式安装流程补充.docx_第14页
第14页 / 共23页
Hadoop伪分布式安装流程补充.docx_第15页
第15页 / 共23页
Hadoop伪分布式安装流程补充.docx_第16页
第16页 / 共23页
Hadoop伪分布式安装流程补充.docx_第17页
第17页 / 共23页
Hadoop伪分布式安装流程补充.docx_第18页
第18页 / 共23页
Hadoop伪分布式安装流程补充.docx_第19页
第19页 / 共23页
Hadoop伪分布式安装流程补充.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Hadoop伪分布式安装流程补充.docx

《Hadoop伪分布式安装流程补充.docx》由会员分享,可在线阅读,更多相关《Hadoop伪分布式安装流程补充.docx(23页珍藏版)》请在冰点文库上搜索。

Hadoop伪分布式安装流程补充.docx

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

sshlocalhost

ls-a

cd.ssh

ls

catid_rsa

cd/etc

ls

cdssh

ls

su

...

visshd_config

exit

cd~

cd.ssh

ls

catauthorized_keys

servicesshdrestart

cd.ssh

ls–l

-rw-------.1yarnyarn3912月2413:

53authorized_keys

-rw-------.1yarnyarn16752月2413:

51id_rsa

-rw-r--r--.1yarnyarn3912月2413:

51id_rsa.pub

-rw-r--r--.1yarnyarn7772月2514:

05known_hosts

chmod600authorized_keys

ls–l

cd~

ls–la

drwx------.2yarnyarn40962月2413:

55.ssh

cd/etc

su

vihosts

127.0.0.1YARN

exit

sshlocalhost

把生成的公钥追加到yarn用户的~/.ssh/authorized_keys文件中,就是把密码字符串复制进去,再次追加公钥,前面的信息不能丢失。

这个文件非常重要,机器间登录都要读取这个文件,判断是否允许登录,注意:

使用yarn用户执行下面命令。

使用yarn用户执行下面的命令!

命令:

cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

为文件authorized_keys设置读写权限,这个文件在用户yarn工作目录下,yarn就是属主,设置属主的读写权限,注意:

使用yarn用户执行下面命令。

命令:

chmod600~/.ssh/authorized_keys

为用户yarn修改~/.ssh目录的权限,让yarn用户对目录有读、写、执行的权限

命令:

chmod700~/.ssh

这个命令不要执行,因为我们是伪分布模式。

scp~/.ssh/id_rsa.pubyarn@192.168.1.3:

~/

对/etc/ssh/目录下的sshd_config文件进行配置,注意:

这个文件是root的权限,所以要更换用户,使用管理员权限修改文件。

命令:

su-

cd/etc/ssh

visshd_config

配置完成后要重启服务,退出root,用户yarn测试验证是否成功

命令:

servicesshdrestart

sshlocalhost

配置/etc目录下的文件hosts,注意:

使用root权限,配置如下:

命令:

cd/etc

vihosts

/etc/hosts文件中添加ip和主机名。

127.0.0.1YARN

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进程。

配置如下:

#Thejavaimplementationtouse.

exportJAVA_HOME=/usr/local/jdk1.8.0_51

exportHADOOP_CLASSPATH=.

#Thejsvcimplementationtouse.Jsvcisrequiredtorunsecuredatanodes

#thatbindtoprivilegedportstoprovideauthenticationofdatatransfer

#protocol.JsvcisnotrequiredifSASLisconfiguredforauthenticationof

#datatransferprotocolusingnon-privilegedports.

#exportJSVC_HOME=${JSVC_HOME}

exportHADOOP_CONF_DIR=${HADOOP_CONF_DIR:

-"/etc/hadoop"}

#ExtraJavaCLASSPATHelements.Automaticallyinsertcapacity-scheduler.

forfin$HADOOP_HOME/contrib/capacity-scheduler/*.jar;do

if["$HADOOP_CLASSPATH"];then

exportHADOOP_CLASSPATH=$HADOOP_CLASSPATH:

$f

else

exportHADOOP_CLASSPATH=$f

fi

done

#Themaximumamountofheaptouse,inMB.Defaultis1000.

exportHADOOP_HEAPSIZE="500"

exportHADOOP_NAMENODE_INIT_HEAPSIZE="500"

#ExtraJavaruntimeoptions.Emptybydefault.

exportHADOOP_OPTS="$HADOOP_OPTS-D.preferIPv4Stack=true"

#CommandspecificoptionsappendedtoHADOOP_OPTSwhenspecified

exportHADOOP_NAMENODE_OPTS="-XX:

+UseParallelGC${HADOOP_NAMENODE_OPTS}"

exportHADOOP_NAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:

-INFO,RFAS}-Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:

-INFO,NullAppender}$HADOOP_NAMENODE_OPTS"

exportHADOOP_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS$HADOOP_DATANODE_OPTS"

exportHADOOP_SECONDARYNAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:

-INFO,RFAS}-Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:

-INFO,NullAppender}$HADOOP_SECONDARYNAMENODE_OPTS"

exportHADOOP_NFS3_OPTS="$HADOOP_NFS3_OPTS"

exportHADOOP_PORTMAP_OPTS="-Xmx512m$HADOOP_PORTMAP_OPTS"

#Thefollowingappliestomultiplecommands(fs,dfs,fsck,distcpetc)

exportHADOOP_CLIENT_OPTS="-Xmx512m$HADOOP_CLIENT_OPTS"

#HADOOP_JAVA_PLATFORM_OPTS="-XX:

-UsePerfData$HADOOP_JAVA_PLATFORM_OPTS"

#Onsecuredatanodes,usertorunthedatanodeasafterdroppingprivileges.

#This**MUST**beuncommentedtoenablesecureHDFSifusingprivilegedports

#toprovideauthenticationofdatatransferprotocol.This**MUSTNOT**be

#definedifSASLisconfiguredforauthenticationofdatatransferprotocol

#usingnon-privilegedports.

exportHADOOP_SECURE_DN_USER=${HADOOP_SECURE_DN_USER}

#Wherelogfilesarestored.$HADOOP_HOME/logsbydefault.

#exportHADOOP_LOG_DIR=${HADOOP_LOG_DIR}/$USER

#Wherelogfilesarestoredinthesecuredataenvironment.

exportHADOOP_SECURE_DN_LOG_DIR=${HADOOP_LOG_DIR}/${HADOOP_HDFS_USER}

###

#HDFSMoverspecificparameters

###

#SpecifytheJVMoptionstobeusedwhenstartingtheHDFSMover.

#TheseoptionswillbeappendedtotheoptionsspecifiedasHADOOP_OPTS

#andthereforemayoverrideanysimilarflagssetinHADOOP_OPTS

#

#exportHADOOP_MOVER_OPTS=""

###

#AdvancedUsersOnly!

###

#Thedirectorywherepidfilesarestored./tmpbydefault.

#NOTE:

thisshouldbesettoadirectorythatcanonlybewrittentoby

#theuserthatwillrunthehadoopdaemons.Otherwisethereisthe

#potentialforasymlinkattack.

exportHADOOP_PID_DIR=/usr/local/hadoop/data/pid

exportHADOOP_PID_DIR=${HADOOP_PID_DIR}

exportHADOOP_SECURE_DN_PID_DIR=${HADOOP_PID_DIR}

#Astringrepresentingthisinstanceofhadoop.$USERbydefault.

exportHADOOP_IDENT_STRING=$USER

首先要设置JAVA_HOME,JDK安装完成后,安装的路径需要告诉Hadoop,这样Hadoop在运行期才能找到JDK,否则在启动Hadoop服务时会报出找不到JAVA_HOME并终止启动。

设置HADOOP_CLASSPATH为当前目录,这为执行作业提供了方便,在本地文件系统下的任何目录都可以执行MapReduce作业。

JSVC_HOME变量不用设置,和Tomcat服务有关。

HADOOP_CONF_DIR默认是HADOOP_HOME的/etc/hadoop目录。

注意下面的代码,Hadoop2.0后目录结构发生变化,取消了contrib目录,下面的循环不会执行。

#ExtraJavaCLASSPATHelements.Automaticallyinsertcapacity-scheduler.

forfin$HADOOP_HOME/contrib/capacity-scheduler/*.jar;do

if["$HADOOP_CLASSPATH"];then

exportHADOOP_CLASSPATH=$HADOOP_CLASSPATH:

$f

else

exportHADOOP_CLASSPATH=$f

fi

done

设置Hadoop堆内存,Hadoop最大堆内存和NameNode进程最大堆内存,默认1G。

可根据硬件情况和集群规模动态设置:

#Themaximumamountofheaptouse,inMB.Defaultis1000.

exportHADOOP_HEAPSIZE="500"

exportHADOOP_NAMENODE_INIT_HEAPSIZE="500"

设置Hadoop进程的网络协议:

exportHADOOP_OPTS="$HADOOP_OPTS-D.preferIPv4Stack=true"

下面是Hadoop守护进程的运行环境和运行参数。

包括NameNode进程、DataNode进程和SecondaryNameNode进程。

添加下面设置,给NameNode进程设置垃圾回收机制。

exportHADOOP_NAMENODE_OPTS="-XX:

+UseParallelGC${HADOOP_NAMENODE_OPTS}"

设置HADOOP_PID_DIR变量,如果不设置默认/tmp目录下:

exportHADOOP_PID_DIR=/usr/local/hadoop/data/pid

1.1.6配置mapred-env.sh配置文件

mapred-env.sh配置文件是在执行MapReduce作业是的运行环境和运行参数的配置文件。

exportJAVA_HOME=/usr/local/jdk1.8.0_51

exportHADOOP_JOB_HISTORYSERVER_HEAPSIZE=500

exportHADOOP_MAPRED_ROOT_LOGGER=INFO,RFA

#exportHADOOP_JOB_HISTORYSERVER_OPTS=

#Wherelogfilesarestored.$HADOOP_MAPRED_HOME/logsbydefault.

#exportHADOOP_MAPRED_LOG_DIR=""

#HadoopJobSummarylogger.

#exportHADOOP_JHS_LOGGER=INFO,RFA

#Thepidfilesarestored./tmpbydefault.

exportHADOOP_MAPRED_PID_DIR=/usr/local/hadoop/data/pid

#Astringrepresentingthisinstanceofhadoop.$USERby

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2