继续搭建各种开源系统,ps,之前都是用公司内部专业运维团队搭建的环境,发现自己搭建这些东西还是挺 费劲的。好吧,其实也蛮好玩的O(∩_∩)O~
Kafka搞完之后,开始搞Hbase。至于为啥要用Hbase,因为第一我们的数据量还是蛮大的,算了下Mysql 估计很难support的。然后呢?我多少对Hbase又有些了解和使用。那必然就选它了。当然,以前都是用, 估计实际到后面的运维,还是有蛮多坑要填的。最近也在加紧补课中。。。
Hbase是依赖于Hdfs.先说下Hdfs的环境搭建。

1、Hdfs是hadoop包里面的一个组件,不过实际中,我并不需要用到Yarn和MR,所以我只用Care Hdfs
  即可。至于用的什么版本,我采用的是2.5.2,没有用最新的2.6.0。
2、其实hdfs搭建非常方便,只需要修改4个配置文件,core-site.xml、hdfs-site.xml、hadoop-env.sh
  和slaves即可。
3、core-site.xml需要增加的配置项如下
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://namenodeHost:9000</value>
    <final>true</final>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/hdfs_data</value>
  </property>
  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
4、hdfs-site.xml需要增加的配置项如下
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/hadoop/hdfs_data/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/home/hadoop/hdfs_data/data</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
5、hadoop-env.sh中比较简单,只需要增加export JAVA_HOME=/opt/usr/java
6、slaves中则需要添加datenode的域名即可。
7、在启动之前需要/bin/hdfs namenode -format格式化
8、调用/sbin/start-dfs.sh即可

到如上这一步,基本上Hdfs就可以Work了,后续继续看Hbase的搭建~

1、关于采用什么版本的Hbase,我开始采用的Hbase是0.94.27版本,最后发现一直遇到和Hdfs版本不一致
  的问题,各种google之后都没找到很多好的解法,估计0.94.*更好的偏向hadoop1,对hadoop2支持
  的并不好,索性就采用了0.98.11版本。其实之前觉得0.94版本可以很好的支持hadoop2是因为看了这个
  文档(http://hbase.apache.org/0.94/book.html#basic.prerequisites)里面有提到支持
  hadoop2,但是这里(http://hbase.apache.org/book.html#basic.prerequisites)又明确说
  到NT,然后我就伤心的切换到0.98.11了。o(╯□╰)o。
2、hbase有hadoop1和hadoop2两个版本,比较好选择用哪个。
3、hbase需要修改的配置也不多,只有hbase-site.xml、hbase-env.sh和regionservers这三个文件
4、其中hbase-site.xml是hbase的核心配置
  <property>
    <name>dfs.datanode.max.xcievers</name>
    <value>4096</value>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hdfsNameNodeHost:9000/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>zkServer1,zkServer2</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>zkClientPort_default2181</value>
  </property>
5、hbase-env.sh同hadoop.sh,需要配置export JAVA_HOME=/opt/usr/java,同时,hbase默认
  是会自动启动zookeeper,然后连接到自己的zookeeper上去。由于我是配置到自己的zookeeper,
  所以需要export HBASE_MANAGES_ZK=false,告诉hbase不需要管理zk。
6、regionservers同hadoop的slaves,配置需要启动regionserver的列表即可。
7、随后调用/bin/start-hbase.sh即可启动,同时通过/bin/hbase shell可以通过shell操作hbase。

至此,hdfs+hbase就可以work了。当然,Hdfs和Hbase都是比较复杂的系统,后面估计少不了采坑和死磕。

done…