logo资料库

课程设计 hadoop集群的安装与配置.doc

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
1 Hadoop概述
2 安装前准备
3 安装步骤
3.1 安装Ubuntu12.04-server
3.2 安装Hadoop
3.2.1添加节点ip和主机名
3.2.2 创建用户
3.2.3 在所有节点上安装JDK
3.2.4 安装Hadoop集群
3.2.5 配置Hadoop集群
3.2.6 启动及验证
3.2.7 通过网页查看集群
4 常见问题FAQ
4.1 关于 Warning: $HADOOP_HOME is deprecated.
4.1.1切换至root用户
4.1.2添加内容
4.1.3重新生效
4.2 解决"no datanode to stop"问题
4.2.1第一种解决方案
 4.2.2第二种解决方案
4.3 Slave服务器中datanode启动后又自动关闭
4.4 从本地往hdfs文件系统上传文件
4.5 安全模式导致的错误
4.6 解决Exceeded MAX_FAILED_UNIQUE_FETCHES
4.7 解决"Too many fetch-failures"
4.8 处理速度特别的慢
4.9解决hadoop OutOfMemoryError问题
4.10 Namenode in safe mode
4.11 IO写操作出现问题
4.12 status of 255 error
5 结束语
《 并 行 程 序 设 计 》 大 作 业 Hadoop 集群的安装与配置 计算机与信息工程学院 网络工程 题 院 专 作 目: 部: 业: 者: 指导教师: 2013 年 6 月 18 日 1
目录 1 Hadoop 概述.................................................................................................................................... 3 2 安装前准备.....................................................................................................................................3 3 安装步骤.........................................................................................................................................3 3.1 安装 Ubuntu12.04-server........................................................................................................ 3 3.2 安装 Hadoop............................................................................................................................3 3.2.1 添加节点 ip 和主机名 ..............................................................................................4 3.2.2 创建用户 .................................................................................................................. 4 3.2.3 在所有节点上安装 JDK ..........................................................................................4 3.2.4 安装 Hadoop 集群 ................................................................................................... 5 3.2.5 配置 Hadoop 集群 ................................................................................................... 6 3.2.6 启动及验证.............................................................................................................. 7 3.2.7 通过网页查看集群 ................................................................................................10 4 常见问题 FAQ..............................................................................................................................11 4.1 关于 Warning: $HADOOP_HOME is deprecated............................................................... 11 4.1.1 切换至 root 用户 .....................................................................................................11 4.1.2 添加内容................................................................................................................. 12 4.1.3 重新生效................................................................................................................. 12 4.2 解决"no datanode to stop"问题............................................................................................. 12 4.2.1 第一种解决方案.....................................................................................................12 4.2.2 第二种解决方案.....................................................................................................13 4.3 Slave 服务器中 datanode 启动后又自动关闭.......................................................................13 4.4 从本地往 hdfs 文件系统上传文件.......................................................................................14 4.5 安全模式导致的错误........................................................................................................... 14 4.6 解决 Exceeded MAX_FAILED_UNIQUE_FETCHES........................................................14 4.7 解决"Too many fetch-failures"..............................................................................................15 4.8 处理速度特别的慢............................................................................................................... 15 4.9 解决 hadoop OutOfMemoryError 问题................................................................................. 16 4.10 Namenode in safe mode........................................................................................................16 4.11 IO 写操作出现问题............................................................................................................. 16 4.12 status of 255 error................................................................................................................. 16 5 结束语...........................................................................................................................................17 2
1 Hadoop 概述 Hadoop 一个分布式系统基础架构,由 Apache 基金会开发。用户可以在不了解分布式底 层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop 实现了 一个分布式文件系统(Hadoop Distributed File System),简称 HDFS。HDFS 有着高容错性的 特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput) 来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS 放 宽了(relax)POSIX 的要求(requirements)这样可以流的形式访问(streaming access)文 件系统中的数据。 2 安装前准备 软件:Ubuntu12.04-server 光盘(镜像)、Hadoop1.0.4 3 安装步骤 3.1 安装 Ubuntu12.04-server 集群中包括 3 个节点:1 个 Master,2 个 Salve,节点之间局域网连接,可以相互 ping 通,节点 IP 地址分布及主机名如下: 机器名称 master salve1 salve2 3.2 安装 Hadoop IP 地址 210.45.165.131 210.45.165.133 210.45.165.134 集群中的一台主机被指定为 NameNode,另一台主机被指定为 JobTracker,NameNode 和 JobTracker 被称作 master,其它机器同时被用做 DataNode 和 TaskTracker,它们被称作 slave。 Hadoop 安 装 文 件 的 根 目 录 被 称 作 : HADOOP_HOME , 集 群 中 的 所 有 机 器 的 HADOOP_HOME 目录相同。 Hadoop 包含两类配置文件: i. 只 读 的 默 认 配 置 文 件 : src/core/core-default.xml, src/hdfs/hdfs-default.xml and src/mapred/mapred-default.xml. ii.节点配置文件:conf/core-site.xml, conf/hdfs-site.xml and conf/mapred-site.xml. 3
3.2.1 添加节点 ip 和主机名 修改所有节点的/etc/hosts 文件,在/etc/hosts 文件中添加所有节点的 ip 及其的 hostname。 i. hadoop@master:~$ sudo vim /etc/hosts xx.xx.xx.xx master ii. 增加: xx.xx.xx.xx slave1 slave2 xx.xx.xx.xx iii. 修改完成后,ping slave1,查看是否能 ping 通。 备注:当设置 SSH 无密码验证后,可以"scp"进行复制,然后把原来的"hosts"文件执行覆盖 即可。) 3.2.2 创建用户 创建统一用户 hadoop 并且实现 ssh 认证登录(master 可以无密码登录 slave) i. hadoop@master:~$sudo apt-get install ssh ii. hadoop@master:~$sudo /etc/init.d/ssh start iii. hadoop@master:~$cd ~/.ssh iv. hadoop@master ssh:~$ssh-keygen -t rsa v. hadoop@master ssh:~$cat id_rsa.pub >> authorized_keys vi. hadoop@master:~/.ssh$ ssh-copy-id -i id_rsa.pub slave1 hadoop@master:~/.ssh$ ssh-copy-id -i id_rsa.pub slave2 v. hadoop@master:~/.ssh$ ssh slave1 测试是否能够无密码连接。 注:SSH 无密码原理 Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器 Salve(DataNode | Tasktracker)上时,需要在 Master 上生成一个密钥对,包括一个公钥和一 个私钥,而后将公钥复制到所有的 Slave 上。当 Master 通过 SSH 连接 Salve 时,Salve 就会 生成一个随机数并用 Master 的公钥对随机数进行加密,并发送给 Master。Master 收到加密 数之后再用私钥解密,并将解密数回传给 Slave,Slave 确认解密数无误之后就允许 Master 进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户 端 Master 复制到 Slave 上。 3.2.3 在所有节点上安装 JDK 从官网下载 Linux 下 64 位 jdk 1.6,jdk-6u43-linux-x64.bin。 注:可在 Windows 上下载,通过 SSH Secure File Transfer 将文件上传至 Linux。或者在 Linux 使用 wget 下载。使用如下命令: @slave2:~$ wget http://download.oracle.com/otn-pub/java/jdk/6u43-b01/jdk-6u43-linux-x64.bin 4
在 Master 节点上下载 JDK 后,可使用 scp 命令拷贝至 slave 主机。如下所示: hadoop@slave1:~$ scp jdk-6u43-linux-x64.bin hadoop@210.45.165.134:/home/hadoop 修改 jdk 安装文件为可执行,然后拷贝至/usr/local/java 文件夹下安装。 $chmod 777 jdk-6u43-linux-x64.bin $ cd /usr/local/ $ sudo mkdir java $ cd java $ sudo cp ~/jdk-6u43-linux-x64.bin ./ $ sudo ./jdk-6u43-linux-x64.bin 安装完成后可在/usr/local/java 目录下看到文件夹 jdk.1.6.0_43。 配置环境变量。 修改/etc/profile 文件。 sudo vi /etc/profile 在文件结束添加如下内容: #set java environment export JAVA_HOME=/usr/local/java/jdk1.6.0_43 export JRE_HOME=/usr/local/java/jdk1.6.0_43/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 使用 source /etc/profile 命令使设置生效。 输入 java –version,测试是否设置成功。 3.2.4 安装 Hadoop 集群 下载 hadoop1.0.4.tar.gz 安装包,使用 SSH Secure File Transfer Client 上传至各个节点。 将安装文件拷贝至/usr/local 文件夹,解压并重命名为 hadoop。 $ cd /usr/local $ sudo cp ~/hadoop-1.0.4.tar.gz ./ $ sudo tar -zxvf hadoop-1.0.4.tar.gz $ sudo mv hadoop-1.0.4 hadoop $ sudo chown –R hadoop:root hadoop //将 hadoop 文件夹读权限分配给 hadoop 用户。 在/usr/local/hadoop 下创建 tmp 文件夹。 hadoop@master:/usr/local/hadoop$ mkdir tmp 把 Hadoop 安装路径添加到/etc/profile 文件中。增加如下代码。 #set hadoop path 5
export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin 使用 source 命令使用其生效。 hadoop@master:/usr/local/hadoop$ source /etc/profile 3.2.5 配置 Hadoop 集群 ①配置 master 节点 Hadoop 配置文件在 conf 目录下,之前的版本的配置文件主要是 Hadoop-default.xml 和 Hadoop-site.xml。由于 Hadoop 发展迅速,代码量急剧增加,代码开发分为了 core,hdfs 和 map/reduce 三部分,配置文件也被分成了三个 core-site.xml、hdfs-site.xml、mapred-site.xml。 core-site.xml 和 hdfs-site.xml 是站在 HDFS 角度上配置文件;core-site.xml 和 mapred-site.xml 是站在 MapReduce 角度上配置文件。 i. 配置 core-site.xml 文件 修改 Hadoop 核心配置文件 core-site.xml,这里配置的是 HDFS 的地址和端口号。 hadoop.tmp.dir /usr/local/hadoop/tmp fs.default.name hdfs://210.45.165.131:9000 ii.配置 hdfs-site.xml 文件 修改 Hadoop 中 HDFS 的配置,配置的备份方式默认为 3(Slave 少于 3 台时会报错)。 dfs.replication 1 iii.配置 mapred-site.xml 文件 修改 Hadoop 中 MapReduce 的配置文件,配置的是 JobTracker 的地址和端口。 6
mapred.job.tracker http://210.45.165.131:9001 iv. 配置 masters 文件 将 conf/masters 文件中的 localhost 修改成 210.45.165.131。 v. 配置 slaves 文件 将 conf/slaves 文件中的 localhost 修改成所有 slave 的 ip,文件内容如下: 210.45.165.133 210.45.165.134 vi. 修改 conf/hadoop-env.sh 在该文件中加入 JAVA_HOME 环境变量。 ② 配置 slave 节点 将 master 节点的 conf 目录拷贝至 slave 节点。 hadoop@master:/usr/local/hadoop$ sudo scp -r conf root@210.45.165.133:/usr/local/hadoop hadoop@master:/usr/local/hadoop$ sudo scp -r conf root@210.45.165.134:/usr/local/hadoop 注:使用 root 用户拷贝,需先设置 root 用户密码,使用 sudo password 设置 root 用户密码。 3.2.6 启动及验证 i. 格式化 HDFS 文件系统 在"Master "上使用普通用户 hadoop 进行操作。(备注:只需一次,下次启动不再需要格 式化,只需 start-all.sh) hadoop@master:/usr/local/hadoop$ hadoop namenode -format Warning: $HADOOP_HOME is deprecated. 13/04/16 12:01:54 INFO namenode.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: STARTUP_MSG: STARTUP_MSG: STARTUP_MSG: = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1393290; compiled by 'hortonfo' on Wed Oct host = master /210.45.165.131 args = [-format] version = 1.0.4 3 05:13:58 UTC 2012 build 7
= 64-bit 12:01:55 INFO ************************************************************/ 13/04/16 12:01:54 INFO util.GSet: VM type 13/04/16 12:01:54 INFO util.GSet: 2% max memory = 17.77875 MB 13/04/16 12:01:54 INFO util.GSet: capacity = 2^21 = 2097152 entries 13/04/16 12:01:54 INFO util.GSet: recommended=2097152, actual=2097152 13/04/16 12:01:55 INFO namenode.FSNamesystem: fsOwner=hadoop 13/04/16 12:01:55 INFO namenode.FSNamesystem: supergroup=supergroup 13/04/16 12:01:55 INFO namenode.FSNamesystem: isPermissionEnabled=true 13/04/16 12:01:55 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100 13/04/16 accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s) 13/04/16 12:01:55 INFO namenode.NameNode: Caching file names occuring more than 10 times 13/04/16 12:01:55 INFO common.Storage: Image file of size 112 saved in 0 seconds. 13/04/16 12:01:55 INFO common.Storage: Storage directory /usr/local/hadoop/tmp/dfs/name has been successfully formatted. 13/04/16 12:01:55 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at master /210.45.165.131 ************************************************************/ isAccessTokenEnabled=false namenode.FSNamesystem: ii. 启动 hadoop 在所有节点上使用以下命令设置 iptables $sudo iptables -P INPUT ACCEPT $sudo iptables -P OUTPUT ACCEPT 使用下面命令启动。 start-all.sh 启动 hadoop 成功后,在 Master 中的 tmp 文件夹中生成了 dfs 文件夹,在 Slave 中 的 tmp 文件夹中均生成了 dfs 文件夹和 mapred 文件夹。 iii. 验证 hadoop 方法一:使用 jps 命令查看进程。 Master: hadoop@master:/usr/local/hadoop$ jps /all 7891 Jps 7397 SecondaryNameNode 7053 NameNode 8
分享到:
收藏