初学者VmWare安装CentOS6.4虚拟机搭建hadoop1.2.1\hbase0.94.12环境

主要是希望对以后能有个笔记的东西所以记下所有安装的步骤,也希望跟我同样初学这方面知识的朋友能有一些分享的意义。

 

一  使用VmWare安装CentOS6.4虚拟机

         安装所需软件vmware、CentOS,我使用的vmware版本是7.0.0 build-203739,下载地址https://my.vmware.com/cn/web/vmware/downloads,注册什么的就请大家自己去解决了,CentOS用的是比较新的版本CentOS-6.4,镜像下载地址http://isoredirect.centos.org/centos/6/isos/x86_64/,只需要CentOS-6.4-x86_64-bin-DVD1.iso,2是一些附带的软件包。这个应该是32位和64位都支持的,本机是64位Windows7,本人没有测试过32位Windows7。

         1.安装好VmWare后选择File-New-Virtual Machine,然后选择Custom(如下图),Next

2.选择默认WorkStation即可(如下图),Next

 3.然后选择稍后安装操作系统(如下图),Next


 4.然后选择所要安装的系统类型,这里选择Linux的CentOS 64-bit(如下图),Next


5. 然后选择名称以及相应wmware对应的文件路径,因为要安装hadoop所以我取名master(如下图),Next


 6.然后选择CPU数和处理核心数,默认即可(如过cpu数超过实际cpu数量会出现警告,如下图),Next


7. 设置内存,由于本机只有4G内存,还要安装两台虚拟机所以就选了1G,如果实际内存比较大的话也可以酌情增加虚拟机内存,肯定是越大越好(如下图),Next


 8.然后选择虚拟机联网方式,三种方式区别大致如下:

(1) BRIDGE:相当于主机和虚拟机连接到同一个hub上,虚拟机要和主机配置到同一网段上

(2) NAT:使用vmnet8,主机开启必要的vmware服务,如vmvare dhcp,虚拟机设置成dhcp方式即可,当然也可以手工设置成vmnet1同一网段,比较麻烦

 

(3)HOST-ONLY:使用vmnet1,直接和主机互联,可以使用ifconfig查看配置情况

详细可以参见http://blog.csdn.net/collection4u/article/details/14127671,本人选择的是桥接方式(如下图),Next


 9.然后选择IO适配器,默认即可(如下图),Next


 10.然后选择虚拟硬盘,由于是新建虚拟机所以选择create(如下图),Next


 11.然后选择硬盘类型,默认即可(如下图),Next


 12.然后设置硬盘大小以及虚拟硬盘文件存储方式,如果硬盘比较充裕的话建议选择第一项,即是不管虚拟机实际使用多少空间硬盘文件都为20g,本人的电脑硬盘装了太多视频,就选择第二项即是虚拟硬盘使用多少就占用多少实际硬盘空间(如下图),Next


 13.然后设置镜像文件名称及路径,用于以后如果卸载Vmware或者其他原因,可以从此文件中直接恢复原来的虚拟机,本人选择和vmware相关虚拟机文件相同路径(即是上文中第5步的路径,如下图),Next


14. 然后还可以更改之前的选择,或者在这里就直接finish(如下图)

 15.然后再到vmware的对应的WorkStation中配置选项,本例是右击master选择setting(如下图)


 16.然后设置安装镜像文件即是前文中CentOS-6.4-x86_64-bin-DVD1.iso文件的地址(如下图)


 17.然后ok,启动master,右击master->power on,然后选择第二项Next,开始安装虚拟机(如下图)


18.检查disc,skip即可


 19.然后选择安装语言,不太清楚中文有没有乱码问题,不过英语也不会太难,就选择English吧(如下图),Next


 20.然后选择键盘,U.S.English

 21.然后选择存储设备,默认即可(如下图),Next


 22.然后是否格式化虚拟机硬盘,选择是(如下图)


23. 然后设置虚拟机hostname,为后面安装hadoop做准备本机为master(如下图),Next


 24.然后选择时区,上海台北香港重庆皆可(如下图),Next


 25.然后设置root用户的密码,可以随便设自己记住就好,我怕记不住就设的master(如下图),Next,然后会提示你密码太简单了,选use anyway即可


 26.然后是设置linux硬盘分区,我不太懂就选默认的分区方式了(如下图)

27.然后提示是否要覆写原有硬盘,选择是(如下图),然后需要一段时间


 28.然后需要选择安装系统的类型,为了安装组件方便可以选minimal desktop就是带桌面的最小安装,不过本人由于电脑性能选择了minimal,同时自定义一些软件功能选择Customize now

 29.然后选择安装定制软件功能,这步比较重要,一般选择Base System中的Base项和Compatibility Libraries(兼容)以及Perl Support(用来Vmware安装增强功能,必选)以及Performance Tools(可选,如下图)

 

 30.然后Next开始安装,会花上10到20分钟不等,根据你选择系统及定制软件不同而不同,然后reboot重启,然后需要输入用户名和密码登录,用户现在只有root,密码即是前文所设置的master(如下图)


 31.然后需要配置网络,使虚拟机能与真实主机互联

输入,如下图

[root@master ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

然后按i键进行修改,结果如下图 


 
 

其中IPADDR表示虚拟机ip地址,GATEWAY表示网关,NETMASK为子网掩码,一般家庭的路由器的gateway192.168.1.1居多,tenda路由器好像是192.168.0.1,不过也都可以修改,子网掩码一般为255.255.255.0,虚拟机地址由于使用的桥接方式,需要配置为和宿主机同一网段,即是192.168.0.*,并且该地址不能被其他局域网中主机所使用。

32.重启网络

输入命令

[root@master ~]# /etc/init.d/network restart


 然而在重启成功之后,却无法连接到宿主机,后面发现是因为桥接所选用的网卡问题,如下图


修改vmware桥接网卡选择edit->Virtual Network Editor即可出现上述界面, 因为当时我是用的有线上网故应该使用Broadcom NetLink (TM) Gigabit Ethernet,而不是无线网卡,修改之后主机虚拟机能够互相ping通,如下图,


 

 
 至此,centOS6.4的虚拟机安装结束,根据相同步骤可以配置一台slave配置其ip为192.168.0.169,用于实现分布式集群。

 

二  安装hadoop

       需要的软件,SecureCRT用于远程连接CentOS,下载地址http://www.vandyke.com/download/index.html,java本文采用的jdk1.7.0_45 64位虚拟机,下载地址http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,hadoop采用的版本为1.2.1,下载地址http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-1.2.1/其中的hadoop-1.2.1.tar.gz.将上述文件下载的jdk-7u45-linux-x64.tar.gz和hadoop-1.2.1.tar.gz使用filezilla上传到虚拟机master的usr目录下,filezilla下载地址https://filezilla-project.org/download.php,其中filezilla使用和scrt使用不再赘述,也可用其他工具只是个人喜好。

 

1.创建hadoop用户,配置ssh免登录

 

     编辑本机hostname,这一步需要在master和slave上分别执行
Java代码   收藏代码
  1. [root@master usr]# vi /etc/sysconfig/network  
 其中master的hostname改为master,slave的改为slave,一般由于之前安装虚拟机时已经设置过不需要重设其中master的配置为

[root@master ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master
 slave的配置为
[root@slave ~]# vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=slave
 编辑所有机器上hosts文件,与hostname文件所配置名称相对应,使其可以网络通信,在master机器上能ping通slave说明修改成功
[root@master ~]# vi/etc/hosts
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.168 master
192.168.0.169 slave
ssh免密码登录设置
   重新建立一个账户:hadoop (原因是hadoop不支持使用root用户,否则无法启动hadoop环境) 
useradd hadoop
passwd hadoop

 

  使用root账户给每个hadoop用户设置权限 

chown -hR hadoop /usr/hadoop-1.2.1

 后进入hadoop用户 

su hadoop
ssh-keygen -t rsa

      建立ssh目录,敲回车到底,(一般敲三次)这个命令将为hadoop

上的用户hadoop生成其密钥对,询问其保存路径时直接回车采用默认路径,当提示要为生成的密钥输入passphrase的时 候,直接回车,也就是将其设定为空密码。生成的密钥对

id_rsa,id_rsa.pub,默认存储在/home/hadoop/.ssh目录下

chmod 755 .ssh

        赋予755权限

cd .ssh
ls –l

  此时在该目录下会有两个文件:id_rsa id_rsa.pub

  这一步骤仅在master中上执行,下列命令会提示你输入其他机器的密码,按照提示输入即可,

    如果失败可重新尝试执行命令

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 644 authorized_keys
ssh slave cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

   # 上面这条命令是把其他节点的公钥拷贝到master节点中的authorized_keys,有几个节点就需要运行几次命令,slave是节点名称

scp ~/.ssh/authorized_keys slave:~/.ssh/authorized_keys

   #把authorized_keys文件拷贝回每一个节点,在master上连接所有节点,输入如下命令,上有几个节点就要输入几次,

注意每次输入后,要返回slave节点,输入命令exit即可:

ssh slave

   # 需要选择yes/no 选择yes即可

此时 ls .ssh 结果如下:

authorized_keys id_rsa id_rsa.pub known_hosts

当在master上用hadoop用户ssh slave时能够进入slave,反之在slave上用hadoop用户ssh master也能够进入master则说明ssh免登录配置成功,如果失败可以删除.ssh目录继续从新建ssh目录开始重新配置

 

2.安装java,这一步只需在master上执行

进入到usr目录下解压jdk-7u45-linux-x64.tar.gz

 

Java代码   收藏代码
  1. [root@master ~]# cd /usr  

 

Java代码   收藏代码
  1. [root@master usr]# tar -zvxf jdk-7u45-linux-x64.tar.gz  

 配置环境变量,编辑/etc/profile

 

Java代码   收藏代码
  1. [root@master usr]# vi /etc/profile  

 

在文件末尾增加

Java代码   收藏代码
  1. export JAVA_HOME=/usr/jdk1.7.0_45  
export CLASSPATH=$CLASSPATH:$JAVA_HOME /lib:$JAVA_HOME/jre/li b
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

 为了使配置立即生效可以使用source命令

Java代码   收藏代码
  1. [root@master usr]# source /etc/profile  

 验证java安装成功可输入

Java代码   收藏代码
  1. [root@master usr]# java -version  

出现下述信息安装成功

然后通过scp将java和配置文件发送到slave上,和直接在slave上面安装一样,这样更方便一些,如果没有配置JAVA_HOME目录权限可使用root账户

[root@master ~]# scp -r /usr/jdk1.7.0_45 root@slave:/usr/
[root@master ~]# scp -r /etc/profile root@slave:/etc/

 会提示,先选择yes,然后会要求输入root密码因为我们并没有配置root用户免登录,输入slave的root密码即可,然后就会显示文件传输的信息,在slave上使用java -version成功即可

3.hadoop安装配置
  3.1 将hadoop-1.2.1.tar.gz上传至usr目录并解压
  # 解压文件
[root@master usr]# tar -zvxf hadoop-1.2.1.tar.gz 
  
       3.2 配置hadoop环境变量
        编辑profile文件,vi /etc/profile增加如下内容:
export HADOOP_HOME=/usr/hadoop-1.2.1
export PATH=$HADOOP_HOME/bin$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
  
       3.3 配置master 文件
vi /usr/hadoop-1.2.1/conf/masters
master
    将其中内容修改为 master   (SecondaryNameNode所在节点,但其实并不推荐将secondarynamenode和namenode配置在相同机器上,但我们主要是学习环境就无伤大雅,关于namenode和secondarynamenode可用参见 http://a280606790.iteye.com/blog/870123
  3.4 配置slave 文件  
vi /usr/hadoop-1.2.1/conf/slave
slave
         将其中内容修改为 slave
  注:配置IP的地方尽量不要用主机名,否则不通用,易出问题。
  3.5 配置 hadoop-env.sh 文件,打开配置JAVA_HOME的注释同时修改正确
vi /usr/hadoop-1.2.1/conf/hadoop-env.sh
Java代码   收藏代码
  1. # The java implementation to use.  Required.  
  2. xport JAVA_HOME=/usr/jdk1.7.0_45   
 
  3.6 配置core-site.xml 文件 
vi /usr/hadoop-1.1.2/conf/core.site.xml
     在<configuration></configuration>之间添加如下语句: 
Xml代码   收藏代码
  1. <property>  
  2.           <name>fs.default.name</name>  
  3.           <value>hdfs://master:9000</value>   
  4. </property>  
  5. <property>  
  6.            <name>hadoop.tmp.dir</name>     
  7.            <value>/home/hadoop/hadoopcore/hadoop-${user.name}</value>   
  8. </property>  
     //第一项你的namenode的配置,机器名加端口,第二项Hadoop的默认临时路径,这个最好配置,然后在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令了。

  3.7 配置 mapred-site.xml 文件 
vi /usr/hadoop-1.1.2/conf/mapred-site.xml
    在<configuration></configuration>之间添加如下语句:
Xml代码   收藏代码
  1. <property>  
  2.              <name>mapred.job.tracker</name>  
  3.              <value>master:9001</value>  
  4. </property>  
 
  3.8 配置 hdfs-site.xml 文件 
vi /usr/hadoop-1.1.2/conf/hdfs-site.xml
   在<configuration></configuration>之间添加如下语句:
Xml代码   收藏代码
  1. <property>  
  2.           <name>dfs.datanode.max.xcievers</name>  
  3.           <value>8192<alue>        
  4. </property>  
  5.      
  6. <property>  
  7.           <name>dfs.replication</name>  
  8.           <value>1</value>           
  9. </property>  
  10. <property>  
  11.           <name>dfs.support.append</name>  
  12.           <value>true</value>  
  13. </property>  
  14. <property>  
  15.           <name>dfs.permissions</name>     
  16.           <value>false</value>  
  17. </property>  
  18.      
  19. <property>  
  20.            <name>dfs.name.dir</name>  
  21.            <value>/mnt/hadoopdata/name<alue>  
  22. </property>  
  23.      
  24. <property>  
  25.           <name>dfs.data.dir</name>  
  26.           <value>/mnt/hadoopdata/data</value>  
  27. </property>  
  第一项设置DataNode同时可供访问的文件数上限,由于HBase需要同时操作大量的文件,该项至少要设置为4096。第二项设定了文件系统备份的个数,通常为3,但是因为我们只有一个slave实际上也就只有一个datanode所以最好配置为1以免会有警告。第三项允许对文件的append操作,是为HBase设置的,第四项关闭权限检查,方便以后的远程的hadoop-eclipse插件访问hdfs,第五项NameNode持久存储名字空间及事务日志的本地文件系统路径,第六项DataNode存放块数据的本地文件系统路径。
      上文提到的/mnt/hadoopdata目录最好自己先建好,并给hadoop账户赋予权限
[root@master conf]# mkdir /mnt/hadoopdata
[root@master conf]# chown -hR hadoop /mnt/hadoopdata
  配置好的hadoop发送到slave上,同样需要输入slave的root账户的密码
[hadoop@master conf]$ scp -r /usr/hadoop-1.2.1 root@slave:/usr
     3.9 关闭防火墙

          /etc/init.d/iptables status

        会得到一系列信息,说明防火墙开着。

         /etc/init.d/iptables stop

         永久关闭:

        chkconfig --level 35 iptables off   (datanode 启动不了可能是这个原因


  3.10 hadoop的启动和停止 
   启动:配置好后在master机器上使用hadoop账户进入hadoop的bin目录 格式化文件系统(一定要) 
./hadoop namenode -format
        然后启动hadoop 集群
./start-all.sh
  注意:确保9001和9000端口是通的。
  检查hadoop是否正常启动,注意配置文件中直接复制代码可能会有乱码问题。同时可以通过观察日志查看是否正常。
  A:
  jps #查看是否启动正常!
  B:
  查看50070,54310,50030端口是否启动
  #1080
  #50030
  #50060
  netstat -tnl
  或者远程访问如下链接
  http://master:50070
  http://master:50030
  停止hadoop集群 
./stop-all.sh
 4.zookeeper安装配置 

    4.1 下载zookeeper-3.4.5.tar.gz压缩包,上传至usr目并解压

 

[root@master usr]# tar -zvxf zookeeper-3.4.5.tar.gz

 

    4.2 zookeeper的环境变量配置

vi /etc/profile
export ZOOKEEPER_HOME=/usr/zookeeper-3.4.5
export PATH=$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

 

    4.3将安装好的zookeeper目录下的 conf下的 zoo-example.cfg 文件重命名为 zoo.cfg,

[root@master conf]# cp zoo_sample.cfg zoo.cfg
[root@master conf]# vi zoo.cfg

         修改其中的内容如下(未改动的内容省略): 

dataDir=/home/hadoop/zookeeper
clientPort=2181
server.0=master:2888:3888
server.1=slave:2888:3888

    #dataDir 默认在/tmp 下,系统重启会导致数据丢失。后面的两行新增在文件的末尾,每行描述一 个节点。在  dataDir,即/home/hadoop/zookeeper 下创建一个 myid 文件,其中包含一个该 节点对应的数字,即 server.0 中'.'后面的数字,该数字应该在 1-255 之间。 这里输入的数字为“0”每台都要,下面列出master对应的操作及代码,

[root@master conf]# cd /home/hadoop/
[root@master hadoop]# mkdir zookeeper
[root@master hadoop]# cd zookeeper/
[root@master zookeeper]# vi myid

    插入0即可,对应在slave下面输入1

 

    4.4 zookeeper的启动和停止 

      启动:/zookeeper-3.4.5/bin目录下 

./zkServer.sh start

      停止:/zookeeper-3.4.3/bin目录下 

./zkServer.sh stop 

    #HBase 集群需要依赖于一个 Zookeeper ensemble。HBase 集群中的所有节点以及要访问 HBase 的客户端都需要能够访问到该 Zookeeper ensemble。HBase 自带了 Zookeeper, 但为了方便 其他应用程序使用 Zookeeper,最好使用独安装的 Zookeeper ensemble。 此外,Zookeeper ensemble 一般配置为奇数个节点,因为此处主要是学习所以忽略掉很多安全性可靠性方面的问题。并且 Hadoop 集群、Zookeeper ensemble、 HBase 集群是三个互相独立的集群,并不需要部署在相同的物理节点上,它们之间是通过网 络通信的,此外因为没有给hadoop账户/usr/zookeeper-3.4.5目录的权限,所以zookeeper只能用root用户启动,也可以使用命令,

chown -hR hadoop /usr/zookeeper-3.4.5

     赋予hadoop权限,使得用hadoop账户也能启动zookeeper。

     最后需要将zookeeper发送到slave上,仍然会提示输入slave的root账户密码

[root@master conf]# scp -r /usr/zookeeper-3.4.5 root@slave:/usr/

 

5.hbase安装配置

     5.1 下载hbase-0.94.12.tar.gz压缩包,上传至usr目录并解压

[root@master usr]# tar -zvxf hbase-0.94.12.tar.gz

 

     5.2 hbase的环境变量配置 vi /etc/profile

export HBASE_HOME=/usr/hbase-0.94.12
export PATH=$HABSE_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

 

     5.3配置 hbase-env.sh 该文件设定了 hbase 的环境,修改的部分如下(部分设置需要打开注释,即删除前面的#): 

export JAVA_HOME=/usr/ jdk1.7.0_45
export HBASE_CLASSPATH=/usr/hadoop-1.2.1/conf
export HBASE_HEAPSIZE=768
export HBASE_MANAGES_ZK=false

 

     其中,HBASE_CLASSPATH 指向存放有 Hadoop 配置文件的目录,这样 HBase 可以找到HDFS 的配置信息,由于本文 Hadoop 和 HBase 部署在相同的物理节点,所以就指向了Hadoop 安 装路径下的 conf 目录。HBASE_HEAPSIZE 单位为 MB,可以根据需要和实际剩余内存设置, 默认为 1000,因为是虚拟机并非实际应用所以应该小于虚拟机内存。HBASE_MANAGES_ZK=false 指示 HBase 使用已有的Zookeeper 而不是自带的。 

 

     5.4 配置hbase-site.xml  该文件是 hbase 最主要的配置文件: 

[root@master conf]# vi hbase-site.xml

     在<configuration></configuration>之间添加如下语句:

 

Xml代码   收藏代码
  1. <property>  
  2.         <name>hbase.rootdir</name>  
  3.         <value>hdfs://master:9000/hbase</value>  
  4. </property>  
  5. <property>  
  6.         <name>hbase.master</name>  
  7.         <value>master</value>  
  8. </property>  
  9. <property>  
  10.         <name>hbase.cluster.distributed</name>  
  11.         <value>true</value>  
  12. </property>  
  13. <property>  
  14.         <name>hbase.zookeeper.quorum</name>  
  15.         <value>master,slave</value>  
  16. </property>  
  17. <property>  
  18.         <name>hbase.zookeeper.property.clientPort</name>  
  19.         <value>2181</value>  
  20. </property>  
  21. <property>  
  22.         <name>hbase.regionserver.restart.on.zk.expire</name>  
  23.         <value>true</value>  
  24. </property>                               
  25. <property>  
  26.         <name>hbase.master.wait.on.regionservers.timeout</name>  
  27.         <value>10</value>  
  28. </property>  
  29. <property>  
  30.         <name>zookeeper.session.timeout</name>  
  31.         <value>180000</value>  
  32. </property>        
  33. <property>  
  34.         <name>hbase.regionserver.lease.period</name>  
  35.         <value>240000</value>  
  36. </property>  
  37. <property>  
  38.         <name>hbase.regionserver.handler.count</name>  
  39.         <value>15</value>  
  40. </property>  
  41. <property>  
  42.         <name>hbase.rpc.timeout</name>  
  43.         <value>240000</value>  
  44. </property>  
  45. <property>  
  46.         <name>hfile.block.cache.size</name>  
  47.         <value>0.3</value>  
  48. </property>  

 

第一项指定了 hbase 所使用的文件系统为 HDFS,根目录为 hdfs://master:9000/hbase, 该目录 应该由 HBase 自动创建,只需要指定到正确的 HDFS NameNode 上即可。第二项知道该hbase集群的master的IP。第三项指定 HBase 的工作模式为分布式的. 第四项指定zookeeper所在地址,第五项为zookeeper端口:2181

第六项 为遇到ZooKeeper session expired , regionserver将选择 restart 而不是 abort,

第七项 master和regionserver不能同时挂掉。只要不是同时挂掉,就不会导致recovery block的发生,也就不会发生lease的杯具了。不过这种情况很难发生,所以我们决定将hbase.master.wait.on.regionservers.timeout参数改为10秒。

第八项 ZK的超期参数,默认配置为3分钟,在生产环境上建议减小这个值在1分钟或更小。 设置原则:这个值越小,当RS故障时Hmaster获知越快,Hlog分裂和region 部署越快,集群恢复时间越短。但是,设置这个值得原则是留足够的时间进行GC回收,否则会导致频繁的RS当机(一般保持默认)。   

第九项 regionserer租约时间,默认值是60s,也有点小,如果你的生产环境中,在执行一些任务时,如mapred时出现lease超时的报错,那这个时候就需要去调大这个值了

第十一项 出现租约过期的时候,可以根据需求适当的增加租约的有效时间,但却忽略了RPC超时的问题,所以在增大hbase.regionserver.lease.period的时候应该同时增大hbase.rpc.timeout,同时hbase.rpc.timeout应该等于或大于hbase.regionserver.lease.period。

第十二项 hfile.block.cache.size默认值:0.2说明:storefile的读缓存占用Heap的大小百分比,0.2表示20%。该值直接影响数据读的性能。

调优:当然是越大越好,如果写比读少很多,开到0.4-0.5也没问题。如果读写较均衡,0.3左右。如果写比读多,果断默认吧。设置这个值的时候,你同时要参考hbase.regionserver.global.memstore.upperLimit,该值是memstore占heap的最大百分比,两个参数一个影响读,一个影响写。如果两值加起来超过80-90%,会有OOM的风险,谨慎设置。

 

     5.5 配置 regionservers 此文件指定了HBase 的RegionServers,相当于hadoop 配置文件中的slaves

 

vi /usr/hbase-0.94.12/conf/regionservers

     修改其内容为:

slave

     将/usr/ hadoop-1.2.1/conf下的hdfs-site.xml 拷贝到 /usr/hbase-0.94.12/conf 

[root@master conf]# cp /usr/hadoop-1.2.1/conf/hdfs-site.xml hdfs-site.xml

 

     5.6在将HBASE_HOME/lib下的hadoop-core-1.0.4.jar替换为HADOOP_HOME/lib目录下对应版本的jar包 

 

     5.7 将配置好的hbase发送到slave

[root@master conf]# scp -r /usr/hbase-0.94.12 root@slave:/usr/

 

     5.8 hbase的启动和停止 

     启动 :hbase/bin目录下 

./start-hbase.sh

    启动成功的jps,以及hbase shell命令如下:

     master

[root@master conf]# jps
6571 Jps
4677 SecondaryNameNode
6225 HMaster
5729 QuorumPeerMain
4517 NameNode
4769 JobTracker

     slave

[root@slave zookeeper]# jps
27561 HRegionServer
2782 DataNode
27759 Jps
2879 TaskTracker
27361 QuorumPeerMain

     在master上使用hbase shell,并用status查看,以及建立test表进行测试

写道
[root@master bin]# ./hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.12, r1524863, Fri Sep 20 04:44:41 UTC 2013

hbase(main):001:0> status
1 servers, 0 dead, 2.0000 average load

hbase(main):002:0> list
TABLE 
0 row(s) in 0.1860 seconds

hbase(main):003:0> create 'test','testrow','testcolumn'
0 row(s) in 1.4720 seconds

hbase(main):004:0> put 'test','r1','testcolumn','v1'
0 row(s) in 0.3120 seconds

hbase(main):005:0> scan 'test'
ROW COLUMN+CELL 
r1 column=testcolumn:, timestamp=1385331995265, value=v1 
1 row(s) in 0.1280 seconds

hbase(main):006:0>

 

     停止 :hbase/bin 目录下 

./stop-hbase.sh 

 

* 注意:在启动的时候必须首先启动hadoop,再启动zookeeper,最后再启动hbase 

1. start-all.sh 

2. zkServer.sh start 

3. start-hbase.sh 

启动时可能会遇到permission denied这样的问题,应该是权限不够,只需要使用root账户将相应文件目录赋予hadoop账户权限即可,例如

chown -hR hadoop /home/hadoop/zookeeper

 

停止的时候必须先停止hbase 再停止zookeeper 最后再停止hadoop 

1. stop-hbase.sh 

2. zkServer.sh stop 

3. stop-all.sh 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值