1.簡介node
HBase系統主要依賴於zookeeper和hdfs系統,因此部署HBase須要先去部署zookeeper和hadooplinux
2.部署開始bash
IP或者HOSTNAME須要根據自身主機信息設定。ssh
部署資源:oop
兩個節點:xufeng-2(管理節點) xufeng-3(從節點)spa
xufeng-3 | xufeng-2 |
zookeeper線程 namenode3d SecondaryNameNodecode masterserver
|
datanode regionserver |
部署版本:
CDH5.4.2
1.設定主機hostname
#adduser hadoop //添加一個用戶
#passwd hadoop //修改密碼
2.設定主機hostame
vi /etc/sysconfig/network
3.設定hosts文件:
10.211.55.18 xufeng-3 10.211.55.21 xufeng-2
4.拷貝安裝包,按照以下設定安裝包路徑
其中組件文件夾經過軟鏈接到具體安裝目錄,配置文件獨立於安裝目錄,這樣便於後續版本的替換
安裝包能夠去官網:http://archive.cloudera.com/cdh5/cdh/5/下載。
5.安裝jdk,以下版本,hadoop已經全面放棄了1.6版本,因此請安裝1.7及以上版本
jdk-7u79-linux-x64.rpm
6.設定無密碼登陸
hadoop用戶下:
xufeng-3上執行: ssh-keygen cd ~/.ssh scp id_rsa.pub xufeng-2:/home/hadoop/.ssh/authorized_keys xufeng-2上執行 ssh-keygen cd ~/.ssh scp id_rsa.pub xufeng-3:/home/hadoop/.ssh/authorized_keys
增長:
啓動的時候須要ssh到自身,因此也須要將自身的公鑰發佈給本身:
在各個節點上執行:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
7.設定環境變量,經過環境變量的設定,各個服務能夠找到對應的安裝路徑和配置文件路徑
[hadoop@xufeng-3 hbase-config]$ vi ~/.bash_profile #hadoop export HADOOP_HOME=/opt/hadoop/hadoop export HADOOP_CONF_DIR=/opt/hadoop/hadoop-config export HADOOP_LOG_DIR=/opt/hadoop/hadoop/xufeng #hbase export HBASE_HOME=/opt/hadoop/hbase export HBASE_CONF_DIR=/opt/hadoop/hbase-config #zookeeper export ZOOKEEPER_HOME=/opt/hadoop/zookeeper export ZOOCFGDIR=/opt/hadoop/zookeeper-config #spark export SPARK_HOME=/opt/hadoop/spark export SPARK_CONF_DIR=/opt/hadoop/spark-config PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin:SPARK_HOME/bin export PATH
配置文件和包分割開來,便於後續方便的替換包(版本)。
8.【單節點】設定zookeeper,啓動zookeeper
a.將zookeeper安裝包內的conf文件夾下的內容拷貝到zookeeper-config目錄下,並生成zoo.cfg文件
[hadoop@xufeng-3 bin]$ cd /opt/hadoop/zookeeper-config/ [hadoop@xufeng-3 zookeeper-config]$ ll 總用量 20 -rwxr-x---. 1 hadoop hadoop 535 6月 12 18:05 configuration.xsl -rwxr-x---. 1 hadoop hadoop 2693 6月 12 18:05 log4j.properties -rw-rw-r--. 1 hadoop hadoop 72 6月 12 18:13 zoo.cfg -rw-rw-r--. 1 hadoop hadoop 3633 6月 12 18:13 zookeeper.out -rwxr-x---. 1 hadoop hadoop 808 6月 12 18:05 zoo_sample.cfg
zoo.cfg內容
[hadoop@xufeng-3 zookeeper-config]$ vi zoo.cfg tickTime=2000 dataDir=/opt/hadoop/hadoop_data/zookeeper clientPort=2181 ~
b.啓動zookeeper
zkServer.sh start
檢查線程
[hadoop@xufeng-3 zookeeper-config]$ jps 5299 QuorumPeerMain 5634 Jps
9.設定hadoop,啓動hadoop
須要去主從節點上設定以下幾個文件,這些文件都放在了/opt/hadoop/hadoop-config下,經過環境變量的指定進程可以讀取到。
其中若是無特殊須要hadoop-env.sh和log4j文件只從安裝包中拷貝不修改。
core-site.xml hdfs-site.xml hadoop-env.sh log4j.properties slaves
core-site.xml內容:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://xufeng-3:9000</value> <description>NameNode URI</description> </property> <property> <name>hadoop.tmp.dir</name> <value>file:///opt/hadoop/hadoop_data/hadoop/hdfs/temp</value> <description>Abase for other temporary directories.</description> </property> </configuration>
hdfs-site.xml內容:dfs.replication設定爲1,由於咱們只有一個datanode
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:///opt/hadoop/hadoop_data/hdfs/namenode</value> <description>NameNode directory for namespace and transaction logs storage.</description> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///opt/hadoop/hadoop_data/hdfs/datanode</value> <description>DataNode directory</description> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> <property> <name>dfs.datanode.use.datanode.hostname</name> <value>false</value> </property> <property> <name>dfs.namenode.datanode.registration.ip-hostname-check</name> <value>false</value> </property> <property> <name>dfs.namenode.http-address</name> <value>xufeng-3:50070</value> <description>Your NameNode hostname for http access.</description> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>xufeng-3:50090</value> <description>Your Secondary NameNode hostname for http access.</description> </property> </configuration>
slaves內容: 只在xufeng-2這臺機器上啓動datanode
xufeng-2
啓動hdfs
start-dfs.sh
注意:
據說centOS6有一個bug:
須要關閉防火牆才能聯通端口:
service iptables stop
chkconfig iptables off
進入頁面:hdfs安裝完成:
10,設定HBase,啓動HBase
的地水電費
將配置文件從安裝目錄中拷貝到/opt/hadoop/hbase-config,主要有以下文件:
其中hdfs-site.xml爲軟鏈接到hadoop的配置文件,由於HBase是做爲hdfs的客戶端角色。
hbase-env.sh內容(修改點):不要讓HBase使用集成的zookeeper,而是使用咱們在xufeng-3上啓動的zookeeper服務
# Tell HBase whether it should manage it's own instance of Zookeeper or not. export HBASE_MANAGES_ZK=false
hbase-site.xml內容:
<configuration> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.rootdir</name> <value>hdfs://xufeng-3:9000/hbase</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>xufeng-3:2181</value> </property> </configuration>
regionservers內容:只在xufeng-2這個從節點上啓動regionserver服務
xufeng-2
在xufeng-3節點上啓動HBase:
start-hbase.sh
進入頁面:HBase安裝完成: