hadoop zookeeper hbase的安装、配置

      在Hadoop还未诞生的那个时代,我们一般通过多线程、多任务分解的方式来尽可能的使用计算机资源,最大限度利用计算资源。而在这个大数据 迅速膨胀的今天,显然这样的处理已经不能满足我们的需求,面对互联网越来越多有价值的数据,如何更好的分析这些数据?如何挖掘其中的内 在价值?这时Hadoop作为一个分布式文件系统(Hadoop Distributed File System),简称HDFS应运而生。让使用者在完全不了解其底层实现细节的情况下,完成对 分布式计算应用的开发。HDFS有高容错性的特点,而且可以部署在低廉的硬件上,但是提供高传输率来访问应用程序的数据。

      Hadoop是根据 google公司发表的MapReduce和Google档案系统的论文自行实践而成。Hadoop实现了MapReduce (任务分解与结果汇总)的编程范式,将应用程序分割成许多小部分,而且每个小部分都能在集群中的任意节点上执行或重新执行。HDFS是用做存储所 有的计算节点的数据,为整个带来了非常高的带宽。MapReduce和HDFS的结合,可以使整个框架能很好地自动处理节点故障。 Apache Hadoop平台包括:Hadoop内核、MapReduce、HDFS以及相关的项目。eg,Apache Hive、Apache HBase、ZooKeeper、Avro etc.

    Hadoop的安装非常简单,目前最新的版本2.5.0 release已经发布。大家可以去官网上下载自己喜欢的版本。本文使用的hadoop-1.1.2。

   Hadoop是为了再Linux平台上使用而开发的,当然在windows、UNIX、甚至是Mac OS X 系统上运行也有良好的表现。不过在windows系统上安装就稍显负责一点儿需要安装Cygwin来模拟Linux然后才能安装Hadoop。闲话少说先让我们来看看在Linux如何安装Hadoop吧。

  我们都知道Hadoop是用java编写的,所以在安装Hadoop之前需要做点儿准备工作。

 

   1.我们要先来安装Hadoop编译以及MapReduce运行所必须的JDK。这里推荐安装JDK6.

   2.由于Hadoop运行在一个分布式集群的环境,所以会在多台机器上进行交互 我们需要安装ssh来实现不输入密码通信

 

   搭建hadoop环境

1.修改ip地址

namenode:192.168.134.100

datanode1:192.168.134.101

datanode2:192.168.134.102

    
hadoop zookeeper hbase的安装、配置
 我的namenode的ip设置为


hadoop zookeeper hbase的安装、配置
 这时候修改完后需要执行一下命令 否则修改不起作用


hadoop zookeeper hbase的安装、配置
 

2.修改hostname


hadoop zookeeper hbase的安装、配置
 修改相应的位置 保存退出即可。

将hostname与ip绑定


hadoop zookeeper hbase的安装、配置
 然后验证一下

hadoop zookeeper hbase的安装、配置
3.关闭防火墙 

hadoop zookeeper hbase的安装、配置
 
hadoop zookeeper hbase的安装、配置
  

4.设置SSH自动登录

创建用户组

groupadd hadoop  添加一个组

useradd hadoop -g hadoop  添加用户

 切换到普通用户下,输入ssh-****** -t rsa 命令生成公钥和私钥

然后进入/home/hadoop/.ssh目录下  执行cp id_rsa.pub authorized_keys

然后可以尝试ssh 连接hostname(第一次需要输入密码,第二次就不用了)
hadoop zookeeper hbase的安装、配置

所谓的SSH的无密码登录就是在master上生成一个公钥和私钥对,然后将公钥复制到slave机器上,当master去ssh slave时,在slave上会生成一个随机数并用master的公钥加密后传给master,然后master用自己的私钥解密后回传给slave 去判断是否一致。

在使用ssh无密码登录时我们需要注意:

1.需要且到root下,修改/etc/ssh/sshd_config修改一下配置


hadoop zookeeper hbase的安装、配置
 

2.切到普通用户如hadoop 将.ssh权限设置为700 :chmod 700 .ssh

3.切到普通用户如hadoop  将authorized_keys(公钥) 权限设置为600 chmod 600 authorized_keys

 5.jdk安装

执行mkdir /usr/java  然后通过ssh工具将jdk安装包上传到linux中 我使用的版本为jdk-6u45-linux-x64.bin它是一个自解压文件 安装过程如下

# chmod 755 jdk-6u45-linux-x64.bin

# ./jdk-6u45-linux-x64.bin

然后配置环境变量

# vi /etc/profile

添加以下内容


hadoop zookeeper hbase的安装、配置
 然后 修改保存完毕 需要使文件生效  执行命令 source /etc/profile

然后我们可以测试以下


hadoop zookeeper hbase的安装、配置
 JDK安装完成。

6.安装tomcat

创建文件夹并上传tomcat安装文件 mkdir /usr/servers 我使用的是apache-tomcat-6.0.39.tar.gz

解压apache-tomcat-6.0.39.tar.gz

# tar -zxvf apache-tomcat-6.0.39.tar.gz

解压OK了 我们可以执行命令  netstat -ano|grep 8080检查8080端口是否被占用 如果没有输出 则未被占用

我们进入apache-tomcat-6.0.39/bin下执行./startup.sh出现如下提示 说明tomcat安装OK了。


hadoop zookeeper hbase的安装、配置
 

 

     基本环境我们已经搞定,现在我们的主角hadoop即将登场,我们可以从Apache官网找到hadoop的压缩包,我们需要使用工具将其上传到Linux中,然后解压 过程跟安装tomcat类似。接下来让我们来看看,如何配置hadoop的吧。

     我们首先进入hadoop放置配置文件的文件夹,浏览一下大概内容:


hadoop zookeeper hbase的安装、配置
 在这之前切记不能忘了修改 %hadoop_home%/confg/hadoop-env.sh文件的Java_home

否则我们会在启动hadoop中报错 ”[hadoop] Error:JAVA_HOME is not set“

然后我们首先来配置一下core-site.xml文件



hadoop zookeeper hbase的安装、配置
 
 

接下来让我们来配置一下文件系统HDFS的配置文件hdfs-site.xml,由于我们只有俩个数据节点所以设置为2(默认值为3)


hadoop zookeeper hbase的安装、配置
 

接下来我们要对MapReduce进行配置mapred-site.xml


hadoop zookeeper hbase的安装、配置
 最后来配置一下masters(主) 修改成namenode 与上面保持一致,slaves(从)修改为 datanode1 datanode2

然后需要我们将配置好的hadoop 分发给datanode1和datanode2

scp -r /home/hadoop/hadoop-1.1.2 datanode1:/home/hadoop/

scp -r  /home/hadoop/hadoop-1.1.2 datanode2:/home/hadoop/

 现在我们开始来尝试启动hadoop吧:

启动前我们需要对HDFS文件系统进行格式化操作



hadoop zookeeper hbase的安装、配置
 
 

然后我们可以尝试启动我们的hadoop了

执行命令./start-all.sh即可

 【遇到的问题】


hadoop zookeeper hbase的安装、配置
 

【解决办法】

 修改${hadoop_home}/conf/hadoop-env.sh中的hadoop_pid_dir的内容

【可能遇到的防火墙问题导致hadoop无法启动解决办法】

关闭掉selinux

#/usr/sbin/setenforce 0 立刻关闭selinux

service iptables stop
hadoop zookeeper hbase的安装、配置
 

这时我们可以通过 /hadoop hdfsadmin -report来验证一下

[[email protected] bin]$./hadoop dfsadmin -report

Configured Capacity: 37558796288 (34.98 GB)

Present Capacity: 28923084830 (26.94 GB)

DFS Remaining: 28923027456 (26.94 GB)

DFS Used: 57374 (56.03 KB)

DFS Used%: 0%

Under replicated blocks: 1

Blocks with corrupt replicas: 0

Missing blocks: 0

 

-------------------------------------------------

Datanodes available: 2 (2 total, 0 dead)

 

Name: 192.168.134.102:50010

Decommission Status : Normal

Configured Capacity: 18779398144 (17.49 GB)

DFS Used: 28687 (28.01 KB)

Non DFS Used: 4317794289 (4.02 GB)

DFS Remaining: 14461575168(13.47 GB)

DFS Used%: 0%

DFS Remaining%: 77.01%

Last contact: Sat Sep 20 21:15:45 PDT 2014

 

 

Name: 192.168.134.101:50010

Decommission Status : Normal

Configured Capacity: 18779398144 (17.49 GB)

DFS Used: 28687 (28.01 KB)

Non DFS Used: 4317917169 (4.02 GB)

DFS Remaining: 14461452288(13.47 GB)

DFS Used%: 0%

DFS Remaining%: 77.01%

Last contact: Sat Sep 20 21:15:45 PDT 2014

 

我们也可以通过hadoop的web管理验证

查看jobtracker状态

http://192.168.134.100:50030

查看tasktracker状态

http://192.168.134.101:50060

http://192.168.134.102:50060

查看HDFS状态:

http://192.168.134.100:50070

安装zookeeper-3.4.5

使用WinSCP将zookeeper-3.4.5.tar上传到/home/hadoop目录下

tar -zxvf zookeeper-3.4.5.tar 解压

进入zookeeper-3.4.5/conf/目录 我们会看到zoo_simple.cfg配置文件

[[email protected] zookeeper-3.4.5]$ cd conf/

[[email protected] conf]$ ls

configuration.xsl  log4j.properties  zoo_sample.cfg

 

执行命令 cp zoo_sample.cfg zoo.cfg

编辑zoo.cfg文件如下:


hadoop zookeeper hbase的安装、配置
 

 为了让系统能够识别zoo.cfg中的server.id=host:port:port中server.id,在namenode节点的/home/hadoop/zookeeper-3.4.5/data中创建一个myid 里面只有一个数字1;同理datanode1的/home/hadoop/zookeeper-3.4.5/data下创建一个myid里面只有一个数字2,依次类推...id范围为1-255

这些配置需要复制到集群的每个节点上。

然后切换到root用户修改/etc/profile文件:


hadoop zookeeper hbase的安装、配置
 

然后同步修改其他节点,修改完成后执行zookeeper分发命令

scp -r zookeeper-3.4.5 datanode1:/home/hadoop

scp -r zookeeper-3.4.5 datanode2:/home/hadoop

现在我们可以尝试运行zookeeper了。

 

[[email protected] bin]$ ./zkServer.sh start

[[email protected] bin]$ ./zkServer.sh start

[[email protected] bin]$ ./zkServer.sh start

 

然后我们可以通过

[[email protected] bin]$ ./zkServer.sh status

JMX enabled by default

Using config: /home/hadoop/zookeeper-3.4.5/bin/../conf/zoo.cfg

Mode: leader

 

[[email protected] bin]$ ./zkServer.sh status

JMX enabled by default

Using config: /home/hadoop/zookeeper-3.4.5/bin/../conf/zoo.cfg

Mode: follower

来验证当前节点在zookeeper中的角色是leader还是follower。

至此zookeeper安装完成。

 【可能遇到的问题】

我们打开zookeeper-3.4.5/bin/zookeeper.out会看到这些异常(确实看着让人很不爽)不过我们不用管它,这只是其他节点上的zookeeper未启动导致的。


hadoop zookeeper hbase的安装、配置
 

HBase安装

 同样我首先需要上传HBase安装包并解压(具体过程与上一样 略)。

我们使用的是hbase-0.94.7-security.tar.gz 故解压完后将其重命名为hbase-0.94.7。

由于HBase-0.94.7中带有hadoop-core.1.0.4.jar 而我们使用的hadoop-1.1.2所以未了避免冲突,我们需要将hadoop-core-1.0.4.jar换成hadoop-core-1.1.2.jar。

然后打开conf/hbase-env.sh修改一下内容

 

# The java implementation to use.  Java 1.6 required.

export JAVA_HOME=/usr/java/jdk1.6.0_45

 

# Extra Java CLASSPATH elements.  Optional.

export HBASE_CLASSPATH=/home/hadoop/hadoop-1.1.2/conf

 

# Tell HBase whether it should manage it's own instance of Zookeeper or not.

export HBASE_MANAGES_ZK=false

 

接下来需要我们来配置conf/hbase-site.xml


hadoop zookeeper hbase的安装、配置
 hbase.rootdir指定Hbase数据存储目录,如果/hbase目录不存在,则需要在namenode节点中通过hadoop fs -    mkdir /hbase创建该目录

   hbase.cluster.distributed 指定是否是完全分布式模式,单机模式和伪分布式模式需要将该值设为false

   hbase.master指定Master的位置

   hbase.zookeeper.quorum 指定zooke的集群,多台机器以逗号分隔

 

接下来,打开conf/regionservers添加一下内容

datanode1

datanode2

指定HRegionServer进程将在哪些节点上运行

然后将配置好的HBase分发给各个节点 同上 略...

至此,HBase配置已经OK,在namenode上启动hadoop集群,接着在每台机器上启动zookeeper,最后启动hbase,以./hbase shell进入hbase的shell命令行,运行status查看当前的状态,如果命令可正常运行说明集群配置成功。

 验证地址:

http://192.168.134.100:60010/master-status


hadoop zookeeper hbase的安装、配置
 

启动顺序:hadoop-》zookeeper-》hbase

停止顺序:hbase-》zookeeper-》hadoop

 

 哈哈 大功告成 小开心一下。hadoop zookeeper hbase的安装、配置