Hadoop+Zookeeper+HBase 安装指南

forward51

贡献于2012-11-13

字数:0 关键词: Hadoop 分布式/云计算/大数据

Hadoop+Zookeeper+HBase 安装指南 RUC DB-IIR 卞昊穹 http://blog.csdn.net/bhq2010 bianhaoqiong@gmail.com 2012.07.28-Version1 集群情况: 4 个节点,IP 分别为: node0: 192.168.181.136(NameNode/JobTracker/SecondaryNameNode/HMaster) node1: 192.168.181.132(DataNode/TaskTracker/HRegionServer/QuorumPeerMain) node2: 192.168.181.133(DataNode/TaskTracker/HRegionServer/QuorumPeerMain) node3: 192.168.181.134(DataNode/TaskTracker/HRegionServer/QuorumPeerMain) 软件版本: CentOS Linux 6.2 x86_64(2.6.32) OpenJDK-1.6.0_24 Hadoop-1.0.2 Zookeeper-3.4.3 HBase-0.94.0 http://mirrors.tuna.tsinghua.edu.cn/centos/6.2/isos/x86_64/ Note: 从 CentOS 镜像站下载系统: 系统安装之后可能没有自带完整的 GCC 和 JDK。如果是在 VMWare 虚拟机上安装系统的话, 安装 VMtools 之前需要先安装 GCC 并更新 Kernel,参考: http://www.linuxidc.com/Linux/2012-03/56932.htm 安装 HBase 需要先安装 Hadoop 和 Zookeeper。在安装 Hadoop 之前,需要先确定所有节点的 操作系统中安装了 JDK 1.6,并正确设置 JAVA_HOME、CLASSPATH、PATH 环境变量。 此外,在所有的节点上建立同名的用户以便于后续的安装。下文所使用的 shell 命令(灰色 方框内),以#开头表示在 root 用户下执行,以$开头表示在 hadoop 用户下执行。后续的安 装过程如下。 目录 1. hosts和hostname设置 .................................................................................................................. 2 2. SSH设置 ........................................................................................................................................ 2 3. Hadoop配置安装 .......................................................................................................................... 3 4. Zookeeper配置安装 ..................................................................................................................... 5 5. HBase配置安装 ............................................................................................................................. 6 1. hosts 和 hostname 设置 安装分布式的 Hadoop 和 HBase 集群需要在每一个节点上都设置网络中的 hosts 和本机的 hostname。 首先将/etc/hosts 文件中 127.0.0.1 这一行的中间一段改为本机的主机名,并在文件末尾添加 hosts 配置,每行为一个 ip 地址和对应的主机名,以空格分隔。以 node0 为例,修改后的 hosts 文件如下: 127.0.0.1 node0 localhost ::1 localhost6.localdomain6 localhost6 192.168.181.136 node0 192.168.181.132 node1 192.168.181.133 node2 192.168.181.134 node3 再将/etc/sysconfig/network 文件中 HOSTNAME=一行中“=”之后内容改为主机名,如: HOSTNAME=node0 2. SSH 设置 CentOS 默认安装了 OpenSSH,在所有节点上启动 SSH 服务器端 sshd 即可: # service sshd start 在/etc/rc.d/rc.local 文件的末尾添加一行,使得 sshd 开机启动: service sshd start 之后,在 node0 生成 ssh 公钥,添加到 node1/2/3 的~/.ssh/authorized_keys 文件中以实现 node0 无密码登录 node1/2/3,参考: http://www.linuxidc.com/Linux/2011-12/48969.htm 此处 node0是 ssh 客户端,node1/2/3是 ssh 服务器端。CentOS 系统中还需要将 authorized_keys 文件的权限改为 600: $ chmod 600 ~/.ssh/authorized_keys 完成后测试 node0 是否可以无密码登陆其他节点: $ ssh node1 $ ssh node2 $ ssh node3 Note: 如果添加公钥后 node0 仍然无法无密码登录其他几点,可能还需要将/etc/ssh/sshd_config 文 件中以下三行的注释去掉: #RSAAuthentication yes #PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys 修改文件后需要重新启动 sshd: # service sshd restart 3. Hadoop 配置安装 下载 Hadoop-1.0.2-bin.tar.gz: http://mirror.bjtu.edu.cn/apache/hadoop/common/hadoop-1.0.2/ 加压后,修改 conf 目录下的 6 个配置文件[1],如下: Note: 最好在 Linux 系统中解压,在 Windows 系统中解压会改变解压出来的文件的权限,部署到集 群上会比较麻烦,下文需要解压时不再赘述。此外,Hadoop-1.0.2、Zookeeper-3.4.3、 HBase0.94.0 是 HBase 官方的搭配,兼容性应该是比较好的。 1. hadoop-env.sh 在该文件设置了 Hadoop 的环境变量,至少要修改 JAVA_HOME,使其指向 JDK-1.6 的安装目 录/usr/lib/jvm/java-1.6.0 即使操作系统中已经设置了 JAVA_HOME 环境变量,此处仍然需要设置。 2. core-site.xml 此文件为 hadoop 的关键配置,如所用的文件系统、临时目录的路径等,配置如下: fs.default.name hdfs://node0:9000 hadoop.tmp.dir /home/hadoop/tmp 第一项指定文件系统为 node0 节点 9000 端口上的 HDFS,第二项指定 hadoop 所有数据的保 存路径(该路径要存在),该项默为/tmp/hadoop-{username},系统重启可能会导致数据丢失。 3. mapred-site.xml 此文件为 map-reduce 相关的配置,配置如下: mapred.job.tracker node0:9001 mapred.map.java.opts -Xmx1024m mapred.child.java.opts -Xmx1024m 第一项指定 JobTracker 的服务端口为 node0 的 9001 端口,第二、三项设定 jvm 堆空间,防 止运行 Map-Reduce 作业时出现内存不足,这两项要根据实际的需要和系统空闲的内存容量 设定。 4. hdfs-site.xml 此文件为 hdfs 的相关设置,配置如下: dfs.replication 3 dfs.support.append true dfs.permissions false dfs.datanode.max.xcievers 4096 第一项设定了文件系统备份的个数,通常为 3,第二项允许对文件的 append 操作,是为 HBase 设置的,第三项关闭权限检查,方便以后的远程的 hadoop-eclipse 插件访问 hdfs,第四项设 置 DataNode 同时可供访问的文件数上限,由于 HBase 需要同时操作大量的文件,该项至少 要设置为 4096。 5. masters 此文件指定 HDFS 的 SecondaryNameNode 所在的节点,本文中该文件只有一行: node0 6. slaves 此文件指定 HDFS 的 DataNode 所在的节点,本文中该文件包含三行: node1 node2 node3 至此,Hadoop 配置完成,将配置好的 Hadoop 安装目录下所有文件分发到集群中所有节点 的/home/hadoop/hadoop-1.0.2 路径下 之后在/etc/rc.d/rc.local 文件末尾添加如下内容,使得开机时关闭防火墙: service iptables stop 重新启动所有节点,在 node0 上执行如下命令格式化 HDFS 并启动 hadoop: $ ~/hadoop-1.0.2/bin/hadoop namenode -format $ ~/hadoop-1.0.2/bin/start-all.sh 在浏览器中访问: http://node0:50070 查看 HDFS 信息,访问: http://node0:50030 查看 Mao-Reduce 信息,如果正常,则 Hadoop 安装成功。 关闭 Hadoop: $ ~/hadoop-1.0.2/bin/stop-all.sh 4. Zookeeper 配置安装 下载 zookeeper-3.4.3.tar.gz: http://mirror.bjtu.edu.cn/apache/zookeeper/zookeeper-3.4.3/ 解压后,将 conf 目录下的 zoo-example.cfg 文件重命名为 zoo.cfg[2],修改其中的内容如下(未 改动的内容省略): dataDir=/home/hadoop/zookeeper server.1=node1:2888:3888 server.2=node2:2888:3888 server.3=node3:2888:3888 dataDir 默认在/tmp 下,系统重启会导致数据丢失。后面的三行在文件的末尾,每行描述一 个节点。 然后将配置好的 Zookeeper 分发到 server.1/2/3 上的/home/hadoop/zookeeprt-3.4.3 下,并在 每一个节点的 dataDir,即/home/hadoop/zookeeper 下创建一个 myid 文件,其中包含一个该 节点对应的数字,即 server.1/2/3 中'.'后面的数字,该数字应该在 1-255 之间。 在 server.1/2/3 上分别启动 Zookeeper: $ ~/zookeeper-3.4.3/bin/zkServer.sh start 测试 3 个节点是否可以被访问: $ ~/zookeeper-3.4.3/bin/zkCli.sh node1:2181 $ ~/zookeeper-3.4.3/bin/zkCli.sh node2:2181 $ ~/zookeeper-3.4.3/bin/zkCli.sh node3:2181 关闭 Zookeeper 同样需要在不同的节点分别操作: $ ~/zookeeper-3.4.3/bin/zkServer.sh stop Note: Note: 分布式模式下,hadoop 的配置文件中不能使用 ip 地址,必须使用主机名。 安装 hadoop 必须在所有的节点上使用相同的配置和安装路径,并用相同的用户来启动。启 动 Hadoop 的用户需要对安装目录和数据目录以及其中的所有文件具有必要的权限。 此外,Hadoop 中的 HDFS 和 Map-Reduce 可以分别启动,NameNode 和 JobTracker 也可以部 署在不同节点上以分摊负载,但小集群通常会把两者部署在同一个节点上,并称这个节点为 “主节点”。配置文件 masters 中指定的并不是集群的主节点,而是用于为 NameNode 提供 备份的 SecondaryNameNode,SecondaryNameNode 可以有不止一个,并且应该和 NameNode 在不同的物理节点,这样当 NameNode 发生故障时可以保证 HDFS 中元数据的安全。但用于 实验的小集群可以不考虑这么多。 HBase 集群需要依赖于一个 Zookeeper ensemble。HBase 集群中的所有节点以及要访问 HBase 的客户端都需要能够访问到该 Zookeeper ensemble。HBase 自带了 Zookeeper,但为了方便 其他应用程序使用 Zookeeper,最好使用单独安装的 Zookeeper ensemble。 此外,Zookeeper ensemble 一般配置为奇数个节点,并且 Hadoop 集群、Zookeeper ensemble、 HBase 集群是三个互相独立的集群,并不需要部署在相同的物理节点上,他们之间是通过网 络通信的。 5. HBase 配置安装 下载 hbase-0.94.0.tar.gz: http://mirror.bjtu.edu.cn/apache/hbase/hbase-0.94.0/ 解压后,修改 conf 目录下的 3 个配置文件[3][4],如下: 1. hbase-env.sh 同 hadoop-env.sh,该文件设定了 hbase 的环境,修改的部分如下: export JAVA_HOME=/usr/lib/jvm/java-1.6.0 export HBASE_CLASSPATH=/home/hadoop/hadoop-1.0.2/conf export HBASE_HEAPSIZE=2048 export HBASE_MANAGES_ZK=false 其中,HBASE_CLASSPATH 指向存放有 Hadoop 配置文件的目录,这样 HBase 可以找到 HDFS 的配置信息,由于本文 Hadoop 和 HBase 部署在相同的物理节点,所以就指向了 Hadoop 安 装路径下的 conf 目录。HBASE_HEAPSIZE 单位为 MB,可以根据需要和实际剩余内存设置, 默认为 1000。HBASE_MANAGES_ZK=false 指示 HBase 使用已有的 Zookeeper 而不是自带的。 2. hbase-site.xml 该文件是 hbase 最主要的配置文件,配置如下: hbase.rootdir hdfs://node0:9000/hbase hbase.cluster.distributed true hbase.tmp.dir /home/hadoop/hbase 第一项指定了 hbase 所使用的文件系统为 HDFS,根目录为 hdfs://node0:9000/hbase,该目录 应该由 HBase 自动创建,只需要指定到正确的 HDFS NameNode 上即可。第二项指定 HBase 的工作模式为分布式的,第三项指定 HBase 将元数据存放路径为/home/hadoop/hbase,需 要在 node0(Master)上创建该目录。 3. regionservers 此文件指定了 HBase 的 RegionServers,相当于 hadoop 配置文件中的 slaves。本文将 node1/2/3 作为 RegionServer,所以文件内容为: node1 node2 node3 HBase 配置完成,将其分发到所有的 Master 和 RegionServer 节点上的相同目录下,如 /home/hadoop/hbase-0.94.0,并把刚才的 zoo.cfg 拷贝到每个节点的 HBASE_CLASSPATH 下, 使得 HBase 可以找到 Zookeeper 的配置。 首先在 NameNode(node0)上将 HDFS 启动: $ ~/hadoop-1.0.2/bin/start-dfs.sh 然后在 Zookeeper ensemble 的每一个节点(node1/2/3)上分别启动 Zookeeper: $ ~/zookeeper-3.4.3/bin/zkServer.sh start 在 Master(node0)上启动 HBase: $ ~/hbase-0.94.0/bin/start-hbase.sh 用浏览器访问: http://node0:60010 可以看到 HBase 的运行信息,如果 Attributes ->Load average 中有数字,Tables 中有-ROOT- 和.META.两张表,并且 Region Server 中的信息也都正常,则 HBase 正常启动了。 关闭的顺序和启动的顺序相反,先关闭 HBase: $ ~/hbase-0.94.0/bin/stop-hbase.sh 然后关闭 Zookeeper 和 HDFS。 hadoop - nofile 32768 hadoop soft/hard nproc 32000 Note: 最好在 HBase 的所有节点上修改一下系统的最大文件数限制和最大进程数限制。 CentOS6.2 只需要在/etc/security/limits.conf 文件中加上两行: 其中 hadoop 为用于启动 HBase 的用户名。修改后需要注销并重新登录使得修改生效。 参考文献 [1] Hadoop 权威指南(第二版-中文版),第九章:构建 Hadoop 集群 [2] ZooKeeper Administrator's Guide, Section1: Deployment http://zookeeper.apache.org/doc/r3.4.3/zookeeperAdmin.html#ch_deployment [3] HBase The Definitive Guide, Chapter2: Installation [4] Apache HBase Reference Guide, Section2: Configuration http://hbase.apache.org/book.html

下载文档,方便阅读与编辑

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

需要 10 金币 [ 分享文档获得金币 ] 2 人已下载

下载文档

相关文档