Base簡介 HBase – Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲叢集。HBase利用Hadoop HDFS作為其檔案存儲系統,利用Hadoop MapReduce來處理HBase中的海量資料,利用Zookeeper作為協調工具。 Hbase基于HDFS之上,分布式的,面向列的開源資料庫,由Google BigTable的開源實作,它主要用于海量資料,有豐富的工具支援 Hbase 表的特點 1.大: 一個表可以有數十億行,百萬列 2. 面向列 3.資料類型單一 4.無模式 HBase 術語 1.主鍵(Row key) 2.列族(Column Family) 3.時間戳與存儲單元(Timestamp and Cell)
Linux環境 1.關閉防火牆 [ [email protected] ~]# service iptables stop(這種方法是暫時的) [ [email protected] ~]# chkconfig iptables off(永久的方法) 2.關閉selinux 修改 [ [email protected] ~]# vim /etc/sysconfig/selinux
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded.
SELINUX=disabled (改為disabled) # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
3.配置主機名 [ [email protected] ~]# vim /etc/sysconfig/network
NETWORKING=yes HOSTNAME=chen(自己的主機名) 4.配置IP的映射關系 [ [email protected] ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.236.128 chen(自己的Ip與主機名)
5 ssh免密碼登入 [ [email protected] ~]# ssh-keygen -t rsa(生成密鑰) 選擇yes 生成成功,将密鑰拷貝到本機 [ [email protected] ~]# ssh-copy-id 192.168.236.128(自己的IP) 選擇yes 輸入密碼 重新開機Linux [ [email protected] ~]# reboot
6.安裝Java環境(hadoop和hbase 是基于java的) 在自己的linux環境下建立一個目錄存放安裝需要的工具 drwxrwxrwx. 8 uucp 143 4096 Oct 8 2013 jdk1.7.0_45 -rwxrwxrwx. 1 root root 138094686 Mar 30 06:42 jdk-7u45-linux-x64.gz 配置環境變量 [ [email protected] java]# vim /etc/profile export JAVA_HOME=/usr/java/jdk1.7.0_45 export PATH=$JAVA_HOME/bin:$PATH 儲存退出(ctrl+zz) 執行以下profile檔案 [ [email protected] java]# source /etc/profile
檢視java版本(出現下列資訊說明安裝成功) [ [email protected] java]# java -version java version "1.7.0_45" Java(TM) SE Runtime Environment (build 1.7.0_45-b18) Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
7.安裝hadoop 進入官網下載下傳hadoop http://archive.apache.org(這個網站上有apache的是以你需要的東西) 在自己的linux環境下建立一個目錄存放安裝需要的工具然後解壓
[ [email protected] tools]# tar -zxf hadoop-2.6.0.tar.gz -C ../softwares/ 修改配置檔案(根據官方文檔來配) 進入 http://hadoop.apache.org/ documentation--->release2.6.0(選擇自己的hadoop版本)---->Single Node Setup(參考文檔進行配置) JAVA_HOME路徑
[ [email protected] tools]# echo $JAVA_HOME /usr/java/jdk1.7.0_45
[ [email protected] hadoop]# vi hadoop-env.sh export JAVA_HOME=/usr/java/jdk1.7.0_45
Configuration
Use the following:
etc/hadoop/core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>( localhost自己的IP)
</property></configuration>
etc/hadoop/hdfs-site.xml:
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.236.128:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/bigdata/softwares/hadoop-2.6.0/date/tmp
</value>
</configuration>
修改yarn
etc/hadoop/mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
etc/hadoop/yarn-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
格式化hadoop [ [email protected] hadoop-2.6.0]# bin/hdfs (這是幫助指令) dfs run a filesystem command on the file systems supported in Hadoop. namenode -format format the DFS filesystem secondarynamenode run the DFS secondary namenode namenode run the DFS namenode journalnode run the DFS journalnode zkfc run the ZK Failover Controller daemon datanode run a DFS datanode dfsadmin run a DFS admin client haadmin run a DFS HA admin client fsck run a DFS filesystem checking utility balancer run a cluster balancing utility jmxget get JMX exported values from NameNode or DataNode. mover run a utility to move block replicas across storage types oiv apply the offline fsimage viewer to an fsimage oiv_legacy apply the offline fsimage viewer to an legacy fsimage oev apply the offline edits viewer to an edits file fetchdt fetch a delegation token from the NameNode getconf get config values from configuration groups get the groups which users belong to snapshotDiff diff two snapshots of a directory or diff the current directory contents with a snapshot lsSnapshottableDir list all snapshottable dirs owned by the current user Use -help to see options portmap run a portmap service nfs3 run an NFS version 3 gateway cacheadmin configure the HDFS cache crypto configure HDFS encryption zones storagepolicies get all the existing block storage policies version print the version [ [email protected] hadoop-2.6.0]# bin/hdfs namenode -format
/dfs/name has been successfully formatted.(看大這句話表示成功)
啟動hadoop [ [email protected] hadoop-2.6.0]# sbin/start-dfs.sh 啟動yarn [ [email protected] hadoop-2.6.0]# sbin/start-yarn.sh 檢視是否成功 [ [email protected] hadoop-2.6.0]# jps 2822 DataNode 11925 ResourceManager 12009 NodeManager 2999 SecondaryNameNode 2738 NameNode 12050 Jps (出現上面文字表示已成功) 配置hadoop環境變量
~/.bash_profile
export HADOOP_HOME=/home/storm/hadoop-2.6.0
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source ~/.bash_profile
建立一個檔案夾
[ [email protected] conf]# vi hbase-env.sh export JAVA_HOME=/usr/java/jdk1.7.0_45
[ [email protected] conf]# vi hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> </configuration>
另外,我們需要設定一些環境變量。修改HBase下的conf目錄中的hbase-env.sh檔案(你的jdk路徑可能不一樣):
export JAVA_HOME=/usr/local/jdk1.7.0_67
export HBASE_MANAGES_ZK=true
export HBASE_MANAGES_ZK=true
此配置資訊,表示設定由hbase自己管理zookeeper,不需要單獨的zookeeper, 本文搭建的 Hbase 用的是自帶的 zookeeper,故設定為true.
[ [email protected] conf]# vi regionservers 192.168。238.128(自己的IP) 啟動hbase [ [email protected] hbase-0.98.13-hadoop2]# bin/hbase-daemon.sh start zookeeper starting zookeeper, logging to /usr/bigdata/softwares/hbase-0.98.13-hadoop2/bin/../logs/hbase-storm-zookeeper-chen.out [ [email protected] hbase-0.98.13-hadoop2]# bin/hbase-daemon.sh start master starting master, logging to /usr/bigdata/softwares/hbase-0.98.13-hadoop2/bin/../logs/hbase-storm-master-chen.out [ [email protected] hbase-0.98.13-hadoop2]# bin/hbase-daemon.sh start regionser starting regionser, logging to /usr/bigdata/softwares/hbase-0.98.13-hadoop2/bin/../logs/hbase-storm-regionser-chen.out 檢視是否啟動成功 [ [email protected] hbase-0.98.13-hadoop2]# jps 13527 HMaster 2822 DataNode 13662 Jps 11925 ResourceManager 13640 GetJavaProperty 12009 NodeManager 13431 HQuorumPeer 2999 SecondaryNameNode 2738 NameNode (啟動成功)