Hadoop220 部署spark 10.docx

上传人:b****6 文档编号:5616329 上传时间:2022-12-29 格式:DOCX 页数:32 大小:333.76KB
下载 相关 举报
Hadoop220 部署spark 10.docx_第1页
第1页 / 共32页
Hadoop220 部署spark 10.docx_第2页
第2页 / 共32页
Hadoop220 部署spark 10.docx_第3页
第3页 / 共32页
Hadoop220 部署spark 10.docx_第4页
第4页 / 共32页
Hadoop220 部署spark 10.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

Hadoop220 部署spark 10.docx

《Hadoop220 部署spark 10.docx》由会员分享,可在线阅读,更多相关《Hadoop220 部署spark 10.docx(32页珍藏版)》请在冰豆网上搜索。

Hadoop220 部署spark 10.docx

Hadoop220部署spark10

Hadoop2.2.0部署spark1.0

2014年7月

郭运凯

目录

介绍1

1集群网络环境介绍及快速部署2

2SSH无密码验证配置6

2.1配置所有节点之间SSH无密码验证6

3JDK安装和Java环境变量配置10

3.1安装JDK1.710

3.2Java环境变量配置10

4Hadoop集群配置11

(1)配置Hadoop的配置文件11

(2)复制配置好的各文件到所有数据节点上。

14

5Hadoop集群启动15

6Hadoop测试17

7用YarnClient调用hadoop集群18

8.配置spark1.0集群20

8.1配置环境变量20

6.3将程序分发给每个节点21

6.4启动21

6.5执行测试程序22

介绍

这是利用Vmware10.0在一台服务器上搭建的分布式环境,操作系统CentOS6.4X64中配置Hadoop-2.2.0时的总结文档。

Hadoop配置建议所有配置文件中使用主机名进行配置,并且机器上应在防火墙中开启相应端口,并设置SSHD服务为开机启动,此外java环境变量可以在/etc/profile中配置。

1集群网络环境介绍及快速部署

集群包含五个节点:

1个namenode,4个datanode,节点之间局域网连接,可以相互ping通。

所有节点均是Centos6.464位系统,防火墙均禁用,sshd服务均开启并设置为开机启动。

a)首先在VMware中安装好一台Centos6.4,创建hadoop用户。

假设虚拟机的名字为NameNode

b)关闭虚拟机,把NameNode文件夹,拷贝4份,并命名为DataNode1,..,DataNode4

c)用VMware打开每个DateNode,设置其虚拟机的名字

d)打开操作系统,当弹出对话框时,选择“Icopyit”

e)打开每个虚拟机,查看ip地址

ifconfig

现将IP地址规划如下

192.168.1.150

namenode

192.168.1.151

datanode1

192.168.1.152

datanode2

192.168.1.153

datanode3

192.168.1.154

datanode4

 

f)每个虚拟机,永久关闭防火墙(非常重要,一定要确认),并关闭SELINUX

chkconfigiptablesoff(永久生效)

serviceiptablesstop(临时有效)

 

vim/etc/selinux/config

[root@DataNode1local]#chkconfigiptablesoff

[root@DataNode1local]#serviceiptablesstop

iptables:

Flushingfirewallrules:

[OK]

iptables:

SettingchainstopolicyACCEPT:

filter[OK]

iptables:

Unloadingmodules:

[OK]

[root@DataNode1local]#

g)配置NameNode

第一步,检查机器名

#hostname

如发现不对,则修改,root用户登陆,修改命令如下

#vim/etc/sysconfig/network

NETWORKING=yes

HOSTNAME=NameNode

 

依次对每个节点进行处理,修改完之后,重启系统#reboot

h)修改/etc/hosts

root用户

vim/etc/sysconfig/network

(1)namenode节点上编辑/etc/hosts文件

将所有节点的名字和IP地址写入其中,写入如下内容,注意注释掉127.0.0.1行,保证内容如下:

(对IP地址一定要确认,是否有重复或者错误)

192.168.1.150namenode

192.168.1.151datanode1

192.168.1.152datanode2

192.168.1.153datanode3

192.168.1.154datanode4

#127.0.0.1centos63localhost.localdomainlocalhost

(2)将Namenode上的/etc/hosts文件复制到所有数据节点上,操作步骤如下:

root用户登录namenode;

执行命令:

scp/etc/hostsroot@192.168.1.151:

/etc/hosts

scp/etc/hostsroot@192.168.1.152:

/etc/hosts

scp/etc/hostsroot@192.168.1.153:

/etc/hosts

scp/etc/hostsroot@192.168.1.154:

/etc/hosts

i)规划系统目录

安装目录和数据目录分开,且数据目录和hadoop的用户目录分开,如果需要重新格式化,则可以直接删除所有的数据目录,然后重建数据目录。

如果数据目录和安装目录或者用户目录放置在一起,则对数据目录操作时,存在误删除程序或者用户文件的风险。

完整路径

说明

/opt/hadoop

hadoop的程序安装主目录

/home/hadoop/hd_space/tmp

临时目录

/home/hadoop/hd_space/hdfs/name

namenode上存储hdfs名字空间元数据

/home/hadoop/hd_space/hdfs/data

datanode上数据块的物理存储位置

/home/hadoop/hd_space/mapred/local

tasktracker上执行mapreduce程序时的本地目录

/home/hadoop/hd_space/mapred/system

这个是hdfs中的目录,存储执行mr程序时的共享文件

开始建立目录:

在NameNode下,root用户

rm-rf/home/hd_space

mkdir-p/home/hadoop/hd_space/tmp

mkdir-p/home/hadoop/hd_space/dfs/name

mkdir-p/home/hadoop/hd_space/dfs/data

mkdir-p/home/hadoop/hd_space/mapred/local

mkdir-p/home/hadoop/hd_space/mapred/system

chown-Rhadoop:

hadoop/home/hadoop/hd_space/

修改目录/home/hadoop的拥有者(因为该目录用于安装hadoop,用户对其必须有rwx权限。

chown-Rhadoop:

hadoop/home/hadoop

 

创建完毕基础目录后,下一步就是设置SSH无密码验证,以方便hadoop对集群进行管理。

2SSH无密码验证配置

Hadoop需要使用SSH协议,namenode将使用SSH协议启动namenode和datanode进程,datanode向namenode传递心跳信息可能也是使用SSH协议,这是我认为的,还没有做深入了解,datanode之间可能也需要使用SSH协议。

假若是,则需要配置使得所有节点之间可以相互SSH无密码登陆验证。

2.1配置所有节点之间SSH无密码验证

(0)原理

节点A要实现无密码公钥认证连接到节点B上时,节点A是客户端,节点B是服务端,需要在客户端A上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到服务端B上。

当客户端A通过ssh连接服务端B时,服务端B就会生成一个随机数并用客户端A的公钥对随机数进行加密,并发送给客户端A。

客户端A收到加密数之后再用私钥进行解密,并将解密数回传给B,B确认解密数无误之后就允许A进行连接了。

这就是一个公钥认证过程,其间不需要用户手工输入密码。

重要过程是将客户端A公钥复制到B上。

因此如果要实现所有节点之间无密码公钥认证,则需要将所有节点的公钥都复制到所有节点上。

(1)所有机器上生成密码对

(a)所有节点用hadoop用户登陆,并执行以下命令,生成rsa密钥对:

ssh-keygen-trsa

这将在/home/hd_space/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。

#suhadoop

ssh-keygen-trsa

Generatingpublic/privatersakeypair.

Enterfileinwhichtosavethekey(/home/hadoop/.ssh/id_rsa):

默认路径

Enterpassphrase(emptyfornopassphrase):

回车,空密码

Entersamepassphraseagain:

Youridentificationhasbeensavedin/home/hadoop/.ssh/id_rsa.

Yourpublickeyhasbeensavedin/home/hadoop/.ssh/id_rsa.pub.

这将在/home/hd_space/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。

 

(b)将所有datanode节点的公钥id_rsa.pub传送到namenode上:

DataNode1上执行命令:

scpid_rsa.pubhadoop@NameNode:

/home/hadoop/.ssh/id_rsa.pub.datanode1

......

DataNodeN上执行命令:

scpid_rsa.pubhadoop@NameNode:

/home/hadoop/.ssh/id_rsa.pub.datanoden

检查一下是否都已传输过来

各个数据节点的公钥已经传输过来。

 

(c)namenode节点上综合所有公钥(包括自身)并传送到所有节点上

[hadoop@NameNode.ssh]$catid_rsa.pub>>authorized_keys这是namenode自己的公钥

[hadoop@NameNode.ssh]$catid_rsa.pub.datanode1>>authorized_keys

[hadoop@NameNode.ssh]$catid_rsa.pub.datanode2>>authorized_keys

[hadoop@NameNode.ssh]$catid_rsa.pub.datanode3>>authorized_keys

[hadoop@NameNode.ssh]$catid_rsa.pub.datanode4>>authorized_keys

chmod644~/.ssh/authorized_keys

 

 

使用SSH协议将namenode的公钥信息authorized_keys复制到所有DataNode的.ssh目录下。

scpauthorized_keysdata节点ip地址:

/home/hd_space/.ssh

scp~/.ssh/authorized_keyshadoop@DataNode1:

/home/hadoop/.ssh/authorized_keys

scp~/.ssh/authorized_keyshadoop@DataNode2:

/home/hadoop/.ssh/authorized_keys

scp~/.ssh/authorized_keyshadoop@DataNode3:

/home/hadoop/.ssh/authorized_keys

scp~/.ssh/authorized_keyshadoop@DataNode4:

/home/hadoop/.ssh/authorized_keys

从这里就可以看到,当配置好hosts之后,就可以直接以机器名来访问各个机器,不用再记忆各个机器的具体IP地址,当集群中机器很多且IP不连续时,就发挥出威力来了。

从上图可以看到,将authorized_keys分发给各个节点之后,可以直接ssh登录,不再需要密码。

这样配置过后,namenode可以无密码登录所有datanode,可以通过命令

“sshDataNode1(2,3,4)”来验证。

配置完毕,在namenode上执行“sshNameNode,所有数据节点”命令,因为ssh执行一次之后将不会再询问。

在各个DataNode上也进行“sshNameNode,所有数据节点”命令。

至此,所有的节点都能相互访问,下一步开始配置jdk

3JDK安装和Java环境变量配置

3.1安装JDK1.7

1.下载JDK。

选定linux环境版本,下载到的文件是:

jdk-7u21-linux-x64.tar.gz

2.解压

mvjdk-7u21-linux-x64.tar.gz

tarxfjdk-7u21-linux-x64.tar.gz

3.2Java环境变量配置

root用户登陆,命令行中执行命令”vim/etc/profile”,并加入以下内容,配置环境变量(注意/etc/profile这个文件很重要,后面Hadoop的配置还会用到)。

 

#setjavaenvironment

exportJAVA_HOME=/opt/jdk1.7.0_21

exportJRE_HOME=/opt/jdk1.7.0_21/jre

exportPATH=$JAVA_HOME/bin:

$JRE_HOME/bin:

$PATH

exportCLASSPATH=.:

$JAVA_HOME/lib/dt.jar:

$JAVA_HOME/lib/tools.jar

保存并退出,执行以下命令使配置生效

chmod+x/etc/profile

source/etc/profile

配置完毕,在命令行中使用命令“java-version”可以判断是否成功。

在hadoop用户下测试java–version,一样成功。

4Hadoop集群配置

在namenode上执行:

Hadoop用户登录。

下载hadoop-2.2.0(已编译好的64位的hadoop2.2,可以从网盘下载

),将其解压到/opt目录下.

(1)配置Hadoop的配置文件

(a)配置/etc/profile

#sethadoop

exportHADOOP_HOME=/opt/hadoop-2.2.0

exportHADOOP_CONF_DIR=/opt/hadoop-2.2.0/etc/hadoop

exportYARN_CONF_DIR=/opt/hadoop-2.2.0/etc/hadoop

exportPATH=$HADOOP_HOME/bin:

$HADOOP_HOME/sbin:

$PATH

(b)配置hadoop-env.sh

$vim$HADOOP_CONF_DIR/hadoop-env.sh

exportJAVA_HOME=/opt/jdk1.7.0_21

(c)yarn-env.sh

vim$HADOOP_CONF_DIR/yarn-env.sh

exportJAVA_HOME=/opt/jdk1.7.0_21

(d)core-site.xml

vim$HADOOP_CONF_DIR/core-site.xml

fs.defaultFS

hdfs:

//NameNode:

9000

hadoop.tmp.dir

/home/hadoop/hd_space/tmp

(e)hdfs-site.xml

xmlversion="1.0"encoding="UTF-8"?

>

xml-stylesheettype="text/xsl"href="configuration.xsl"?

>

--

LicensedundertheApacheLicense,Version2.0(the"License");

youmaynotusethisfileexceptincompliancewiththeLicense.

YoumayobtainacopyoftheLicenseat

http:

//www.apache.org/licenses/LICENSE-2.0

Unlessrequiredbyapplicablelaworagreedtoinwriting,software

distributedundertheLicenseisdistributedonan"ASIS"BASIS,

WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.

SeetheLicenseforthespecificlanguagegoverningpermissionsand

limitationsundertheLicense.SeeaccompanyingLICENSEfile.

-->

--Putsite-specificpropertyoverridesinthisfile.-->

dfs.name.dir

/home/hadoop/hd_space/hdfs/name

dfs.data.dir

/home/hadoop/hd_space/hdfs/data

dfs.replication

3

(f)mapred-site.xml

xmlversion="1.0"?

>

xml-stylesheettype="text/xsl"href="configuration.xsl"?

>

--

LicensedundertheApacheLicense,Version2.0(the"License");

youmaynotusethisfileexceptincompliancewiththeLicense.

YoumayobtainacopyoftheLicenseat

http:

//www.apache.org/licenses/LICENSE-2.0

Unlessrequiredbyapplicablelaworagreedtoinwriting,software

distributedundertheLicenseisdistributedonan"ASIS"BASIS,

WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.

SeetheLicenseforthespecificlanguagegoverningpermissionsand

limitationsundertheLicense.SeeaccompanyingLICENSEfile.

-->

--Putsite-specificpropertyoverridesinthisfile.-->

mapreduce.cluster.local.dir

/home/hadoop/hd_space/mapred/local

mapreduce.cluster.system.dir

/home/hadoop/hd_space/mapred/system

mapreduce.framework.name

yarn

mapreduce.jobhistory.address

NameNode:

10020

mapreduce.jobhistory.webapp.address

NameNode:

19888

(g)配置masters文件,把localhost修改为namenode的主机名

NameNode

(h)配置slaves文件,删除localhost,加入所有datanode的主机名

DataNode1

DataNode2

DataNode3

DataNode4

(2)复制配置好的各文件到所有数据节点上。

在NameNode,执行脚本命令

fortargetinDataNode1DataNode2DataNode3DataNode4

do

scp-r/opt/hadoop-2.2.0/etc/hadoop$target:

/opt/hadoop-2.2.0/etc

done

5Hadoop集群启动

hadoopnamenode-format  

--------------------因为配置了环境变量,此处不需要输入hadoop命令的全路径/hadoop/bin/hadoop

    执行后的结果中会提示“dfs/namehasbeensuccessfullyformatted”。

否则格式化失败。

启动hadoop:

start-dfs.sh

start-yarn.sh 

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

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1