热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

hbase集群安装与部署

1、相关环境centos7hadoop2.6.5zookeeper3.4.9jdk1.8hbase1.2.4本篇文章仅涉及hbase集群的搭建,关于hadoop与zookeeper的相

1、相关环境

centos7 hadoop2.6.5 zookeeper3.4.9 jdk1.8 hbase1.2.4

本篇文章仅涉及hbase集群的搭建,关于hadoop与zookeeper的相关部署参见上篇文章http://www.cnblogs.com/learn21cn/p/6184490.html

目标如下:

master 192.1.68.1.215 HMaster
data1 192.168.1.218 HMaster备用 HRegionServer
data2 192.168.1.219 HRegionServer

 

 

 

2、关于时间同步的问题

安装hbase,需要服务器之间的时间同步,10秒之内是可接受的范围

1> 安装与配置NTP

每个节点都要安装,以master来作为时间服务器

# 安装NTP
yum install ntp -y 
# 查看NTP状态
service ntpd status
# 配置文件
vim /etc/ntp.conf

以下是配置文件内容

#禁止所有机器来进行连接
restrict default ignore
#允许内网其他机器同步时间
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
#配置时间服务器的地址为本机(注视掉server0~server3)
server  127.127.1.0

之后个节点与master进行同步,并设置NTP开机自动启动

# 终端执行命令同步时间         
ntpdate 192.168.1.215
# 设置开机自动启动        
systemctl restart ntpd.service
systemctl enable ntpd.service

以上为最初同步

2> 设置定时任务,使服务器定时同步时间

执行以下命令 :

crontab -e
# 在centos7中,可以直接vim /etc/crontab,效果是一样的,只不过需要指定用户

配置文件写入以下内容:

0    1    *    *    *    /usr/sbin/ntpdate    192.168.1.215    >> /data/ntpd.log

保存后执行以下命令查看定时任务,并重启服务

crontab -l
# 重启
systemctl restart  crond.service

3、设置linux系统最大进程数和最大文件打开数

使用root账号

root            soft    nproc           50000
root            hard    nproc           50000
root            soft    nofile          25535
root            hard    nofile          25535
hadoop          soft    nproc           50000
hadoop          hard    nproc           50000
hadoop          soft    nofile          25535
hadoop          hard    nofile          25535

设置完重新登录shell,执行以下命令查看结果

ulimit -a 

4、调整linux内核参数

打开文件 /etc/sysctl.conf,进行以下设置

net.ipv4.ip_forward= 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_synCOOKIEs = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 268435456
# 提高系统支持的最大SYN半连接数,表示SYN队列的长度,默认为1024,加大队列长度为,可以容纳最多等待连接的网络连接数
net.ipv4.tcp_max_syn_backlog = 65000
net.core.netdev_max_backlog= 32768
net.core.somaxconn = 32768
fs.file-max = 65000
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_timestamps = 1
# 减少系统SYN连接重试次数(默认是5)
# 为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK,也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK包的数量。
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
# 以下两参数可解决生产场景中大量连接的Web(cache)服务器中TIME_WAIT过多问题
# 表示开启重用。允许将TIME-WAIT的sockets重新用于新的TCP连接,默认为0表示关闭
net.ipv4.tcp_tw_reuse = 1
# 打开TIME-WAIT套接字重用及回收功能,表示开启TCP连接中TIME-WAIT的sockets的快速收回功能,默认为0表示关闭。
net.ipv4.tcp_tw_recycle = 1
# 当keepalive起用的时候,TCP发送keepalive消息的频度,缺省是2小时,改为1200秒
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_synCOOKIEs= 1
# 减少处于FIN-WAIT-2连接状态的时间,使系统可以处理更多的连接,缺省值是60秒
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 3
# 允许系统打开的端口范围,表示用于向外连接的端口范围
net.ipv4.ip_local_port_range = 1024 65535
# 网卡eno16777736
net.ipv4.conf.eno16777736.send_redirects = 0
net.ipv4.conf.lo.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
# 网卡eno16777736
net.ipv4.conf.eno16777736.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_source_route= 0
net.ipv4.icmp_ignore_bogus_error_responses = 1
kernel.core_pattern = /tmp/core
vm.overcommit_memory = 1

之后,一定要执行以下命令进行检查,防止出现错误,例如“没有那个文件或目录”之类

# 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载
sysctl -p

5、配置文件

 1> hbase-env.sh

# 配置JDK安装路径
export JAVA_HOME=/usr/java/jdk
# 配置Hadoop安装路径
export HADOOP_HOME=/usr/Apache/hadoop
# 设置HBase的日志目录
export HBASE_LOG_DIR=${HBASE_HOME}/logs
# 设置HBase的pid目录
export HBASE_PID_DIR=${HBASE_HOME}/pids
# 使用独立的ZooKeeper集群
export HBASE_MANAGES_ZK=false
# 设置HBase内存堆的大小
export HBASE_HEAPSIZE=1024
# 设置HMaster最大可用内存
export HBASE_MASTER_OPTS="-Xmx512m"
# 设置HRegionServer最大可用内存
export HBASE_REGIONSERVER_OPTS="-Xmx512m"

注意:
企业实际部署时,datanode一般设置16到20G左右,过小与过大都不合适;regionserver一般可以设置32到48,或者以上;hmaster一般4到8G足够了。此外实际部署当中,hmaster与regionserver一般不在同一机器中。

2> hbase-site.xml参数说明见注释

<configuration>
    
    <property>
        <name>hbase.cluster.distributedname>
        <value>truevalue>
    property>
  
    
    <property>
        <name>hbase.rootdirname>
        <value>hdfs://nscluster/hbasevalue>
    property>
  
    
    <property>
        <name>hbase.master.portname>
        <value>16000value>
    property>
  
    
    <property>
        <name>hbase.master.info.portname>
        <value>16010value>
    property>
  
    
    <property>
        <name>hbase.tmp.dirname>
        <value>/usr/Apache/hbase/data/tmpvalue>
    property>  
    
    
    <property>
        <name>hbase.zookeeper.quorumname>
        <value>master,data1,data2value>
    property>
  
    
    <property>
        <name>hbase.zookeeper.property.clientPortname>
        <value>2181value>
    property>
  
    
    <property>
        <name>hbase.zookeeper.property.dataDirname>
        <value>/usr/Apache/zookeeper/datavalue>
    property>
  
    
    <property>
        <name>hbase.zookeeper.property.maxClientCnxnsname>
        <value>60value>
    property>
  
    
    
    <property>
        <name>hbase.master.distributed.log.splittingname>
        <value>falsevalue>
    property>
  
    
    <property>
        <name>hbase.client.scanner.cachingname>
        <value>2000value>
    property>
  
    
    <property>
        <name>hbase.hregion.max.filesizename>
        <value>10737418240value>
    property>
  
    
    <property>
        <name>hbase.regionserver.reginoSplitLimitname>
        <value>2000value>
    property>
   
    
    
      
    <property>
        <name>hbase.hstore.blockingStoreFilesname>
        <value>14value>    
    property>
  
    
    <property>
        <name>hbase.hstore.compactionThresholdname>
        <value>6value>
    property>
  
  
    
    <property>
        <name>hbase.hregion.memstore.block.multipliername>
        <value>20value>
    property>
  
    
    <property>
        <name>hbase.server.thread.wakefrequencyname>
        <value>500value>
    property>
     
      
    
    <property>
        <name>hbase.regionserver.global.memstore.lowerLimitname>
        <value>0.3value>
    property>
  
      
    
    <property>
        <name>hbase.regionserver.global.memstore.upperLimitname>
        <value>0.39value>
    property>
      
    <property>
        <name>hbase.block.cache.sizename>
        <value>0.4value>
    property>
  
    
    <property>
        <name>hbase.reginoserver.handler.countname>
        <value>300value>
    property>
  
    
    <property>
        <name>hbase.client.retries.numbername>
        <value>5value>
    property>
  
    
    <property>
        <name>hbase.client.pausename>
        <value>100value>
    property>
configuration>

3> 配置regionservers文件

目录:$HBASE_HOME/conf/,添加以下节点

data1
data2

4> 配置backup-masters文件

目录:$HBASE_HOME/conf/,添加以下节点

data1

表示data1是一个备用的HMaster节点

6、创建配置文件中出现的文件夹

cd /usr/Apache/hbase
# 创建hbase的缓存文件目录
mkdir data/tmp
# 创建hbase的日志文件目录
mkdir logs
# 创建hbase的pid文件目录
mkdir pids

将hbase以及相关软件分发到其他机器。

7、环境变量设置所有的节点都要配置,~/.bashrc 或 ~/.bash_profile

export HADOOP_HOME=/usr/Apache/hadoop
export ZOOKEEPER_HOME=/usr/Apache/zookeeper
export HBASE_HOME=/usr/Apache/hbase
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export CLASSPATH=.:$HADOOP_HOME/lib:$CLASSPATH
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin:$HBASE_HOME/bin

8、启动与关闭

start-hbase.sh
stop-hbase.sh

master节点

访问:192.168.1.215:16010/

 data1节点会作为一个备用节点,如果master节点关闭,data1节点会成为主节点,这就是设置了backup-masters文件的作用,当然前提hbase使用了zookeeper集群。

 访问:192.168.1.218:16010/

 

 

 


推荐阅读
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了使用CentOS7.0 U盘刻录工具进行安装的详细步骤,包括使用USBWriter工具刻录ISO文件到USB驱动器、格式化USB磁盘、设置启动顺序等。通过本文的指导,用户可以轻松地使用U盘安装CentOS7.0操作系统。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • 在Windows10系统上使用VMware创建CentOS虚拟机的详细步骤教程
    本文详细介绍了在Windows10系统上使用VMware创建CentOS虚拟机的步骤,包括准备条件、安装VMware、下载CentOS ISO文件、创建虚拟机并进行自定义配置、设置虚拟机的ISO与网络、进行安装和配置等。通过本文的指导,读者可以轻松地创建自己的CentOS虚拟机并进行相应的配置和操作。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
  • Ubuntu 用户安装 Linux Kernel 3.15 RC1
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Linux防火墙配置—允许转发
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
author-avatar
mobiledu2502857827
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有