Hadoop Hbase完全分布式环境搭建

       Hadoop Hbase完全分布式环境搭建(呕心沥血之作,为表支持请下载doc文件版,里面图文并茂详细介绍了hadoop完全分布式环境搭建全部步骤,条例清晰,并且经过测试验证通过!)http://download.csdn.net/detail/xh16319/7483027

     Hadoop生态其他的相关产品的安装后续会更新,请持续关注!

一、安装软件准备

  由于资源限制,本文档的Hadoop的节点环境均部署在虚拟的linux上,使用的虚拟机和linux的版本如下:

VMware-workstation-full-8.0.2-591240.exe

[红帽企业.Linux.5].TLF-SOFT-RedHat.Enterprise.Linux.5.Update.2-XiSO.iso

  Hadoop及其相关包版本如下:

hadoop-1.1.2.tar.gz

hbase-0.94.7-security.tar.gz

  其他软件包版本如下:

    jdk-6u24-linux-i586.bin

二、linux环境准备

 1.安装VMware Workstation

      安装步骤省略

 2.创建一个虚拟机

     这里需要说明的是虚拟机的Network Adapter选择Host-only方式,并且保证VMware Network Adapter VMnet1为打开状态。

  关于Network Adapter的几种桥接方式的区别如下,这里由于宿主机和客户机都在同一个电脑上,所以采用Host-only的方式。

  宿主机(windows)与客户机(安装在虚拟机中的Linux)网络连接方式:

    (1) host-only 宿主机与客户机单独组网。

        优点:网络隔离

        缺点:虚拟机与其他服务器之间不能通信

    (2)bridge  客户机与宿主机在同一个局域网中。

        优点:都在同一个局域网,可以互相访问

        坏处:不安全   

 3.安装RedHat Linux

     安装时,对于网卡的设置,采用默认的DHCP方式,后面再进行ip设置。

  

 4.RedHat 环境准备

 4.1关闭防火墙和关闭防火墙的自动运行

    1. 关闭防火墙

       执行命令:service iptables stop

   验证:service iptables status

    2. 关闭防火墙的自动运行

       执行命令:chkconfig iptables off

   验证:chkconfig --list | grep iptables

 4.2 安装jdk

     JDK同一安装在/opt/java/jdk1.6.0_24目录下,具体的安装和设置步骤省略

 4.3 设置Linux的字符编码(非必须)

 4.4 建立专门的运行hadoop的用户 

三、Hadoop分布式环境搭建

 1 克隆Linux虚拟机环境

(1)选中将被复制的linux虚拟机,单击菜单“VM-->Manage-->Clone

(2)按照步骤即可复制一个Linux虚拟机环境。

  注意:

 2 设置各个虚拟机IP

   1.查看windowsVMware1ip地址和子网掩码

     

   2.分别设置三个节点的ip地址、子网掩码和网关。

    

  

重启网卡,执行命令service network restart,让其立即生效。

测试:在三个节点虚拟机中分别输入ping 192.168.75.10,ping 192.168.75.20,ping 192.168.75.30

 3 配置各个主机名

     (1)查看当前虚拟机的主机名:hostname

     (2)修改当前会话中的主机名,执行命令hostname hadoop

    但此种方式只对当前会话有效

 (3)修改配置文件中的主机名,执行命令vi /etc/sysconfig/network

 验证:重启reboot

 4 配置各个hosts文件

  对三个节点分别执行命令: vi /etc/hosts,均增加三行行内容,如下:

 192.168.75.10  hadoop1

     192.168.75.20  hadoop2

     192.168.75.30  hadoop3

验证:ping hadoop1, ping hadoop2, ping hadoop3

 5 配置各个SSH免密码登录

  5.1 ssh原理 

Ø n客户端向服务器端发出连接请求 

Ø n服务器端向客户端发出自己的公钥 

Ø 客户端使用服务器端的公钥加密通讯密钥然后发给服务器端 

Ø 如果通讯过程被截获,由于窃听者即使获知公钥和经过公钥加密的内容,但不拥有私钥依然无法解密(RSA算法) 

Ø 服务器端接收到密文后,用私钥解密,获知通讯密钥 

Ø  ssh-keygen命令给服务器端产生公私钥密钥对,cp命令将服务器端公钥复制到客户端(注意在伪分布模式下服务器端和客户端是同一台机器),因此客户端本身就拥有了服务器端公钥,可以直接进行免密码接入 

  5.2 ssh配置

Ø n注意要以grid用户登录,在grid用户的主目录下进行操作! 

Ø n每个节点作相同操作 

    (1)进入用户主目录,cd ~,执行命令 ssh-keygen -t rsa 产生秘钥,位于~/.ssh文件夹中

(2)执行命令 cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

(3)验证:ssh hadoop2(由于公钥还未分发到各个节点,所以这里只能ssh 本机)

  5.3 ssh配置前后对比

   ssh配置前,这里以hadoop3为例:

 ssh配置后,这里以hadoop2为例:

  5.4生成known_hosts文件

   对于每个节点,对集群中包括自己在内的所有节点均进行ssh登录,知道生成known_hosts文件未知,known_hosts文件中应该包括集群中所有节点的登录信息


注意:每次ssh登录 其他节点以后,要执行logout命令退回到本身的节点。

  如:ssh hadoop2  

      logout

 6 分发ssh公钥 

把各个节点的authorized_keys的内容互相拷贝加入到对方的此文件中,然后就可以免密码彼此ssh连入 

验证:在hadoop1中执行ssh hadoop2ssh hadoop3 看是否需要输入密码

      在hadoop2中执行ssh hadoop1ssh hadoop3 看是否需要输入密码

      在hadoop3中执行ssh hadoop1ssh hadoop2 看是否需要输入密码

 7 安装并配置hadoop

  (1) grid用户上传并解压hadoop-1.1.2.tar.gz,执行命令:tar zxvf hadoop-1.1.2.tar.gz

  (2)将生成的hadoop-1.1.2拷贝至/home/grid/目录下

  (3)root用户修改环境变量:vi /etc/profile ,在grid用户下,其为只读文件

    

  (4)修改hadoop-env.sh文件

取消掉第9行的注释,并配置自己的JAVA_HOME

export JAVA_HOME=/opt/java/jdk1.6.0_24

 (5)修改core-site.xml文件

  覆盖<configuration></configuration>

<configuration>

    <property>

        <name>fs.default.name</name>

        <value>hdfs://hadoop1:9000</value>

        <description>change your own hostname</description>

    </property>

</configuration>

  注意:这里fs.default.name的值为要将作为NameNode的节点的IP,本示例中使用hadoop1作为 NameNode,故设置为hadoop1:9000,其他的节点的该配置文件中该值也是hadoop1:9000

(6)修改hdfs-site.xml文件

   覆盖<configuration></configuration>

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>2</value>

</property>

    <property>

        <name>dfs.permissions</name>

        <value>false</value>

    </property>

</configuration>

(7)修改mapred-site.xml文件

覆盖<configuration></configuration>

<configuration>

    <property>

        <name>mapred.job.tracker</name>

        <value>hadoop1:9001</value>

        <description>change your own JobTracker hostname</description>

    </property>

</configuration>

注意:这里mapred.job.tracker的值为要将作为JobTracker的节点的IP,本示例中使用hadoop1作为 JobTracker,故设置为hadoop1:9001,其他的节点的该配置文件中该值也是hadoop1:9001

(8)修改mastersslaves文件 

 masters中设置的是namenodejobtrackerSecondaryNameNode所在的节点

 Slaves中设置的是datanodetasktracker所在的节点

 8 向各节点复制hadoop 

  (1)执行命令scp -r ./hadoop-1.1.2 hadoop2:/home/grid/

                scp -r ./hadoop-1.1.2 hadoop3:/home/grid/

    

 9 格式化分布式文件系统 

执行命令hadoop namenode -format hadoop进行格式化

格式化成功后将在/tmp目录下生成hadoop-grid目录

NameNode进程没有启动成功可能的因素?

    (1)没有格式化

(2)配置文件只copy,不修改自己的hostname

(3)hostnameip没有绑定

(4)SSH的免密码登录没有配置成功

注意:多次格式化hadoop也是错误的

    解决办法:删除/tmp/*文件夹后,重新格式化

 10 启动并检测守护进程 

  10.1 启动守护进程

   进入hadoop1/$HADOOP_HOME/bin(namenodejobtracker所在的节点),执行start-all.sh命令启动守护进程,即可启动所有的服务

停止守护进程命令:stop-all.sh

  10.2检测守护进程启动情况

hadoop1hadoop2hadoop3节点下分别执行jps命令:

四、Hbase完全分布式环境搭建

 1. 解压hbase安装包

    用grid用户上传并解压hbase-0.94.7-security.tar.gz,执行命令:tar zxvf hbase-0.94.7-security.tar.gz,将解压后目录hbase-0.94.7-security 复制到/home/grid/目录下,并重命名为hbase-0.94.7

注意:选择hbase的版本的时候最好百度下,找到与已经安装的hadoop版本兼容的hbase版本,这里hadoop-1.1.2hbase-0.94.7兼容。

 2. 配置环境变量

切换到root账户,修改/etc/profile文件,新增如下两句:

执行source /etc/profile使其生效,执行hbase version命令查看安装版本

 3. 修改conf/hbase-env.sh脚本,设置环境变量

   #Java环境

 export JAVA_HOME=/opt/java/jdk1.6.0_24

#通过hadoop的配置文件找到hadoop集群

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

如下图:

 4. 编辑hbase-site.xml进行配置

<configuration>

   <property>

    <name>hbase.rootdir</name>

  <value>hdfs://hadoop1:9000/hbase</value>

   </property>

   <property>

    <name>hbase.cluster.distributed</name>

  <value>true</value>

   </property>

   <property>

    <name>hbase.master</name>

  <value>hadoop1:60000</value>

   </property>

   <property>

    <name>hbase.zookeeper.quorum</name>

    <value>hadoop1,hadoop2,hadoop3,hadoop4</value>

   </property>

</configuration>

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

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

   hbase.master指定Master的位置

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

 5. 编辑 regionservers文件

将所有的slavenode添加到这个文件,类似与hadoopslaves文件,该文件原本为localhost,如下是我添加的内容,两台slavenode机器的域名(hosts文件中已做解析):

hadoop2

hadoop3

hadoop4

 6 解决版本、jar包冲突

(1)/home/grid/hbase-0.94.7/lib/hadoop-core-1.0.4.jar改为hadoop-core-1.0.4.jar.bak

(2)/home/grid/hadoop-1.1.2/hadoop-core-1.1.2.jar拷贝到/home/grid/hbase-0.94.7/lib/

7. 复制Hbase到其它节点

 scp -r /home/grid/ hbase-0.94.7  hadoop2:/home/grid/

 scp -r /home/hadoop/ hbase-0.94.7  hadoop3:/home/grid/

 scp -r /home/hadoop/ hbase-0.94.7  hadoop4:/home/grid/

 6. 启动Hbase并验证Hmaster已经启动

 启动hbase之前必须保证hadoop已经正常启动

 启动hbase命令: start-hbase.sh 

 启动验证:

master节点输入jps

  

Slaves节点输入jps

或者在浏览器上输入http://192.168.75.10:60010/master-status

停止hbase命令:stop-hbase.sh

启动顺序:先启动Hadoop-hbase,如果使用自己安装的zookeeper启动顺序是:Hadoop->zookeeper->hbase

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

 7. 进入hbase shell

 进入hbaseshell客户端:cd $HBASE_HOME/bin    hbase shell

 退出hbaseshell客户端:quit

 

   



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值