hadoop 大數據開發3---HBase 安裝步驟

HBase 安裝步驟

 

 

1.配置 hbase 的環境變量

 

 

在/root/hbase/conf 目錄下的 hbase-env.sh 中添加 Hbase 需要的環境變量。如下: 下面第四行注意這個值爲 false 時,表示啓動的是獨立的 zookeeper。而配置成 true 則是 hbase

自帶的 zookeeper。

 

 

export JAVA_HOME=/usr/java/jdk1.6.0_14export HBASE_HOME=/root/hbase

export PATH=$PATH:/root/hbase/bin export HBASE_MANAGES_ZK=falseexport HADOOP_HOME=/root/hadoop

 

 

 

 

2.集羣時鐘同步

 

 

集羣的時鐘要保證基本的一致。稍有不一致是可以容忍的。 時鐘同步見附錄 。

 

 

 

 

 

3.修改 ulimit  和  nproc

 

 

HBase 是數據庫,會在同一時間使用很多的文件句柄。大多數 linux 系統使用的默認值 1024 是不能滿足的,會導致 FAQ: Why do I see "java.io.IOException...(Toomany openfiles)" in my logs?異常。還可能會發生這樣的異常

 

 

2010-04-06       03:04:37,542       INFO        org.apache.hadoop.hdfs.DFSClient:       Exception increateBlockOutputStream java.io.EOFException

2010-04-06  03:04:37,542  INFO org.apache.hadoop.hdfs.DFSClient:  Abandoning  block blk_-6935524980745310745_1391901

 

所以你需要修改你的最大文件句柄限制。可以設置到 10k。

你還需要修改 hbase  用戶的 nproc,在壓力下,如果過低會造成 OutOfMemoryError 異常。需要說明的是,這兩個設置是針對操作系統的,不是 HBase 本身的。


 

 

在 RHEL6 修改 ulimit 和 nproc:

# vim /etc/security/limits.conf               //針對某個用戶測試(這裏使用 root)

 

 

# grep '^root' /etc/security/limits.conf

root

soft

nofile

10240

root

hard

nofile

10240

root

soft

nproc

10240

root

hard

nproc

10240

 

#

退出當前用戶,重新登錄即可讓之前修改的 limits 生效,執行如下命令發現修改成功

 

 

# ulimit -u

10240

 

 

# ulimit -n

10240

 

 

 

 

 

 

 

 

 

4.配置 hbase-site.xml

 

 

 

 

先 在    hbase-site.xml,  加 一 個 屬 性    hbase.cluster.distributed  設 置 爲    true   然 後 把hbase.rootdir  設 置 爲 HDFS  的 NameNode 的 位 置 。  例 如 , 你 的  namenode 運 行 在namenode.example.org,端口是 9000  你期望的目錄是 /hbase,使用如下的配置

 

 

<configuration>

...

<property>

<name>hbase.rootdir</name>

<value>hdfs://namenode.example.org:9000/hbase</value>

<description>The directory sharedby RegionServers.

</description>

</property>

<property>

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

<value>true</value>


<description>The mode the cluster willbe in. Possible values are

false: standalone andpseudo-distributedsetups with managed Zookeepertrue: fully-distributed withunmanaged ZookeeperQuorum (see hbase-env.sh)

</description>

</property>

 

 

 

<property>

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

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

</property>

 

 

<property>

<name>hbase.zookeeper.sission.timeout</name>

<value>60000</value>

</property>

 

 

<property>

<name>hbase.zookeeper.property.clientPort</name>

<value>2222</value>

</property>

 

 

<property>

<name>hbase.master</name>

<value>hadoop1</value>

</property>

 

 

<property>

<name>hbase.regionserver.lease.period</name>

<value>60000</value>

</property>

 

 

<property>

<name>hbase.rpc.timeout</name>

<value>60000</value>

</property>

 

 

...

</configuration>


5.配置 regionservers

 

 

完全分佈式模式的還需要修改 conf/regionservers.列出了你希望運行的全部HRegionServer,一行寫一個 host (就像 Hadoop 裏面的 slaves  一樣).  列在這 裏的server 會隨着集羣的啓動而啓動,集羣的停止而停止.

 

 

 

 

6.啓動和停止

 

 

bin/start-hbase.sh

 

 

 

HBase 也有一個界面,上面會列出重要的屬性。默認是在 Master 的 60010 端口 上(HBase RegionServers  會默認綁定 60020 端口,在端口 60030 上有一個展示 信息的界面 ).如果 Master 運行在 master.example.org,端口是默認的話,你 可以用瀏覽器在http://master.example.org:60010看到主界面.  .

 

 

 

 

停止 HBase

 

bin/stop-hbase.sh

stopping hbase...............

 

停止操作需要一些時間,你的集羣越大,停的時間可能會越長。如果你正在運行一個分佈式的操作,要確認在HBase 徹底停止之前,Hadoop  不能停.

 

 

 

 

 

################################

 

 

 

NTP 服務器的安裝和配置

1  檢查需要的包

[root@rhel.philip.com~]rpm-qa |grep ntp ntp-4.2.4p8-2.el6.i686

ntpdate-4.2.4p8-2.el6.i686

 

 

2  配置文件/etc/ntp.conf


3  啓動服

/etc/init.d/ntpd start               #//等大約 5 分鐘完成本機時間同步以後,方可作爲時 間服務器使用

 

3  在客戶機進行時間同步

shell> ntpdate 192.168.4.1

shell> hwclock --systohc                //以當前系統時間設置硬件時間

shell> crontab -e

30 7 * * * /usr/sbin/ntpdate 192.168.4.1 && hwclock --systohc shell> /etc/init.d/crond start

 

 

 

 

 

################################

 

 

rhel 中修改 ulimit nproc

 

 

修改 limits.conf 配置文件生效

 

# ulimit -a//查看當前配置文件 ulimit 全局係數

 

 

core file size (blocks, -c) 0

 

 

data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0

file size (blocks,-f) unlimited pending signals (-i) 1829

max lockedmemory (kbytes,-l)64

 

 

max memory size (kbytes, -m) unlimitedopen files (-n) 1024

pipe size (512 bytes,-p)8

 

 

POSIX message queues (bytes, -q)819200 real-time priority (-r) 0


stack size (kbytes, -s)10240

 

 

cpu time (seconds,-t) unlimitedmax user processes(-u)1024

virtual memory (kbytes,-v)unlimited file locks (-x) unlimited

# vim /etc/security/limits.conf

 

 

# grep'^*' /etc/security/limits.conf

 

 

* soft nproc 10240

 

 

* hardnproc 10240

 

 

* soft nofile 10240

 

 

* hardnofile 10240

 

 

#

 

退出當前用戶,重新登錄即可讓之前修改的 limits 生效

 

 

# ulimit -n

 

 

10240

 

# ulimit -u//發現 nproc 並沒有像 nofile 一樣而改變

 

 

1024

 

 

#

 

獲知,RHEL6 下引入了配置文件/etc/security/limits.d/90-nproc.conf

 

 

 

# cat /etc/security/limits.d/90-nproc.conf

 

 

# Default limit for number of user'sprocesses toprevent


 

 

*                       soft         nproc         1024

 

 

#

 

我們修改這個文件嘗試是否因爲該文件影響,修改如下

 

 

# vim /etc/security/limits.d/90-nproc.conf

 

 

# cat /etc/security/limits.d/90-nproc.conf

 

 

# Default limit for number of user'sprocesses toprevent

 

 

# accidentalfork bombs.

 

 

# See rhbz #432903for reasoning.

 

 

#*                       soft         nproc          1024

 

 

*                       soft         nproc         65535

 

 

#

 

退出當前用戶,重新登錄即可讓之前修改的 limits 生效,執行如下命令發現修改成功

 

 

# ulimit -u

 

 

10240

 

 

# ulimit -n

 

 

10240

 

 

#

 

由 此 可 知 , 如 果 要 修 改 配 置 文 件 limits.conf   中 的  nproc   限 制 上 限 是 受 文 件

/etc/security/limits.d/90-nproc.conf 中 nproc 值大小制約的,但是 shell 終端下是不受制約的

 

另外猜想,如果使用*號讓全局用戶生效是受文件/etc/security/limits.d/90-nproc.conf 中 nproc

值大小制約的,而如果僅僅是針對某個用戶,那麼就不受該文件 nproc 值大小的影響


 

 

# Default limit for number of user'sprocesses toprevent

 

 

# accidentalfork bombs.

 

 

# See rhbz #432903for reasoning.

 

 

*                       soft         nproc         1024

 

 

#*                       soft         nproc          65535

 

# vim /etc/security/limits.conf              //只針對某個用戶測試(這裏使用 root)

 

 

# grep'^root' /etc/security/limits.conf

 

 

root                   soft         nproc              10240 root  hard nproc               10240

#

 

退出當前用戶,重新登錄即可讓之前修改的 limits 生效,執行如下命令發現修改成功

 

 

# ulimit -u

 

 

10240

 

 

# ulimit -n

 

 

10240

 

 

#

 

之前猜想正確,即只有當使用*號讓全局用戶生效的時候,生效的 nproc 的值大小是受文件

/etc/security/limits.d/90-nproc.conf 中 nproc 值大小制約的,而如果僅僅是針對某個用戶,那麼就不受該文件 nproc 值大小的影響。


發佈了14 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章