培训体系尚学堂大数据培训H安装配置每一小步都写得.docx

上传人:b****2 文档编号:2931921 上传时间:2023-05-05 格式:DOCX 页数:37 大小:31.98KB
下载 相关 举报
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第1页
第1页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第2页
第2页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第3页
第3页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第4页
第4页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第5页
第5页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第6页
第6页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第7页
第7页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第8页
第8页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第9页
第9页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第10页
第10页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第11页
第11页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第12页
第12页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第13页
第13页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第14页
第14页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第15页
第15页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第16页
第16页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第17页
第17页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第18页
第18页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第19页
第19页 / 共37页
培训体系尚学堂大数据培训H安装配置每一小步都写得.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

培训体系尚学堂大数据培训H安装配置每一小步都写得.docx

《培训体系尚学堂大数据培训H安装配置每一小步都写得.docx》由会员分享,可在线阅读,更多相关《培训体系尚学堂大数据培训H安装配置每一小步都写得.docx(37页珍藏版)》请在冰点文库上搜索。

培训体系尚学堂大数据培训H安装配置每一小步都写得.docx

培训体系尚学堂大数据培训H安装配置每一小步都写得

北京尚学堂提供

 

  Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。

以Hadoop分布式文件系统(HDFS,HadoopDistributedFilesystem)和MapReduce(GoogleMapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。

  对于Hadoop的集群来讲,能够分成俩大类角色:

Master和Salve。

一个HDFS集群是由一个NameNode和若干个DataNode组成的。

其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。

MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点的TaskTracker共同组成的。

主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。

主节点监控它们的执行情况,且且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。

当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务且监控TaskTracker的执行。

  从上面的介绍能够见出,HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。

HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。

HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,且收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。

 

  集群中包括4个节点:

1个Master,3个Salve,节点之间局域网连接,能够相互ping通,具体集群信息能够查见"Hadoop集群(第2期)"。

节点IP地址分布如下:

 

机器名称,IP地址

Master.Hadoop,192http:

///html/cloud/.168.1.2

Salve1.Hadoop ,192.168.1.3 

Salve2.Hadoop ,192.168.1.4 

Salve3.Hadoop ,192.168.1.5 

  四个节点上均是CentOS6.0系统,且且有一个相同的用户hadoop。

Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;3个Salve机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行。

其实应该仍应该有1个Master机器,用来作为备用,以防止Master服务器宕机,仍有一个备用马上启用。

后续经验积累一定阶段后补上一台备用Master机器。

 

  Hadoop集群要按照1.2小节表格所示进行配置,我们在"Hadoop集群(第1期)"的CentOS6.0安装过程就按照提前规划好的主机名进行安装和配置。

如果实验室后来人在安装系统时,没有配置好,不要紧,没有必要重新安装,在安装完系统之后仍然能够根据后来的规划对机器的主机名进行修改。

  下面的例子我们将以Master机器为例,即主机名为"Master.Hadoop",IP为"192.168.1.2"进行一些主机名配置的相关操作。

其他的Slave机器以此为依据进行修改。

  1)查见当前机器名称

  用下面命令进行显示机器名称,如果跟规划的不一致,要按照下面进行修改。

hostname

  上图中,用"hostname"查"Master"机器的名字为"Master.Hadoop",和我们预先规划的一致。

  2)修改当前机器名称

  假定我们发现我们的机器的主机名不是我们想要的,通过对"/etc/sysconfig/network"文件修改其中"HOSTNAME"后面的值,改成我们规划的名称。

  这个"/etc/sysconfig/network"文件是定义hostname和是否利用网络的不接触网络设备的对系统全体定义的文件。

  设定形式:

设定值=值

  "/etc/sysconfig/network"的设定项目如下:

NETWORKING是否利用网络

GATEWAY默认网关

IPGATEWAYDEV默认网关的接口名

HOSTNAME主机名

DOMAIN域名

  用下面命令进行修改当前机器的主机名(备注:

修改系统文件一般用root用户)

vim/etc/sysconfig/network

  通过上面的命令我们从"/etc/sysconfig/network"中找到"HOSTNAME"进行修改,查见内容如下:

    3)修改当前机器IP

    假定我们的机器连IP在当时安装机器时都没有配置好,那此时我们需要对"ifcfg-eth0"文件进行配置,该文件位于"/etc/sysconfig/network-scripts"文件夹下。

  在这个目录下面,存放的是网络接口(网卡)的制御脚本文件(控制文件),ifcfg-eth0是默认的第一个网络接口,如果机器中有多个网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg-eth3,……。

  这里面的文件是相当重要的,涉及到网络能否正常工作。

  设定形式:

设定值=值

  设定项目项目如下:

DEVICE接口名(设备,网卡)

BOOTPROTOIP的配置方法(static:

固定IP,dhcpHCP,none:

手动)

HWADDRMAC地址

ONBOOT系统启动的时候网络接口是否有效(yes/no)

TYPE网络类型(通常是Ethemet)

NETMASK网络掩码

IPADDR IP地址

IPV6INITIPV6是否有效(yes/no)

GATEWAY默认网关IP地址

  查见"/etc/sysconfig/network-scripts/ifcfg-eth0"内容,如果IP不复核,就行修改。

  如果上图中IP和规划不相符,用下面命令进行修改:

vim/etc/sysconfig/network-scripts/ifcgf-eth0

  修改完之后能够用"ifconfig"进行查见。

  4)配置hosts文件(必须)

  "/etc/hosts"这个文件是用来配置主机将用的DNS服务器信息,是记载LAN内接续的各主机的对应[HostName和IP]用的。

当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的IP地址。

  我们要测试俩台机器之间知否连通,一般用"ping机器的IP",如果想用"ping机器的主机名"发现找不见该名称的机器,解决的办法就是修改"/etc/hosts"这个文件,通过把LAN内的各主机的IP地址和HostName的一一对应写入这个文件的时候,就能够解决问题。

  例如:

机器为"Master.Hadoop:

192.168.1.2"对机器为"Salve1.Hadoop:

192.168.1.3"用命令"ping"记性连接测试。

测试结果如下:

  从上图中的值,直接对IP地址进行测试,能够ping通,可是对主机名进行测试,发现没有ping通,提示"unknownhost——未知主机",这时查见"Master.Hadoop"的"/etc/hosts"文件内容。

  发现里面没有"192.168.1.3Slave1.Hadoop"内容,故而本机器是无法对机器的主机名为"Slave1.Hadoop"解析。

  在进行Hadoop集群配置中,需要在"/etc/hosts"文件中添加集群中所有机器的IP和主机名,这样Master和所有的Slave机器之间不仅能够通过IP进行通信,而且仍能够通过主机名进行通信。

所以在所有的机器上的"/etc/hosts"文件末尾中都要添加如下内容:

192.168.1.2Master.Hadoop

192.168.1.3Slave1.Hadoop

192.168.1.4Slave2.Hadoop

192.168.1.5Slave3.Hadoop

  用以下命令进行添加:

vim/etc/hosts

  添加结果如下:

 

  当下我们在进行对机器为"Slave1.Hadoop"的主机名进行ping通测试,见是否能测试成功。

  从上图中我们已经能用主机名进行ping通了,说明我们刚才添加的内容,在局域网内能进行DNS解析了,那么当下剩下的事儿就是在其余的Slave机器上进行相同的配置。

然后进行测试。

(备注:

当设置SSH无密码验证后,能够"scp"进行复制,然后把原来的"hosts"文件执行覆盖即可。

 

1)JDK软件

   下载地址:

http:

///technetwork/java/javase/index.html

   JDK版本:

jdk-6u31-linux-i586.bin

2)Hadoop软件

   下载地址:

http:

//hadoop.apache.org/common/releases.html

   Hadoop版本:

hadoop-1.0.0.tar.gz

  在"Hadoop集群(第3期)"讲了VSFTP的安装及配置,如果没有安装VSFTP能够按照该文档进行安装。

如果安装好了,就能够通过FlashFXP.exe软件把我们下载的JDK6.0和Hadoop1.0软件上传到"Master.Hadoop:

192.168.1.2"服务器上。

 

  刚才我们用一般用户(hadoop)通过FlashFXP软件把所需的俩个软件上传了跟目下,我们通过命令查见下一下是否已经上传了。

 

   从图中,我们的所需软件已经准备好了。

  Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(SecureShell)来启动和停止各个DataNode上的各种守护进程的。

这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录且启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode。

  在"Hadoop集群(第1期)"安装CentOS6.0时,我们选择了一些基本安装包,所以我们需要俩个服务:

ssh和rsync已经安装了。

能够通过下面命令查见结果显示如下:

rpm–qa|grepopenssh

rpm–qa|greprsync

  假设没有安装ssh和rsync,能够通过下面命令进行安装。

yuminstallssh安装SSH协议

yuminstallrsync(rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件)

servicesshdrestart启动服务

  确保所有的服务器都安装,上面命令执行完毕,各台机器之间能够通过密码验证相互登。

  1)SSH无密码原理

  Master(NameNode|JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode|Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。

当Master通过SSH连接Salve时,Salve就会生成一个随机数且用Master的公钥对随机数进行加密,且发送给Master。

Master收到加密数之后再用私钥解密,且将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。

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

重要过程是将客户端Master复制到Slave上。

  2)Master机器上生成密码对

   在Master节点上执行以下命令:

ssh-keygen–trsa–P''

  这条命是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。

生成的密钥对:

id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下。

  查见"/home/hadoop/"下是否有".ssh"文件夹,且".ssh"文件下是否有俩个刚生产的无密码密钥对。

  接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。

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

 

  在验证前,需要做俩件事儿。

第一件事儿是修改文件"authorized_keys"权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能),另一件事儿是用root用户设置"/etc/ssh/sshd_config"的内容。

使其无密码登录有效。

  1)修改文件"authorized_keys"

chmod600~/.ssh/authorized_keys

   

   备注:

如果不进行设置,在验证时,扔提示你输入密码,在这里花费了将近半天时间来查找原因。

在网上查到了几篇不错的文章,把作为"Hadoop集群_第5期副刊_JDK和SSH无密码配置"来帮助额外学习之用。

 

    2)设置SSH配置

  用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容。

RSAAuthenticationyes#启用RSA认证

PubkeyAuthenticationyes#启用公钥私钥配对认证方式

AuthorizedKeysFile.ssh/authorized_keys#公钥文件路径(和上面生成的文件同)

 

  设置完之后记得重启SSH服务,才能使刚才设置有效。

 

servicesshdrestart

    

  退出root登录,使用hadoop普通用户验证是否成功。

 

sshlocalhost

  从上图中得知无密码登录本级已经设置完毕,接下来的事儿是把公钥复制所有的Slave机器上。

使用下面的命令格式进行复制公钥:

 

scp~/.ssh/id_rsa.pub远程用户名@远程服务器IP:

~/

  例如:

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

~/

 

  上面的命令是复制文件"id_rsa.pub"到服务器IP为"192.168.1.3"的用户为"hadoop"的"/home/hadoop/"下面。

 

  下面就针对IP为"192.168.1.3"的Slave1.Hadoop的节点进行配置。

  1)把Master.Hadoop上的公钥复制到Slave1.Hadoop上

  从上图中我们得知,已经把文件"id_rsa.pub"传过去了,因为且没有建立起无密码连接,所以在连接时,仍然要提示输入输入Slave1.Hadoop服务器用户hadoop的密码。

为了确保确实已经把文件传过去了,用SecureCRT登录Slave1.Hadoop:

192.168.1.3服务器,查见"/home/hadoop/"下是否存在这个文件。

 

 

  从上面得知我们已经成功把公钥复制过去了。

  2)在"/home/hadoop/"下创建".ssh"文件夹

  这一步且不是必须的,如果在Slave1.Hadoop的"/home/hadoop"已经存在就不需要创建了,因为我们之前且没有对Slave机器做过无密码登录配置,所以该文件是不存在的。

用下面命令进行创建。

(备注:

用hadoop登录系统,如果不涉及系统文件修改,一般情况下都是用我们之前建立的普通用户hadoop进行执行命令。

 

mkdir~/.ssh

  然后是修改文件夹".ssh"的用户权限,把他的权限修改为"700",用下面命令执行:

chmod700~/.ssh

  备注:

如果不进行,即使你按照前面的操作设置了"authorized_keys"权限,且配置了"/etc/ssh/sshd_config",仍重启了sshd服务,在Master能用"sshlocalhost"进行无密码登录,可是对Slave1.Hadoop进行登录仍然需要输入密码,就是因为".ssh"文件夹的权限设置不对。

这个文件夹".ssh"在配置SSH无密码登录时系统自动生成时,权限自动为"700",如果是自己手动创建,它的组权限和其他权限都有,这样就会导致RSA无密码远程登录失败。

 

 

  对比上面俩张图,发现文件夹".ssh"权限已经变了。

  3)追加到授权文件"authorized_keys"

  到目前为止Master.Hadoop的公钥也有了,文件夹".ssh"也有了,且权限也修改了。

这一步就是把Master.Hadoop的公钥追加到Slave1.Hadoop的授权文件"authorized_keys"中去。

使用下面命令进行追加且修改"authorized_keys"文件权限:

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

chmod600~/.ssh/authorized_keys

 

  4)用root用户修改"/etc/ssh/sshd_config"

  具体步骤参考前面Master.Hadoop的"设置SSH配置",具体分为俩步:

第1是修改配置文件;第2是重启SSH服务。

  5)用Master.Hadoop使用SSH无密码登录Slave1.Hadoop

  当前面的步骤设置完毕,就能够使用下面命令格式进行SSH无密码登录了。

ssh远程服务器IP

 

  从上图我们主要3个地方,第1个就是SSH无密码登录命令,第2、3个就是登录前后"@"后面的机器名变了,由"Master"变为了"Slave1",这就说明我们已经成功实现了SSH无密码登录了。

  最后记得把"/home/hadoop/"目录下的"id_rsa.pub"文件删除掉。

 

rm–r~/id_rsa.pub

  到此为止,我们经过前5步已经实现了从"Master.Hadoop"到"Slave1.Hadoop"SSH无密码登录,下面就是重复上面的步骤把剩余的俩台(Slave2.Hadoop和Slave3.Hadoop)Slave服务器进行配置。

这样,我们就完成了"配置Master无密码登录所有的Slave服务器"。

  和Master无密码登录所有Slave原理一样,就是把Slave的公钥追加到Master的".ssh"文件夹下的"authorized_keys"中,记得是追加(>>)。

  为了说明情况,我们当下就以"Slave1.Hadoop"无密码登录"Master.Hadoop"为例,进行一遍操作,也算是巩固一下前面所学知识,剩余的"Slave2.Hadoop"和"Slave3.Hadoop"就按照这个示例进行就能够了。

  首先创建"Slave1.Hadoop"自己的公钥和私钥,且把自己的公钥追加到"authorized_keys"文件中。

用到的命令如下:

ssh-keygen–trsa–P''

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

 

  接着是用命令"scp"复制"Slave1.Hadoop"的公钥"id_rsa.pub"到"Master.Hadoop"的"/home/hadoop/"目录下,且追加到"Master.Hadoop"的"authorized_keys"中。

  1)在"Slave1.Hadoop"服务器的操作

  用到的命令如下:

 

scp~/.ssh/id_rsa.pub    hadoop@192.168.1.2:

~/

 

  

  2)在"Master.Hadoop"服务器的操作

  用到的命令如下:

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

  然后删除掉刚才复制过来的"id_rsa.pub"文件。

  最后是测试从"Slave1.Hadoop"到"Master.Hadoop"无密码登录。

  从上面结果中能够见到已经成功实现了,再试下从"Master.Hadoop"到"Slave1.Hadoop"无密码登录。

  至此"Master.Hadoop"和"Slave1.Hadoop"之间能够互相无密码登录了,剩下的就是按照上面的步骤把剩余的"Slave2.Hadoop"和"Slave3.Hadoop"和"Master.Hadoop"之间建立起无密码登录。

这样,Master能无密码验证登录每个Slave,每个Slave也能无密码验证登录到Master。

  所有的机器上都要安装JDK,当下就先在Master服务器安装,然后其他服务器按照步骤重复进行即可。

安装JDK以及配置环境变量,需要以"root"的身份进行。

  首先用root身份登录"Master.Hadoop"后在"/usr"下创建"java"文件夹,再把用FTP上传到"/home/hadoop/"下的"jdk-6u31-linux-i586.bin"复制到"/usr/java"文件夹中。

mkdir/usr/java

cp/home/hadoop/jdk-6u31-linux-i586.bin/usr/java

 

  接着进入"/usr/java"目录下通过下面命令使其JDK获得可执行权限,且安装JDK。

 

chmod   +x    jdk-6u31-linux-i586.bin

./jdk-6u31-linux-i586.bin

 

  按照上面几步进行操作,最后点击"Enter"键开始安装,安装完会提示你按"Enter"键退出,然后查见"/usr/java"下面会发现多了一个名为"jdk1.6.0_31"文件夹,说明我们的JDK安装结束,删除"jdk-6u31-linux-i586.bin"文件,进入下一个"配置环境变量"环节。

  编辑"/etc/profile"文件,在后面添加Java的"JAVA_HOME"、"CLASSPATH"以及"PATH"内容。

  1)编辑"/etc/profile"文件

vim    /etc/profile

  2)添加Java环境变量

  在"/etc/profile"文件的尾部添加以下内容:

#setjavaenvironment

exportJAVA_HOME=/usr/java/jdk1.6.0_31/

exportJRE_HOME=/usr/java/jdk1.6.0_31/jre

exportCLASSPATH=.:

$CLASSPATH:

$JAVA_HOME/lib:

$JRE_HOME/lib

exportPATH=$PATH:

$JAVA_HOME/bin:

$JRE_HOME/bin

  或者

#setjavaenvironment

exportJAVA_HOME=/usr/java/jdk1.6.0_31

exportCLASSPATH=.:

$CLASSPATH:

$JAVA_HOME/lib:

$JAVA_HOME/jre/lib

exportPATH=$PATH:

$JAVA_HOME/bin:

$JAVA_HOME/jre/bin

   之上俩种意思一样,那么我们就选择第2种来进行设置。

 

 

  3)使配置生效

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

当前位置:首页 > 初中教育 > 语文

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

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