收藏 分享(赏)

Hadoop环境配置与实验报告.pdf

上传人:HR专家 文档编号:4916248 上传时间:2019-01-22 格式:PDF 页数:30 大小:1.99MB
下载 相关 举报
Hadoop环境配置与实验报告.pdf_第1页
第1页 / 共30页
Hadoop环境配置与实验报告.pdf_第2页
第2页 / 共30页
Hadoop环境配置与实验报告.pdf_第3页
第3页 / 共30页
Hadoop环境配置与实验报告.pdf_第4页
第4页 / 共30页
Hadoop环境配置与实验报告.pdf_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、 研究生课程考试成绩单 (试卷封面) 院 系 计算机 科学与工程 专业 计算机科学与技术 学生姓名 李富豪 学号 131440 课程名称 计算机新技术综合实践 授课时间 2014 年 4 月 至 2014 年 6 月 周学时 1 学分 2 简 要 评 语 ( 1) 小组答辩过程表述 很 清晰; ( 2) 实验结果 的 演示 表明搭建的系统以及编写的程序很好地满足功能要求; ( 3) 报告内容很好地符合 要求。 考核论题 总评成绩 (含平时成绩) 备注 任课教师签名: 日期: 2014.7 注: 1. 以论文或大作业为考核方式的课程必须填此表,综合考试可不填。“简要评语”栏缺填无效。 2. 任课

2、教师填写后与试卷一起送院系研究生秘书处。 3. 学位课总评成绩以百分制计分。 2 目录 1 集群部署介绍 3 1.1 Hadoop 简介 . 3 1.2 环境说明 . 3 1.3 网络配置 . 3 1.3.1 编辑当前机器名称 3 1.3.2 修改当前机器 IP 4 1.3.3 配置 hosts 文件 . 4 1.4 所需软件 . 6 1.4.1 JDK 软件 . 6 1.4.2 Hadoop 软件 6 2 SSH 无密码验证配置 . 6 2.1 安装和启动 SSH 协议 . 6 2.2 配置 Master 无密 码登录所有 Salve . 6 2.3 配置所有 Slave 无密码登录 Mas

3、ter . 9 3 Java 环境安装 9 3.1 安装 JDK 10 3.2 配置环境变量 . 10 3.2.1 编辑 “/etc/profile“文件 10 3.2.2 添加 Java 环境变量 . 10 3.2.3 使配置生效 10 3.3 验证安装成功 . 10 3.4 安装剩余机器 . 11 4 Hadoop 集群安装 11 4.1 安装 hadoop 11 4.1.1 在 “/usr/hadoop“创建 “tmp“文件夹 . 11 4.1.2 配置 “/etc/profile“ 11 4.1.3 重启 “/etc/profile“ 12 4.2 配置 hadoop 12 4.2.1

4、 配置 hadoop-env.sh . 12 4.2.2 配置 core-site.xml 文件 . 12 4.2.3 配置 hdfs-site.xml 文件 . 13 4.2.4 配置 mapred-site.xml 文件 14 4.2.5 配置 masters 文件 . 14 4.2.6 配置 slaves 文件 15 4.3 启动及验证 . 16 4.3.1 格式化 HDFS 文件系统 . 16 4.3.2 启动 hadoop 16 4.3.3 验证 hadoop 17 4.3.4 关闭 hadoop 19 4.4 网页查看集群 . 19 4.4.1 访问 “http:/localhos

5、t:50030“ 19 4.4.2 访问 “ http:/localhost:50070“ . 20 5 实验部分 20 5.1 实验内容 . 20 5.2 实验数据生成 . 20 5.3 实验过程 . 24 5.4 实验结果 . 28 5.5 遇到的问题及解决 . 30 hadoop环境配置与试验报告 3 1 集群部署介绍 1.1 Hadoop简介 Hadoop 是 Apache 软件基金会旗下的一个开源分布式计算平台。以 Hadoop 分布式文件系统( HDFS, Hadoop Distributed Filesystem)和 MapReduce( Google MapReduce的开源实

6、现)为核心的 Hadoop 为用户提供了系统底层细节透明的分布式基础架构。 对于 Hadoop 的集群来讲,可以分成两大类角色: Master 和 Salve。一个 HDFS 集群是由一个 NameNode 和若干个 DataNode 组成的。其中 NameNode 作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的 DataNode 管理存储的数据。 MapReduce 框架是由一个单独运行在主节点上的 JobTracker 和运行在每个集群从节点的 TaskTracker 共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们

7、的执行情况,并且重新执行之前的失败任务;从节点 仅负责由主节点指派的任务。当一个 Job 被提交时, JobTracker 接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控 TaskTracker 的执行。 从上面的介绍可以看出, HDFS 和 MapReduce 共同组成了 Hadoop 分布式系统体系结构的核心。 HDFS在集群上实现分布式文件系统, MapReduce 在集群上实现了分布式计算和任务处理。 HDFS 在 MapReduce 任务处理过程中提供了文件操作和存储等支持, MapReduce 在 HDFS 的基础上实现了任务的分发、跟踪、执行等工作

8、,并收 集结果,二者相互作用,完成了 Hadoop 分布式集群的主要任务。 1.2 环境说明 集群中包括 4 个节点: 1 个 Master, 3 个 Salve,节点之间局域网连接,可以相互 ping 通 。节点 IP 地址分布如下: 机器名称 IP 地址 computer1( Master) 192.168.111.1 computer2( salve) 192.168.111.2 computer3( salve) 192.168.111.3 computer_test( salve) 192.168.111.4 四个节点上均是 Ubuntu10.0 系统,并且有一个相同的用户 hado

9、op。 Master 机器主要配置 NameNode 和JobTracker 的角色,负责总管分布式数据和分解任务的执行; 3 个 Salve 机器配置 DataNode 和 TaskTracker 的角色,负责分布式数据存储以及任务的执行。其实应该还应该有 1 个 Master 机器,用来作为备用,以防止Master 服务器宕机,还有一个备用马上启用。后续经验积累一定阶段后补上一台备用 Master 机器。 1.3 网络配置 下面的例子我们将以 Master 机器为例,即主机名为 “computer1“, IP 为 “192.168.111.1“进行一些主机名配置的相关操作。其他的 Slav

10、e 机器以此为依据进行修改。 1.3.1 编辑 当前机器名称 用下面命令进行显示机器名称,如果跟规划的不一致,要按照下面进行修改。 hostname 4 上图中,用 “hostname“查 “Master“机器的名字为 “computer1“,与我们预先规划的一致。 假定我们发现我们的机器的主机名不是我们想要的,通过对 “/etc/sysconfig/network“文件修改其中“HOSTNAME“后面的值,改成我们规划的名称。 这个 “/etc/sysconfig/network“文件是定义 hostname 和是否利用网络的不接触网络设备的对系统全体定义的文件。 设定形式:设定值 =值 “

11、/etc/sysconfig/network“的设定项目如下: NETWORKING 是否利用网络 GATEWAY 默认网关 IPGATEWAYDEV 默认网关的接口名 HOSTNAME 主机名 DOMAIN 域名 用下面命令进行修改当前机器的主机名(备注:修改系统文件一般用 root 用户) vim /etc/sysconfig/network 通过上面的命令我们从 “/etc/sysconfig/network“中找到 “HOSTNAME“进行修改 。 1.3.2 修改当前机器 IP 假定我们的机器连 IP 在当时安装机器时都没有配置好,那此时我们需要对 “ifcfg-eth0“文件进行配

12、置,该文件位于 “/etc/sysconfig/network-scripts“文件夹下。 在这个目录下面,存放的是网络接口(网卡)的制御脚本文件(控制文件), ifcfg- eth0 是默认的第一个网络接口,如果机器中有多个网络接口,那么名字就将依此类推 ifcfg-eth1, ifcfg-eth2, ifcfg- eth3,。 这里面的文件是相当重要的,涉及到网络能否正常工作。 设定形式:设定值 =值 设定项目项目如下: DEVICE 接口名(设备 ,网卡) BOOTPROTO IP 的配置方法( static:固定 IP, dhcpHCP, none:手动) HWADDR MAC 地址

13、ONBOOT 系统启动的时候网络接口是否有效( yes/no) TYPE 网络类型(通常是 Ethemet) NETMASK 网络掩码 IPADDR IP 地址 IPV6INIT IPV6 是否有效( yes/no) GATEWAY 默认网关 IP 地址 1.3.3 配置 hosts 文件 “/etc/hosts“这个文件是用来配置主机将用的 DNS 服务器信息,是记载 LAN 内接续的各主机的对应HostName 和 IP用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的 IP地址。 我们要测试两台机器之间知否连通,一般用 “ping 机器的 IP“,如果想用 “p

14、ing 机器的主机名 “发现找不见该名称的机器,解决的办法就是修改 “/etc/hosts“这个文件,通过把 LAN 内的各主机的 IP 地址和 HostName 的hadoop环境配置与试验报告 5 一一对应写入这个文件的时候,就可以解决问题。 例如:机器为 “computer1:192.168.111.1“对机器为 “computer2:192.168.111.2“用命令 “ping“记性连接测试。 直接对 IP 地址进行测试,能够 ping 通,但是对主机名进行测试,发现没有 ping 通,提示 “unknown host 未知主机 “,这时查看 “Master.Hadoop“的 “/e

15、tc/hosts“文件内容。 发现里面没有 “192.168.111.2 computer2“内容,故而本机器是无法对机器 的主机名为 “ computer2“ 解析。 在进行 Hadoop 集群配置中,需要在 “/etc/hosts“文件中添加集群中所有机器的 IP 与主机名,这样 Master与所有的 Slave 机器之间不仅可以通过 IP 进行通信,而且还可以通过主机名进行通信。所以在所有的机器上的 “/etc/hosts“文件末尾中都要添加如下内容: 192.168.111.1 computer1 192.168.111.2 computer2 192.168.111.3 comput

16、er3 192.168.111.4 computer_test 用以下命令进行添加: vim /etc/hosts 添加结果如下: 现在我们在进行对机器为 “computer2“的主机名进行 ping 通测试,看是否能测试成功。 从 下 图中我们已经能用主机名进行 ping 通了,说明我们刚才添加的内容,在局域网内能进行 DNS 解析了,那么现在剩下的事儿就是在其余的 Slave 机器上进行相同的配置。然后进行测试。(备注:当设置 SSH无密码验证后,可以 “scp“进行复制,然后把原来的 “hosts“文件执行覆盖即可。) 6 1.4 所需软件 1.4.1 JDK 软件 下载地址: http

17、:/ JDK 版本: jdk-6u31-linux-i586.bin 1.4.2 Hadoop 软件 下载地址: http:/hadoop.apache.org/common/releases.html Hadoop 版本: hadoop-1.0.0.tar.gz 2 SSH 无密码验证配置 Hadoop 运行过程中需要管理远端 Hadoop 守护进程,在 Hadoop 启动以后, NameNode 是通过 SSH( Secure Shell)来启动和停止各个 DataNode 上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置 SSH 运用无密码公钥认

18、证的形式,这样 NameNode 使用 SSH 无密码登录并启动 DataName 进程,同样原理, DataNode 上也能使用 SSH 无密码登录到 NameNode。 2.1 安装和启动 SSH协议 我们需要两个服务: ssh 和 rsync 已经安装了。可以通过下面命令查看结果显示如下: rpm qa | grep openssh rpm qa | grep rsync 假设没 有安装 ssh 和 rsync,可以通过下面命令进行安装。 yum install ssh 安装 SSH 协议 yum install rsync( rsync 是一个远程数据同步工具,可通过 LAN/WAN

19、快速同步多台主机间的文件) service sshd restart 启动服务 确保所有的服务器都安装,上面命令执行完毕,各台机器之间可以通过密码验证相互登。 2.2 配置 Master无密码登录所有 Salve ( 1) SSH 无密码原理 Master( NameNode | JobTracker)作为客户端,要实现无密码公钥 认证,连接到服务器 Salve( DataNode hadoop环境配置与试验报告 7 | Tasktracker)上时,需要在 Master 上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave 上。当 Master 通过 SSH 连接 Sa

20、lve 时, Salve 就会生成一个随机数并用 Master 的公钥对随机数进行加密,并发送给 Master。 Master 收到加密数之后再用私钥解密,并将解密数回传给 Slave, Slave 确认解密数无误之后就允许 Master 进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端 Master 复制到 Slave 上。 ( 2) Master 机器上生成密码对 Master 节点上执行以下命令: ssh-keygen t rsa P 这条命是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对: id_rsa 和id_rsa.pub,

21、默认存储在 “/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_c

22、onfig“的内容。使其无密码登录有效。 ( 3) 修改文件 “authorized_keys“ cat /.ssh/id_rsa.pub /.ssh/authorized_keys ( 4) SSH 配置 用 root 用户登录服务器修改 SSH 配置文件 “/etc/ssh/sshd_config“的下列内容。 RSAAuthentication yes # 启用 RSA 认证 PubkeyAuthentication yes # 启用公钥私钥配对认证方式 AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同) 设置完之后记得

23、重启 SSH 服务,才能使刚才设置有效。 service sshd restart 退出 root 登录,使用 hadoop 普通用户验证是否成功。 ssh localhost 从上图中得知无密码登录本级已经设置完毕,接下来的事儿是把公钥复制所有的 Slave 机器上。使用下面的命令格式进行复制公钥: scp /.ssh/id_rsa.pub 远程用户名 远程服务器 IP:/ 例如: scp /.ssh/id_rsa.pub hadoop192.168.111.3:/ 上面的命令是复制文件 “id_rsa.pub“到服务器 IP 为 “192.168.111.3“的用户为 “hadoop“的

24、“/home/hadoop/“下面。 ( 5) 把 computer1(master)上的公钥复制到 computer2(slave)上 从上图中我们得知,已经把文件 “id_rsa.pub“传过去了,因为并没有建立起无密码连接,所以在连接时,仍然要提示输入输入 computer2(slave)服务器用户 hadoop 的密码。为了确保确实已经把文件传过去了,用SecureCRT 登录 computer3:192.168.111.3 服务器,查看 “/home/hadoop/“下是否存在这个文件。 从上面得知我们已经成功把公钥复制 过去了。 ( 6) 在 “/home/hadoop/“下创建

25、“.ssh“文件夹 这一步并不是必须的,如果在 computer2(slave)的 “/home/hadoop“已经存在就不需要创建了,因为我们之8 前并没有对 Slave 机器做过无密码登录配置,所以该文件是不存在的。用下面命令进行创建。(备注:用 hadoop登录系统,如果不涉及系统文件修改,一般情况下都是用我们之前建立的普通用户 hadoop 进行执行命令。) mkdir /.ssh 然后是修改文件夹 “.ssh“的用户权限,把他的权限修改为 “700“,用下面命令执行: chmod 700 /.ssh 备注:如果不进行,即使你按照前面的操作设置了 “authorized_keys“权限

26、,并配置了 “/etc/ssh/sshd_config“,还重启了 sshd 服务,在 Master 能用 “ssh localhost“进行无密码登录,但是对 Slave1.Hadoop 进行登录仍然需要输入密码,就是因为 “.ssh“文件夹的权限设置不对。这个文件夹 “.ssh“在配置 SSH 无密码登录时系统自动生成时,权限自动为 “700“,如果是自己手动创建,它的组权限和其他权限都有,这 样就会导致 RSA 无密码远程登录失败。 对比上面两张图,发现文件夹 “.ssh“权限已经变了。 ( 7) 追加到授权文件 “authorized_keys“ 到目前为止 Master.Hadoop

27、 的公钥也有了,文件夹 “.ssh“也有了,且权限也修改了。这一步就是把Master.Hadoop 的公钥追加到 Slave1.Hadoop 的授权文件 “authorized_keys“中去。使用下面命令进行追加并修改“authorized_keys“文件权限: cat /id_rsa.pub /.ssh/authorized_keys chmod 600 /.ssh/authorized_keys ( 8) 用 root 用户修改 “/etc/ssh/sshd_config“ 具体步骤参考前面 Master.Hadoop 的 “设置 SSH 配置 “,具体分为两步:第 1 是修改配置文件;

28、第 2 是重启 SSH 服务。 ( 9) 用 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 步

29、已经实现了从 “computer1(master)“到 “computer2(slave)“SSH 无密码登录,下面就是重复上面的步骤把剩余的两台( computer3 和 computer_test) Slave 服务器进行配置。这样,我们就完成了 “配置 Master 无密码登录所有的 Slave 服务器 “。 hadoop环境配置与试验报告 9 2.3 配置所有 Slave无密码登录 Master 和 Master 无密码登录所有 Slave 原理一样,就是把 Slave 的公钥追加到 Master 的 “.ssh“文件夹下的“authorized_keys“中,记得是追加( )。 为了

30、说明情况,我们现在就以 “computer2(slave) “无密码登录 “ computer1(master)“为例,进行一遍操作,也算是巩固一下前面所学知识,剩余的 “ computer3“和 “computer_test“就按照这个示例进行就可以了。 首先创建 “computer2(slave)“自己的公钥和私钥,并把自己的公钥追加到 “authorized_keys“文件中。用到的命令如下: ssh-keygen t rsa P cat /.ssh/id_rsa.pub /.ssh/authorized_keys 接着是用命令 “scp“复制 “Slave1.Hadoop“的公钥 “i

31、d_rsa.pub“到 “ computer1(master)“的 “/home/hadoop/“目录下,并追加到 “ computer1(master)“的 “authorized_keys“中。 ( 1) 在 “ computer2(slave)“服务器的操作 用到的命令如下: scp /.ssh/id_rsa.pub hadoop192.168.1.2:/ ( 2) 在 “ computer1(master)“服务器的操作 用到的命令如下: cat /id_rsa.pub /.ssh/authorized_keys 然后删除掉刚才复制过来的 “id_rsa.pub“文件。 最后是测试从

32、“ computer2(slave)“到 “ computer1(master)“无密码登录。 从上面结果中可以看到已经成功实现了,再试下从 “ computer1(master)“到 “ computer2(slave)“无密码登录。 至此 “ computer1(master)“与 “Slave1.Hadoop“之间可以互相无密码登录了,剩下的就是按照上面的步骤把剩余的 “ computer3(slave)“和 “ computer_test(slave)“与 “ computer1(master)“之间建立起无密码登录。这样,Master 能无密码验证登录每个 Slave,每个 Slav

33、e 也能无密码验证登录到 Master。 3 Java 环境安装 所有的机器上都要安装 JDK,现在就先在 Master 服务器安装,然后其他服务器按照步骤重复进行即可。安装 JDK 以及配置环境变量,需要以 “root“的身份进行。 10 3.1 安装 JDK 首先用 root 身份登录 “ computer1(master)“后在 “/usr“下创建 “java“文件夹,再把用 FTP 上传到“/home/hadoop/“下的 “jdk-6u31-linux-i586.bin“复制到 “/usr/java“文件夹中。 mkdir /usr/java cp /home/hadoop/ jdk

34、-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“文件,进入下一个 “配置环境变量 “环节。 3.

35、2 配置环境变量 编辑 “/etc/profile“文件,在后面添加 Java 的 “JAVA_HOME“、 “CLASSPATH“以及 “PATH“内容。 3.2.1 编辑 “/etc/profile“文件 vim /etc/profile 3.2.2 添加 Java 环境变量 # set java environment export JAVA_HOME=/usr/java/jdk1.6.0_31/ export JRE_HOME=/usr/java/jdk1.6.0_31/jre export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME

36、/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 3.2.3 使配置生效 保存并退出,执行下面命令使其配置立即生效。 source /etc/profile 3.3 验证安装成功 配置完毕并生效后,用下面命令判断是否成功。 java -version 从上图中得知,我们以确定 JDK 已经安装成功。 hadoop环境配置与试验报告 11 3.4 安装剩余机器 这时用普通用户 hadoop通过下面命令格式把 “ computer1(master)“文件夹 “/home/hadoop/“的 JDK复制到其他 Slave 的 “/home/had

37、oop/“下面,剩下的事儿就是在其余的 Slave 服务器上按照上图的步骤安装 JDK。 scp /home/hadoop/jdk-6u31-linux-i586.bin 远程用户名 远程服务器 IP:/ 或者 scp /jdk-6u31-linux-i586.bin 远程用户名 远程服务器 IP:/ 备注: “代表当前用户的主目录,当前用户为 hadoop,所以 “代表 “/home/hadoop“。 例如:把 JDK 从 “ computer1(master)“复制到 “ computer2(slave)“的命令如下。 scp /jdk-6u31-linux-i586 hadoop192.

38、168.1.3:/ 然后查看 “ computer2(slave)“的 “/home/hadoop“查看是否已经复制成 功了。 现在我们就用最高权限用户 root 进行安装了。其他的与这个一样。 4 Hadoop 集群安装 所有的机器上都要安装 hadoop,现在就先在 Master 服务器安装,然后其他服务器按照步骤重复进行即可。安装和配置 hadoop 需要以 “root“的身份进行。 4.1 安装 hadoop 首先用 root 用户登录 “computer1(master)“机器,查看我们之前用 FTP 上传至 “/home/Hadoop“上传的“hadoop-1.0.0.tar.gz

39、“。 接着把 “hadoop-1.0.0.tar.gz“复制到 “/usr“目录下面。 cp /home/hadoop/hadoop-1.0.0.tar.gz /usr 下一步进入 “/usr“目录下,用下面命令把 “hadoop-1.0.0.tar.gz“进行解压,并将其命名为 “hadoop“,把该文件夹的读权限分配给普通用户 hadoop,然后删除 “hadoop-1.0.0.tar.gz“安装包。 cd /usr #进入 “/usr“目录 tar zxvf hadoop-1.0.0.tar.gz #解压 “hadoop-1.0.0.tar.gz“安装包 mv hadoop-1.0.0

40、hadoop #将 “hadoop-1.0.0“文件夹重命名 “hadoop“ chown R hadoop:hadoop hadoop #将文件夹 “hadoop“读权限分配给 hadoop 用户 rm rf hadoop-1.0.0.tar.gz#删除 “hadoop-1.0.0.tar.gz“安装包 解压后,并重命名。 把 “/usr/hadoop“读权限分配给 hadoop 用户(非常重要) 删除 “hadoop-1.0.0.tar.gz“安装包 最后在 “/usr/hadoop“下面创建 tmp 文件夹,把 Hadoop 的安装路径添加到 “/etc/profile“中,修改 “/e

41、tc/profile“文件(配置 java 环境变量的文件),将以下语句添加到末尾,并使其有效: # set hadoop path export HADOOP_HOME=/usr/hadoop export PATH=$PATH :$HADOOP_HOME/bin 4.1.1 在 “/usr/hadoop“创建 “tmp“文件夹 mkdir /usr/hadoop/tmp 4.1.2 配置 “/etc/profile“ vim /etc/profile 12 配置后的文件如下: 4.1.3 重启 “/etc/profile“ vim /etc/profile 4.2 配置 hadoop 4.

42、2.1 配置 hadoop-env.sh 该 “hadoop-env.sh“文件位于 “/usr/hadoop/conf“目录下。 在文件的末尾添加下面内容。 # set java environment export JAVA_HOME=/usr/java/jdk1.6.0_31 Hadoop 配置文件在 conf 目录下,之前的版本的配置文件主要是 Hadoop-default.xml 和 Hadoop-site.xml。由于 Hadoop 发展迅速,代码量急剧增加,代码开发分为了 core, hdfs 和 map/reduce 三部分,配置文件也被分成了三个 core-site.xml、

43、 hdfs-site.xml、 mapred-site.xml。 core-site.xml 和 hdfs-site.xml 是站在 HDFS 角度上配置文件; core-site.xml 和 mapred-site.xml 是站在 MapReduce 角度上配置文件。 4.2.2 配置 core-site.xml 文件 修改 Hadoop 核心配置文件 core-site.xml,这里配置的是 HDFS 的地址和端口号。 hadoop.tmp.dir /usr/hadoop/tmp hadoop环境配置与试验报告 13 (备注:请先在 /usr/hadoop 目录下建立 tmp 文件夹) A

44、 base for other temporary directories. fs.default.name hdfs:/192.168.111.1:9000(备注:使用计算机名也可以 ) 备注:如没有配置 hadoop.tmp.dir 参数,此时系统默认的临时目录为: /tmp/hadoo-hadoop。而这个目录在每次 重启后都会被干掉,必须重新执行 format 才行,否则会出错。 用下面命令进行编辑: 编辑结果显示如下: 4.2.3 配置 hdfs-site.xml 文件 修改 Hadoop 中 HDFS 的配置,配置的备份方式默认为 3。 dfs.replication 3 (备注:

45、 replication 是数据副本数量,默认为 3, salve 少于 3 台就会报错 ) 用下面命令进行编辑: 编辑结果显示如下: 14 4.2.4 配置 mapred-site.xml 文件 修改 Hadoop 中 MapReduce 的配置文件,配置的是 JobTracker 的地址和端口。 mapred.job.tracker http:/192.168.111.1:9001 用下面命令进行编辑: 编辑结果显示如下: 4.2.5 配置 masters 文件 有两种方案: ( 1)第一种 修改 localhost 为 Master ( 2)第二种 去掉 “localhost“,加入 M

46、aster 机器的 IP: 192.168.111.1 为保险起见,启用第二种,因为万一忘记配置 “/etc/hosts“局域网的 DNS 失效,这样就会出现意想不到的错误,但是一旦 IP 配对,网络畅通,就能通过 IP 找到相应主机。 用下面命令进行修改: hadoop环境配置与试验报告 15 编辑结果显示如下: 4.2.6 配置 slaves 文件 有两种方案: ( 1)第一种 去掉 “localhost“,每行只添加一个主机名,把剩余的 Slave 主机名都填上。 例如:添加形式如下 Computer2 Computer3 Computer_test ( 2)第二种 去掉 “localh

47、ost“,加入集群中所有 Slave 机器的 IP,也是每行一个。 例如:添加形式如下 192.168.1.3 192.168.1.4 192.168.1.5 原因和添加 “masters“文件一样,选择第二种方式。 用下面命令进行修改: 编辑结果如下: 现在在 Master 机器上的 Hadoop 配置就结束了,剩下的就是配置 Slave 机器上的 Hadoop。 一种方式是按照上面的步骤,把 Hadoop 的安装包在用普通用户 hadoop 通过 “scp“复制到其他机器的“/home/hadoop“目录下,然后根据实际情况进行安装配置,除了第 6 步,那是 Master 特有的。用下面命

48、令格式进行。(备注:此时切换到普通用户 hadoop) scp /hadoop-1.0.0.tar.gz hadoop服务器 IP:/ 例如:从 “computer1(Master)“到 “computer2(Slave)“复制 Hadoop 的安装包。 另一种方式是将 Master 上配置好的 hadoop 所在文件夹 “/usr/hadoop“复制到所有的 Slave 的 “/usr“目录下(实际上 Slave 机器上的 slavers 文件是不必要的, 复制了也没问题)。用下面命令格式进行。(备注:此时用户可以为 hadoop 也可以为 root) scp -r /usr/hadoop

49、root服务器 IP:/usr/ 例如:从 “computer1(Master)“到 “computer2(Slave)“复制配置 Hadoop 的文件。 上图中以 root 用户进行复制,当然不管是用户 root 还是 hadoop,虽然 Master 机器上的 “/usr/hadoop“文件夹用户 hadoop 有权限,但是 Slave1 上的 hadoop 用户却没有 “/usr“权限,所以没有创建文件夹的权限。所以无论是哪个用户进行拷贝,右面都是 “root机器 IP“格式。因为我们只是建立起了 hadoop 用户的 SSH 无密码连接,所以用 root 进行 “scp“时,扔提示让你输入 “ computer2(Slave)“服务器用户 root 的密码。 查看 “ computer2(Slave)“服务器的 “/usr“目录下是否已经存在 “hadoop“文件夹,确认已经复制成功。 16 4.3 启动及验证

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

当前位置:首页 > 实用文档 > 工作总结

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报