Hadoop 安装配置手册


第 1 页/共 12 页 版权所有@软件学院 云计算实验室 《Hadoop 安装配置手册》 清单  硬件:至少 3 台计算机(一台 master,两台 slave)  每一台计算机的安装步骤相同,仅 Hadoop 的配置区分 master 和 slave  软件:  Ubuntu(OpenSSH)  JRE(版本 1.5 以上),建议选择 Sun 公司发行的版本  Hadoop (0.20.2) 安装步骤: 一、安装 Ubuntu 在 Select Software 时,务必选中 Open SSH Server 配置主机名( vi /etc/hosts) vi /etc/hosts 127.0.0.1 localhost 10.102.0.1 node1 10.102.0.2 node2 10.102.0.3 node3 第 2 页/共 12 页 版权所有@软件学院 云计算实验室 二. 安装 JRE (注:如果已安装好 JDK,请跳过此步) 1. 下载 JRE 到本地磁盘(/opt/jre-6u35-linux-x64.bin) 2. chmod 755 jre-6u35-linux-x64.bin 3. ./ jre-6u35-linux-x64.bin 设置环境变量: 在环境变量文件/etc/profile 中添加如下: export JAVA_HOME=/opt/jre1.6.0_35 export PATH=$JAVA_HOME/bin:$PATH export classPath=/opt/jre1.6.0_35 验证 shell 命令 :java -version 看是否与你的版本号一致。 java version "1.6.0_35" Java(TM) SE Runtime Environment (build 1.6.0_35-b10) Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01, mixed mode) 三、安装 Hadoop 1. 创建 Hadoop 用户 创建用户:# adduser hadoop 创建安装目录:# cd /home/hadoop 在所有的机器上都建立相同的目录,最好是以该用户的 home 路径来做 hadoop 的安装路径。 注:最好不要使用 root 安装,因为不推荐各个机器之间使用 root 访问 chown -R hadoop /home/hadoop/hadoop-0.20.2/ 第 3 页/共 12 页 版权所有@软件学院 云计算实验室 chgrp -R hadoop /home/hadoop/hadoop-0.20.2/ 2. 配置 SSH $ su hadoop $ cd /home/hadoop $ ssh-keygen $ cd .ssh $ cp id_rsa.pub authorized_keys 测试: $ ssh localhost 或者: $ ssh node1 第一次 ssh 会有提示信息: The authenticity of host ‘node1 (10.64.56.76)’ can’t be established. RSA key fingerprint is 03:e0:30:cb:6e:13:a8:70:c9:7e:cf:ff:33:2a:67:30. Are you sure you want to continue connecting (yes/no)? 输入 yes 来继续。这会把该服务器添加到你的已知主机的列表中 发现链接成功,并且无需密码即可连接 4 ) 复制 authorized_keys 到 node2 和 node3 上 第 4 页/共 12 页 版权所有@软件学院 云计算实验室 为了保证 node1 可以无需密码自动登录到 node2 和 node3,先在 node2 和 node3 上执行 $ su hadoop cd /home/hadoop $ ssh-keygen -t rsa 一路按回车. 然后回到 node1,复制 authorized_keys 到 node2 和 node3 [hadoop@hadoop .ssh]$ scp authorized_keys node2:/home/hadoop/.ssh/ [hadoop@hadoop .ssh]$ scp authorized_keys node3:/home/hadoop/.ssh/ 这里会提示输入密码,输入 hadoop 账号密码就可以了。 改动你的 authorized_keys 文件的许可权限 [hadoop@hadoop .ssh]$chmod 644 authorized_keys 测试:ssh node2 或者 ssh node3(第一次需要输入 yes)。 如果不须要输入密码则配置成功,如果还须要请检查上面的配置能不能正确。 3. 安装 Hadoop 进入 node1,切换为 hadoop 用户 $ su hadoop 下载安装包后,直接解压安装即可: $ cd /home/hadoop $ tar -zxvf hadoop-0.20.2.tar.gz 第 5 页/共 12 页 版权所有@软件学院 云计算实验室 (以 root 用户)修改各节点/etc/profile 文件 新增以下内容: export HADOOP_HOME=/home/hadoop/hadoop-0.20.2 export PATH=$PATH:$HADOOP_HOME/bin 修改完毕后,执行 source /etc/profile 来使其生效。 4.Hadoop 配置 分别进入集群所有节点(Node1、Node2、Node3),修改如下配置文件。 4.1 配置文件:conf/core-site.xml fs.default.name hdfs://node1:9000 hadoop.tmp.dir /home/hadoop/hadoop_home/var 1)fs.default.name 是 NameNode 的 URI。hdfs://主机名:端口/ 2)hadoop.tmp.dir :Hadoop 的默认临时路径,这个最好配置,如果在新增节点或者其他 情况下莫名其妙的 DataNode 启动不了,就删除此文件中的 tmp 目录即可。不过 如果删除了 NameNode 机器的此目录,那么就需要重新执行 NameNode 格式化的命令。 4.2 配置文件:conf/mapred-site.xml 第 6 页/共 12 页 版权所有@软件学院 云计算实验室 mapred.job.tracker node1:9001 mapred.local.dir /home/hadoop/hadoop_home/var 注:mapred.job.tracker 是 JobTracker 的主机(或者 IP)和端口。主机:端口。 4.3 配置文件:conf/hdfs-site.xml dfs.name.dir /home/hadoop/name1 #hadoop 的 name 目录路径 dfs.data.dir /home/hadoop/data1 第 7 页/共 12 页 版权所有@软件学院 云计算实验室 dfs.replication 2 1) dfs.name.dir 是 NameNode 持久存储名字空间及事务日志的本地文件系统路径。 当这 个值是一个逗号分割的目录列表时,nametable 数据将会被复制到所有目录中做冗余备份。 2) dfs.data.dir 是 DataNode 存放块数据的本地文件系统路径,逗号分割的列表。 当这 个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。 3) dfs.replication 是数据需要备份的数量,默认是 3,如果此数大于集群的机器数会出 错。 注:此处的 name1、data1 目录不能预先创建,hadoop 格式化时会自动创建,如果预先创建 反而会有问题。 4.4 配置文件:conf/hadoop-env.sh 修改各节点 conf/hadoop-env.sh 文件 export JAVA_HOME=/usr/lib/jvm/java-6-sun/ 这里修改为你的 jdk 的安装位置。 4.5 配置文件:masters 和 slaves 配置 conf/masters 和 conf/slaves 来设置主从结点,注意最好使用主机名,并且保证机器 之间通过主机名可以互相访问,每个主机名一行。 vi masters: 输入: node1 vi slaves: 输入: node2 node3 第 8 页/共 12 页 版权所有@软件学院 云计算实验室 配置结束,把配置好的 conf 文件夹拷贝到其他集群的机器中,并且保证上面的配置对于其 他机器而言正确,例如:如果其他机器的 Java 安装路径不一样,要配置 conf/hadoop-env.sh $ scp -r /home/hadoop/hadoop-0.20.2/conf root@node2: /home/hadoop/ hadoop-0.20.2/ $ scp -r /home/hadoop/hadoop-0.20.2/conf root@node3: /home/hadoop/ hadoop-0.20.2/ 注:如果集群内机器的环境完全一样,可以在一台机器上配置好,然后把配置好的文件即 conf 整个文件夹拷贝到其他机器的相同位置即可。 5.hadoop 启动 5.1 格式化一个新的分布式文件系统 先格式化一个新的分布式文件系统 $ cd hadoop-0.20.2 $ bin/hadoop namenode -format 成功情况下系统输出: 12/02/06 00:46:50 INFO namenode.NameNode:STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: host = ubuntu/127.0.1.1 STARTUP_MSG: args = [-format] STARTUP_MSG: version = 0.20.203.0 STARTUP_MSG:build=http://svn.apache.org/repos/asf/hadoop/common/branches/branch -0.20-security-203-r 1099333; compiled by 'oom' on Wed May 4 07:57:50 PDT 2011 ************************************************************/ 12/02/0600:46:50 INFO namenode.FSNamesystem: fsOwner=root,root 12/02/06 00:46:50 INFO namenode.FSNamesystem:supergroup=supergroup 12/02/06 00:46:50 INFO namenode.FSNamesystem:isPermissionEnabled=true 第 9 页/共 12 页 版权所有@软件学院 云计算实验室 12/02/06 00:46:50 INFO common.Storage: Imagefile of size 94 saved in 0 seconds. 12/02/06 00:46:50 INFO common.Storage: Storagedirectory /opt/hadoop/hadoopfs/name1 has been successfully formatted. 12/02/06 00:46:50 INFO common.Storage: Imagefile of size 94 saved in 0 seconds. 12/02/06 00:46:50 INFO common.Storage: Storagedirectory /opt/hadoop/hadoopfs/name2 has been successfully formatted. 12/02/06 00:46:50 INFO namenode.NameNode:SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode atv-jiwan-ubuntu-0/127.0.0.1 ************************************************************/ 查看输出保证分布式文件系统格式化成功 执行完后可以到 master 机器上看到/home/hadoop/name1 目录。 5.2 启动所有节点 启动方式 1: $ bin/start-all.sh (同时启动 HDFS 和 Map/Reduce) 系统输出:(略) 启动方式 2: 启动 Hadoop 集群需要启动 HDFS 集群和 Map/Reduce 集群。 在分配的 NameNode 上,运行下面的命令启动 HDFS: $ bin/start-dfs.sh(单独启动 HDFS 集群) 系统输出:(略) bin/start-dfs.sh 脚本会参照 NameNode 上${HADOOP_CONF_DIR}/slaves 文件的内容,在所 有列出的 slave 上启动 DataNode 守护进程。 在分配的 JobTracker 上,运行下面的命令启动 Map/Reduce: $bin/start-mapred.sh (单独启动 Map/Reduce) 系统输出:(略) 第 10 页/共 12 页 版权所有@软件学院 云计算实验室 bin/start-mapred.sh 脚本会参照 JobTracker 上${HADOOP_CONF_DIR}/slaves 文件的内容, 在所有列出的 slave 上启动 TaskTracker 守护进程。 5.3 关闭所有节点 从主节点 master 关闭 hadoop,主节点会关闭所有从节点的 hadoop。 $ bin/stop-all.sh 系统输出:(略) Hadoop 守护进程的日志写入到 ${HADOOP_LOG_DIR} 目录 (默认是 ${HADOOP_HOME}/logs)。 6.Hadoop 测试 1)浏览 NameNode 和 JobTracker 的网络接口,它们的地址默认为: NameNode - http://node1:50070/ JobTracker - http://node1:50030/ 3) 使用 netstat –nat 查看端口 9000 和 9001 是否正在使用。 4) 使用 jps 查看进程 要想检查守护进程是否正在运行,可以使用 jps 命令(这是用于 JVM 进程的 ps 实用程 序)。这个命令列出 5 个守护进程及其进程标识符。 5)将输入文件拷贝到分布式文件系统: $ bin/hadoop dfs -mkdir input $ bin/hadoop dfs -put conf/core-site.xml input 运行 Map/Reduce 示例程序: $ bin/hadoop jar hadoop-0.20.2-examples.jar grep input output 'dfs[a-z.]+' 统计单词出现 的次数 查看输出文件: 将输出文件从分布式文件系统拷贝到本地文件系统查看: $ bin/hadoop dfs -get output output $ cat output/* 第 11 页/共 12 页 版权所有@软件学院 云计算实验室 或者在分布式文件系统上查看输出文件: $ bin/hadoop dfs -cat output/* 统计结果: root@v-jiwan-ubuntu-0:~/hadoop/hadoop-0.20.2-bak/hadoop-0.20.2#bin/hadoop dfs -cat output/part-00000 7.添加节点 可扩展性是 HDFS 的一个重要特性,首先在新加的节点上安装 hadoop,然后修改 $HADOOP_HOME/conf /master 文件,加入 NameNode 主机名,然后在 NameNode 节点上修改 $HADOOP_HOME/conf/slaves 文件,加入新加节点主机名,再建立到新加节点无密码的 SSH 连接。 运行启动命令: ./start-all.sh 然后可以通过 http://(Masternode 的主机名):50070 查看新添加的 DataNode 附录 Hadoop 与 SSH 在 Hadoop 启动以后,Namenode 是通过 SSH(Secure Shell)来启动和停止各个 datanode 上的各种守护进程的,这就需要在节点之间执行指令的时候是不需要输入密码的形式,故须 要配置 SSH 运用无密码公钥认证的形式。 以三台机器为例,现在 node1 是主节点,他须要连接 node2 和 node3。须要确定每台机 器上都安装了 ssh,并且 datanode 机器上 sshd 服务已经启动。 ( 说明:hadoop@hadoop~]$ssh-keygen -t rsa 第 12 页/共 12 页 版权所有@软件学院 云计算实验室 这个命令将为 hadoop 上的用户 hadoop 生成其密钥对,询问其保存路径时直接回车采用默认 路径,当提示要为生成的密钥输入 passphrase 的时候,直接回车,也就是将其设定为空密 码。 生成的密钥对 id_rsa,id_rsa.pub,默认存储在/home/hadoop/.ssh 目录下。 然后将 id_rsa.pub 的内容复制到每个机器(也包括本机)的 /home/hadoop/.ssh/authorized_keys 文件中,如果机器上已经有 authorized_keys 这个文 件了,就在文件末尾加上 id_rsa.pub 中的内容,如果没有 authorized_keys 这个文件,直 接复制.) HDFS 常用操作 Hadoop dfs -ls 列出 HDFS 下的文件 hadoop dfs -ls in 列出 HDFS 下某个文档中的文件 hadoop dfs -put test1.txt test 上传文件到指定目录并且重新命名,只有所有的 DataNode 都接收完数据才算成功 hadoop dfs -get in getin 从 HDFS 获取文件并且重新命名为 getin,同 put 一样可操作文 件也可操作目录 hadoop dfs -rmr out 删除指定文件从 HDFS 上 hadoop dfs -cat in/* 查看 HDFS 上 in 目录的内容 hadoop dfsadmin -report 查看 HDFS 的基本统计信息,结果如下 hadoop dfsadmin -safemode leave 退出安全模式 hadoop dfsadmin -safemode enter 进入安全模式 负载均衡 运行命令: ./start-balancer.sh 可以使 DataNode 节点上选择策略重新平衡 DataNode 上的数据块的分布 主机信息 机器名 IP 地址 作用 Master/Slave node1 10.102.0.1 NameNode、JobTracker M 第 13 页/共 12 页 版权所有@软件学院 云计算实验室 node2 10.102.0.2 DataNode、TaskTracker S node3 10.102.0.3 DataNode、TaskTracker S Node4 10.102.0.4 DataNode、TaskTracker S
还剩12页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

965502674

贡献于2014-09-27

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf