hbase路径 安装问题。 主节点路径:/sdb1/local/hbase路径-1.3.0/ 从节点路径:/home/tf/hbase路径-1.3.0/ 启动报错:

Zookeeper3.4.9、Hbase1.3.1、Pig0.16.0安装及配置(基于Hadoop2.7.3集群) - 愿你成为自己的太阳 - CSDN博客
Zookeeper3.4.9、Hbase1.3.1、Pig0.16.0安装及配置(基于Hadoop2.7.3集群)
一、Hadoop集群环境
安装配置详见:
Ubuntu镜像版本: ubuntu-16.04.2-server-amd64.iso
JDK版本: jdk1.8
hadoop版本: hadoop-2.7.3
启动集群,进行下面Zookeeper3.4.9、Hbase1.3.1安装及配置。
Hadoop版本对应可用的Hbase版本参见:
已安装的Hadoop集群中主机名和对应的IP如下:
192.168.163.131
hadoop2_s1
192.168.163.132
hadoop2_s2
192.168.163.133
二、Zookeeper3.4.9安装配置
下载地址:
下载版本: zookeeper-3.4.9.tar.gz
压缩包存放目录: /home/lina/Software/Hadoop/zookeeper-3.4.9.tar.gz
强调:以下2-5步骤只需要在其中一个节点操作即可(我是在主节点上操作的),然后第6步我们会将zookeeper安装和配置文件整个复制到剩下的节点中。
将目录切换到压缩包存放的目录,我们这里将其解压到(安装到)/opt/Hadoop/文件夹下,命令如下:
cd /home/lina/Software/Hadoop
tar -zxvf zookeeper-3.4.9.tar.gz -C /opt/Hadoop
解压之后的目录文件为/opt/Hadoop/zookeeper-3.4.9
3、配置环境变量
因为之前在安装Hadoop时已经配置过jdk和hadoop的环境变量,所以这里只需要将zookeeper的环境变量添加即可,添加内容在下图使用红框圈起来了(没圈的地方是之前已经配置过的环境变量,这里不需要变动),使用命令sudo vi ~/.bashrc打开配置文件,配置如下:
export ZOOKEEPER_INSTALL=/opt/Hadoop/zookeeper-3.4.9
export PATH=.:$ZOOKEEPER_INSTALL/bin
(1)添加了ZOOKEEPER_INSTALL这个变量,其对应的值是zookeeper的安装路径(解压路径)
(2)将zookeeper下的bin目录添加至PATH中。
4、配置zoo.cfg
配置文件存放在$ZOOKEEPER_INSTALL$/conf下,即/opt/Hadoop/zookeeper-3.4.9/conf下,因为只有zoo_sample.cfg,因此将其复制一份并命名为zoo.cfg,使用下面的命令:
cd /opt/Hadoop/zookeeper-3.4.9/conf
cp zoo_sample.cfg zoo.cfg
使用sudo vi zoo.cfg将此文件打开,改变dataDir,并添加通信设置,如下,更改和添加的内容已经使用方框圈起来:
对于下面一个框起来的内容是为了通信,格式如下:
server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 若配置的是伪集群模式, 各个server的B, C参数必须不同.若配置的是完全分布模式,因为各server的ip,端口本身不一致,因此各server的B,C可以设置的完全一致。我的配置如上图。hadoop2m,hadoop2_s1,hadoop2_s2是3个server的主机名。
5、建立zookeeper数据文件夹
因为在上一步中设置了存放data的目录,这里需要手动建立目录:
Step1:在上面提到的地址/opt/Hadoop/zookeeper-3.4.9中建立一个tmp文件夹,在tmp下建一个zookeeper文件夹。
Step2:在zookeeper中建立一个myid的文件,添加内容“1”,注意:myid中需要写入一个数字, 该数字表示这是第几号server. 该数字必须和zoo.cfg文件中的server.X中的X一一对应,即对于上图的设置,hadoop2m中的myid添加数字“1”,hadoop2_s1中的myid添加数字“2”,hadoop2_s2中的myid添加数字“3”。
命令如下:
cd /opt/Hadoop/zookeeper-3.4.9
sudo mkdir tmp
sudo mkdir zookeeper
cd zookeeper
sudo vi myid
接下来,写入数字1,保存退出即可
强调:第6步骤只需要另外两个节点hadoop_s1和hadoop_s2上进行操作
6、使用scp将文件分发到其他节点并更改相应配置
(1)使用scp将文件(这里指zookeeper的安装及配置文件)/opt/Hadoop/zookeeper-3.4.9复制到另外两个节点hadoop_s1和hadoop_s2,命令如下:
scp -r /opt/Hadoop/zookeeper-3.4.9 hadoop_s1:/opt/Hadoop
scp -r /opt/Hadoop/zookeeper-3.4.9 hadoop_s2:/opt/Hadoop
执行完上述命令之后,你会发现hadoop_s1和hadoop_s2的/opt/Hadoop下面了zookeeper-3.4.9文件夹。
(2)更改hadoop_s1和hadoop_s2的myid文件,将其myid文件分别改为2,3
(3)设置hadoop_s1和hadoop_s2的环境变量,设置方法同第三步3、配置环境变量
强调:第7步骤需要在全部节点上进行操作
7、服务的启动与验证
(1)在全部节点上执行下面的操作开启服务,在相应安装目录的bin目录下:
cd /opt/Hadoop/zookeeper-3.4.9/bin
zkServer.sh start
zkServer.sh status
注意:必须所有节点进程全部启动完毕之后,才可以使用zkServer.sh status 命令查询状态。
我的其中一个节点的执行结果如下:
(2)若想要停止此进程,进入/opt/Hadoop/zookeeper-3.4.9/bin目录下,执行zkServer.sh stop命令即可。
三、Hbase1.3.1安装配置
下载地址:
下载版本: hbase-1.3.1-bin.tar.gz
压缩包存放目录: /home/lina/Software/Hadoop/hbase-1.3.1.tar.gz
强调:以下2-5步骤只需要在其中一个节点操作即可(我是在主节点上操作的),然后第6步我们会将hbase安装和配置文件整个复制到剩下的节点中。
将目录切换到压缩包存放的目录,我们这里将其解压到(安装到)/opt/Hadoop/文件夹下,命令如下:
cd /home/lina/Software/Hadoop
tar -zxvf hbase-1.3.1-bin.tar.gz -C /opt/Hadoop
解压之后的目录文件为/opt/Hadoop/hbase-1.3.1
3、配置环境变量
因为之前在安装Hadoop时已经配置过jdk,hadoop和zookeeper的环境变量,所以这里只需要将hbase的环境变量添加即可,添加内容在下图使用红框圈起来了(没圈的地方是之前已经配置过的环境变量,这里不需要变动),使用命令sudo vi ~/.bashrc打开配置文件,配置如下:
export HBASE_INSTALL=/opt/Hadoop/hbase-1.3.1
export PATH=.:$HBASE_INSTALL/bin
(1)添加了HBASE_INSTALL这个变量,其对应的值是hbase的安装路径(解压路径)
(2)将hbase下的bin目录添加至PATH中。
4、配置hbase-site.xml
配置文件存放在$HBASE_INSTALL$/conf下,即/opt/Hadoop/hbase-1.3.1/conf下,修改hbase-site.xml,使用下面的命令打开文件:
cd /opt/Hadoop/hbase-1.3.1/conf
sudo vi hbase-site.xml
添加如下内容:
5、建立hbase数据文件夹
因为在上一步中设置了hbase.tmp.dir的目录,这里需要手动建立目录:在上面提到的地址/opt/Hadoop/hbase-1.3.1中建立一个tmp文件夹,在tmp下建一个hbase文件夹。
命令如下:
cd /opt/Hadoop/hbase-1.3.1
sudo mkdir tmp
sudo mkdir hbase
强调:第6步骤只需要另外两个节点hadoop_s1和hadoop_s2上进行操作
6、使用scp将文件分发到其他节点并更改相应配置
(1)使用scp将文件(这里指hbase的安装及配置文件)/opt/Hadoop/hbase-1.3.1复制到另外两个节点hadoop_s1和hadoop_s2,命令如下:
scp -r /opt/Hadoop/hbase-1.3.1 hadoop_s1:/opt/Hadoop
scp -r /opt/Hadoop/hbase-1.3.1 hadoop_s2:/opt/Hadoop
执行完上述命令之后,你会发现hadoop_s1和hadoop_s2的/opt/Hadoop下面了hbase-1.3.1文件夹。
(2)设置hadoop_s1和hadoop_s2的环境变量,设置方法同第三步3、配置环境变量
强调:第7步骤需要在主节点上进行操作
7、服务的启动与验证
(1)在主节点上执行下面的操作开启服务,在根目录下(需要保证hdfs和zookeeper服务已开启):
start-hbase.sh
使用jps查看已开启的服务,主节点的执行结果如下:
(2)可通过访问在web端访问,如下图:
(3)若想要停止此进程,在根目录下,执行stop-hbase.sh命令即可。
四、Pig0.16.0安装配置
下载地址:
下载版本: pig-0.16.0.tar.gz
压缩包存放目录: /home/lina/Software/Hadoop/pig-0.16.0.tar.gz
强调:所有步骤只需要在其中主节点操作即可
将目录切换到压缩包存放的目录,我们这里将其解压到(安装到)/opt/Hadoop/文件夹下,命令如下:
cd /home/lina/Software/Hadoop
tar -zxvf pig-0.16.0.tar.gz -C /opt/Hadoop
解压之后的目录文件为/opt/Hadoop/pig-0.16.0
3、配置环境变量
因为之前在安装Hadoop时已经配置过jdk,hadoop,zookeeper和hbase的环境变量,所以这里只需要将pig的环境变量添加即可,添加内容在下图使用红框圈起来了(没圈的地方是之前已经配置过的环境变量,这里不需要变动),使用命令sudo vi ~/.bashrc打开配置文件,配置如下:
export PIG_INSTALL=/opt/Hadoop/pig-0.16.0
export PIG_CLASSPATH=${HADOOP_INSTALL}/etc/hadoop
export HADOOP_CONF_DIR=${HADOOP_INSTALL}/etc/hadoop
export PATH=.:$PIG_INSTALL/bin
(1)添加了PIG_INSTALL,PIG_CLASSPATH和HADOOP_CONF_DIR这三个变量。PIG_INSTALL对应的值时pig文件的解压目录,PIG_CLASSPATH和HADOOP_CONF_DIR对应的值是Hadoop的安装目录中hadoop的配置文件所在目录。
(2)将pig下的bin目录添加至PATH中。
4、服务的启动与验证
(1)在根目录下(若未配置全局环境变量,则需要进入pig安装目录的bin文件夹下),执行pig命令,若出现grunt &的提示符说明安装成功,如图:
注:示例可参见《Hadoop权威指南》的11.2节的示例。
说明:在使用grunt shell进行LOAD操作时,若pig是本地模式,则可以加载本地文件夹,若pig是分布式模式,则要先将需要加载的文件上传至HDFS。
*************************
推荐一个zookeeper讲的比较详细的系列网站:
*************************
我的热门文章博客分类:
(1)hadoop2.7.1源码编译
(2)hadoop2.7.1安装准备
(3)1.x和2.x都支持的集群安装
(4)hbase安装准备
(5)hbase安装
(6)snappy安装
(7)hbase性能优化
(8)雅虎YCSBC测试hbase性能测试
(9)spring-hadoop实战
(10)基于ZK的Hadoop HA集群安装
1.hadoop环境安装
hbase是建立在Hadoop之上的一个NOSQL列存储数据库,所以你得首先安装Hadoop,安装Hadoop参见
2.zookeeper3.4.6集群安装
1,hbase regionserver 向zookeeper注册,提供hbase regionserver状态信息(是否在线)
2,hmaster启动时候会将hbase 系统表-ROOT- 加载到 zookeeper cluster,通过zookeeper cluster可以获取当前系统表.META.的存储所对应的regionserver信息。
3.zookeeper集群节点最少3台,这样才能满足选举规则,少数服从多数
1) 下载解压
下载zookeeper-3.4.6.tar.gz到/opt
解压tar -zxvf zookeeper-3.4.6.tar.gz
2) 配置/etc/hosts
# Do not remove the following line, or various programs# that require network functionality will fail.127.0.0.1 localhost.localdomain localhost::1 localhost6.localdomain6 localhost6192.168.186.234 inddb1-vip192.168.186.235 inddb2-vip192.168.88.22 nmsc2192.168.88.21 nmsc1192.168.181.66 nmsc0
3) 创建zookeeper数据文件
#zookeeper每台机器上都要创建
sudo rm -r /home/hadoop/zookeeper
/home/hadoop
mkdir zookeeper
4) 配置zoo.cfg
将zookeeper-3.3.4/conf目录下面的 zoo_sample.cfg复制一份为zoo.cfg,配置文件内容如下所示
# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial# synchronization phase can takeinitLimit=10# The number of ticks that can pass between# sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just# example sakes.dataDir=/home/hadoop/zookeeper# the port at which the clients will connectclientPort=2181# the maximum number of client connections.# increase this if you need to handle more clients#maxClientCnxns=60## Be sure to read the maintenance section of the# administrator guide before turning on autopurge.## http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance## The number of snapshots to retain in dataDir#数据文件保存最近的3个快照,默认是都保存,时间长的话会占用很大磁盘空间
autopurge.snapRetainCount=3# Purge task interval in hours# Set to "0" to disable auto purge feature#单位为小时,每小时清理一次快照数据
autopurge.purgeInterval=1server.1=nmsc0:server.2=nmsc1:server.3=nmsc2:
5) 远程复制分发安装文件到其它zookeeper集群节点
scp -r /opt/zookeeper-3.3.4 root@nmsc1:/opt/
scp -r /opt/zookeeper-3.3.4 root@nmsc2:/opt/
6) 设置myid必须为整数
#zookeeper集群节点之一
echo "1" & /home/hadoop/zookeeper/myid
##zookeeper集群节点之二
echo "2" & /home/hadoop/zookeeper/myid
##zookeeper集群节点之三
echo "3" & /home/hadoop/zookeeper/myid
7) 启动ZooKeeper集群
cd /opt/zookeeper-3.4.6
bin/zkServer.sh start
8) 查看单机ZooKeeper是leader还是follower
cd /opt/zookeeper-3.4.6
bin/zkServer.sh status
9) 停止ZooKeeper集群
cd /opt/zookeeper-3.4.6
bin/zkServer.sh stop
10) 用客户端查看zookeeper上数据
客户端链接zookeeper服务端
cd /opt/zookeeper-3.4.6/
bin/zkCli.sh -server nmsc0:2181,nmsc2:2181,nmsc1:2181
登录后提示信息如下:
[root@nmsc1 bin]# ./zkCli.sh -server nmsc0:2181,nmsc2:2181,nmsc1:2181
Connecting to nmsc0:2181,nmsc2:2181,nmsc1:2181
10:36:20,475 [myid:] - INFO
[main:Environment@100] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/ GMT
10:36:20,479 [myid:] - INFO
[main:Environment@100] - Client environment:host.name=nmsc1
10:36:20,479 [myid:] - INFO
[main:Environment@100] - Client environment:java.version=1.7.0_65
10:36:20,481 [myid:] - INFO
[main:Environment@100] - Client environment:java.vendor=Oracle Corporation
10:36:20,481 [myid:] - INFO
[main:Environment@100] - Client environment:java.home=/opt/java/jdk1.7.0_65/jre
10:36:20,481 [myid:] - INFO
[main:Environment@100] - Client environment:java.class.path=/opt/zookeeper-3.4.6/bin/../build/classes:/opt/zookeeper-3.4.6/bin/../build/lib/*.jar:/opt/zookeeper-3.4.6/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper-3.4.6/bin/../lib/slf4j-api-1.6.1.jar:/opt/zookeeper-3.4.6/bin/../lib/netty-3.7.0.Final.jar:/opt/zookeeper-3.4.6/bin/../lib/log4j-1.2.16.jar:/opt/zookeeper-3.4.6/bin/../lib/jline-0.9.94.jar:/opt/zookeeper-3.4.6/bin/../zookeeper-3.4.6.jar:/opt/zookeeper-3.4.6/bin/../src/java/lib/*.jar:/opt/zookeeper-3.4.6/bin/../conf:.:/opt/java/jdk1.7.0_65/jre/lib/rt.jar:/opt/java/jdk1.7.0_65/lib/dt.jar:/opt/java/jdk1.7.0_65/lib/tools.jar
10:36:20,481 [myid:] - INFO
[main:Environment@100] - Client environment:java.library.path=:/opt/jprofiler7/bin/linux-x64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
10:36:20,481 [myid:] - INFO
[main:Environment@100] - Client environment:java.io.tmpdir=/tmp
10:36:20,482 [myid:] - INFO
[main:Environment@100] - Client piler=&NA&
10:36:20,482 [myid:] - INFO
[main:Environment@100] - Client environment:os.name=Linux
10:36:20,482 [myid:] - INFO
[main:Environment@100] - Client environment:os.arch=amd64
10:36:20,482 [myid:] - INFO
[main:Environment@100] - Client environment:os.version=2.6.18-308.el5
10:36:20,482 [myid:] - INFO
[main:Environment@100] - Client environment:user.name=root
10:36:20,482 [myid:] - INFO
[main:Environment@100] - Client environment:user.home=/root
10:36:20,482 [myid:] - INFO
[main:Environment@100] - Client environment:user.dir=/opt/zookeeper-3.4.6/bin
10:36:20,484 [myid:] - INFO
[main:ZooKeeper@438] - Initiating client connection, connectString=nmsc0:2181,nmsc2:2181,nmsc1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@8a61d64
Welcome to ZooKeeper!
10:36:20,511 [myid:] - INFO
[main-SendThread(nmsc2:2181):ClientCnxn$SendThread@975] - Opening socket connection to server nmsc2/192.168.88.22:2181. Will not attempt to authenticate using SASL (unknown error)
10:36:20,515 [myid:] - INFO
[main-SendThread(nmsc2:2181):ClientCnxn$SendThread@852] - Socket connection established to nmsc2/192.168.88.22:2181, initiating session
JLine support is enabled
10:36:20,528 [myid:] - INFO
[main-SendThread(nmsc2:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server nmsc2/192.168.88.22:2181, sessionid = 0x353a8f6e9547a07, negotiated timeout = 30000
WatchedEvent state:SyncConnected type:None path:null
查看根目录下数据节点
[zk: nmsc0:2181,nmsc2:2181,nmsc1:2181(CONNECTED) 0] ls /
[isr_change_notification, hbase, zookeeper, admin, consumers, config, controller, kafka-manager, brokers, controller_epoch]
[zk: nmsc0:2181,nmsc2:2181,nmsc1:2181(CONNECTED) 1] ls /controller
[zk: nmsc0:2181,nmsc2:2181,nmsc1:2181(CONNECTED) 2] ls /hbase
[meta-region-server, backup-masters, table, draining, region-in-transition, table-lock, running, master, namespace, hbaseid, online-snapshot, replication, splitWAL, recovering-regions, rs, flush-table-proc]
[zk: nmsc0:2181,nmsc2:2181,nmsc1:2181(CONNECTED) 3] ls /zookeeper
[zk: nmsc0:2181,nmsc2:2181,nmsc1:2181(CONNECTED) 4] ls /brokers
[seqid, topics, ids]
[zk: nmsc0:2181,nmsc2:2181,nmsc1:2181(CONNECTED) 5] ls /brokers/topics
[signal2015, __consumer_offsets]
[zk: nmsc0:2181,nmsc2:2181,nmsc1:2181(CONNECTED) 6] ls /brokers/topics/signal2015
[partitions]
[zk: nmsc0:2181,nmsc2:2181,nmsc1:2181(CONNECTED) 7]
3.时间同步
注意:集群中机器时间同步很关键,时间最好相差在1秒以下,不然hbase启动会失败
安装NTP服务,参见/link?url=0outiNUpCi-RzCtmWCKgqyVE0S_hyEcc3cjfbes_XHtxDN4wCh3-TXAe8YrtW1iOudzloNbMRMFe6niTS_uODhWEdPjD7MEwimib1a02FVm
我这是公司内部有时间同步的机器,直接从该机器同步数据,执行命令如下:
#从机器192.168.162.23同步系统时间,可以采用linux定时任务每天凌晨执行一次
ntpdate -u 192.168.162.23
zilongzilong
浏览: 86838 次
来自: 上海
szxiaokang 写道导入时报这个错误:
2016-10- ...
nsrainbow 写道hbase.regionserver. ...
导入时报这个错误:
13:10:26,5 ...
hi,请教您个问题,我在整合hive和hbase时,启动了 m ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'查看: 110129|回复: 40
hbase 0.96整合到hadoop2.2三个节点全分布式安装高可靠文档
主题帖子积分
1.hbase安装在什么情况下会发生,启动之后自动宕机
2.hbase安装目录该如何选择?
3.hbase目录如果出现权限不一致,会发生什么情况?
4.如果只有一个节点有临时目录会出现什么情况?
Hbase集群安装前注意
1)&&Java:(hadoop已经安装了),
2)&&Hadoop 0.20.x / Hadoop-2.x 已经正确安装(& & hadoop安装参考),并且可以启动 HDFS 系统,并且需要确保hdfs能够上传和读写文件。例如:
我们上传hbase的所有xml配置文件
上传文件:
上面说明,hdfs运行正常。
3)&&ssh 必须安装ssh , sshd 也必须运行,这样Hadoop的脚本才可以远程操控其他的Hadoop和Hbase进程。ssh之间必须都打通,不用密码都可以登录。ssh打通可以参考:、
4)&&NTP:集群的时钟要保证基本的一致。稍有不一致是可以容忍的,但是很大的不一致会 造成奇怪的行为。 运行 NTP 或者其他什么东西来同步你的时间.
如果你查询的时候或者是遇到奇怪的故障,可以检查一下系统时间是否正确!
设置集群各个节点时钟:date -s “ 14:00:00”
ubuntu可以参考
5)&&ulimit 和 nproc:
HBase是数据库,会在同一时间使用很多的文件句柄。大多数linux系统使用的默认值1024是不能满足的,会导致FAQ:异常。还可能会发生这样的异常
&&&& 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: ExceptionincreateBlockOutputStream java.io.EOFException
& &&& 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient:Abandoning block blk_-1901
所以你需要修改你的最大文件句柄限制。可以设置到10k. 你还需要修改 hbase 用户的 nproc,如果过低会造成 OutOfMemoryError异常。
需要澄清的,这两个设置是针对操作系统的,不是Hbase本身的。有一个常见的错误是Hbase运行的用户,和设置最大值的用户不是一个用户。在Hbase启动的时候,第一行日志会现在ulimit信息,所以你最好检查一下。
6)在Ubuntu上设置ulimit
可以先查看当前用户 ulimit:
设置ulimit:
如果你使用的是Ubuntu,你可以这样设置:
在文件 /etc/security/limits.conf 添加一行,如:
hadoop&&-& && & nofile 32768复制代码
可以把 hadoop 替换成你运行Hbase和Hadoop的用户。如果你用两个用户,你就需要配两个。还有配nproc hard 和 softlimits. 在文件 /etc/security/limits.conf 添加一行下面内容:
hadoop soft/hard nproc 32000复制代码在 /etc/pam.d/common-session 加上这一行:session required&&pam_limits.so复制代码否则在 /etc/security/limits.conf上的配置不会生效.
还有注销再登录,这些配置才能生效!
--------------------------------------------------------------------------------------------------------------
下面为什么对上面设置,做一下说明:
一、在 /etc/pam.d/common-session 加上这一行:
session required pam_limit.so复制代码
那么这一行的作用是什么?
pam_limits.so模块可以使用在对一般应用程序使用的资源限制方面。如果需要在SSH服务器上对来自不同用户的ssh访问进行限制,就可以调用该模块来实现相关功能。当需要限制用户admin登录到SSH服务器时的最大连接数(防止同一个用户开启过多的登录进程),就可以在/etc/pam.d/sshd文件中增加一行对pam_limits.so模块的调用:
session& & required& && &&&pam_limit.so
二、在文件 /etc/security/limits.conf 添加如下两行一行,
hadoop - nofile 32768
hadoop hard nproc 16384复制代码他们的含义分别为:
hadoop&&-& && & nofile 32768
这个的含义是什么?
hadoop最大能打开的文件数不超过65536
hadoop& && && &&&hard& & nproc& &16384
这个的含义是什么?
hadoop用户最大能开启的进程数不超过16384
--------------------------------------------------------------------------------------------------------------
分布式模式配置
在进行下面配置之前需要注意的问题:
第一:首先需要建立,下面配置文件中的目录:下面配置文件需要建立的的文件:
1.hbase临时目录,这里对应的是下面配置。
这里在说一下,这个临时目录的选择,系统默认目录,容易被系统删除,所以我们需要更改默认目录。但是我们更改目录需要注意的一个问题,就是用户权限,很多人在安装的时候随便选择了一个目录,结果不能访问,所以你的hbase起来之后,过会就挂掉了。
一、新建文件,并注意权限问题
hbase临时目录
&property&
&name&hbase.tmp.dir&/name&
&value&file:/usr/hbase/tmp&/value&
&/property&复制代码zookeeper目录:
&property&
&name&hbase.zookeeper.property.dataDir&/name&
&value&file:/usr/hbase/zookeeper&/value&
&/property&复制代码上面文件建立后,我们看到下面效果
同时看一下这两个文件夹的权限与hadoop、hbase,都属于用户及用户组aboutyun:aboutyun
二、每个节点都必须创建文件夹,否则也会出现regionserver自动挂机。
上面说了注意的问题,下面开始配置(先配置master节点)
1.1首先下载hbase
密码: crxs
1.2上传压缩包到Linux
如果使用win7,则上传到Linux,这里使用的是虚拟机,通过WinSCP上传。winSCP不会使用参考。
1.3解压
tar zxvf hbase.tar.gz复制代码
1.4配置conf/hbase-env.sh
进入/usr/hbase/conf,修改hbase-env.sh
export JAVA_HOME=/usr/jdk1.7
# Tell HBase whether it should manage it'sown instance of Zookeeper or not.复制代码
不管是什么模式,你都需要编辑 conf/hbase-env.sh来告知Hbase java的安装路径.在这个文件里你还可以设置Hbase的运行环境,诸如 heapsize和其他 JVM有关的选项, 还有Log文件地址,等等. 设置 JAVA_HOME指向 java安装的路径.
一个分布式运行的Hbase依赖一个zookeeper集群。所有的节点和客户端都必须能够访问zookeeper。默认的情况下Hbase会管理一个zookeep集群。这个集群会随着Hbase的启动而启动。当然,你也可以自己管理一个zookeeper集群,但需要配置Hbase。你需要修改conf/hbase-env.sh里面的HBASE_MANAGES_ZK 来切换。这个值默认是true的,作用是让Hbase启动的时候同时也启动zookeeper.
让Hbase使用一个现有的不被Hbase托管的Zookeep集群,需要设置 conf/hbase-env.sh文件中的HBASE_MANAGES_ZK 属性为 false,这里使用的是系统自带的,所以为true
,
# Tell HBase whether it should manage it's own instanceof Zookeeper or not.
exportHBASE_MANAGES_ZK=true复制代码
1.5配置conf/hbase-site.xml
&configuration&
&property&
&name&hbase.rootdir&/name&
&value&hdfs://master:8020/hbase&/value&
&/property&
&property&
&name&hbase.tmp.dir&/name&
&value&file:/usr/hbase/tmp&/value&
&/property&
&property&
&name&hbase.master&/name&
&value&hdfs://master:60000&/value&
&/property&
&property&
&name&hbase.zookeeper.property.dataDir&/name&
&value&file:/usr/hbase/zookeeper&/value&
&/property&复制代码
要想运行完全分布式模式,加一个属性 hbase.cluster.distributed 设置为 true 然后把 hbase.rootdir 设置为HDFS的NameNode的位置。 例如,你的namenode运行在node1,端口是8020 你期望的目录是 /hbase,使用如下的配置:hdfs://master:<font color="#ff/hbase.注释:
这个端口的确认:比如在
hadoop1.X中使用的hdfs://master:<font color="#ff/
hadoop2.X中使用的hdfs://master:<font color="#ff/这个端口是由core-site.xml来决定&property&
& && && && && & &name&fs.defaultFS&/name&
& && && && && & &value&hdfs://master:8020&/value&
& && & &/property&复制代码
hbase.rootdir:这个目录是region server的共享目录,用来持久化Hbase。URL需要是'完全正确'的,还要包含文件系统的scheme。例如,要表示hdfs中的'/hbase'目录,namenode 运行在node1的49002端口。则需要设置为hdfs://master:49002/hbase。默认情况下Hbase是写到/tmp的。不改这个配置,数据会在重启的时候丢失。默认: file:///tmp/hbase-${user.name}/hbase
hbase.cluster.distributed :Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面。
默认: false
在hbase-site.xml配置zookeeper:
当Hbase管理zookeeper的时候,你可以通过修改zoo.cfg来配置zookeeper,
一个更加简单的方法是在 conf/hbase-site.xml里面修改zookeeper的配置。Zookeeer的配置是作为property写在 hbase-site.xml里面的。
对于zookeepr的配置,你至少要在 hbase-site.xml中列出zookeepr的ensemble servers,具体的字段是 hbase.zookeeper.quorum. 该这个字段的默认值是 localhost,这个值对于分布式应用显然是不可以的. (远程连接无法使用)。
hbase.zookeeper.property.clientPort:ZooKeeper的zoo.conf中的配置。 客户端连接的端口。
hbase.zookeeper.quorum:Zookeeper集群的地址列表,用逗号分割。例如:&,,&.默认是localhost,是给伪分布式用的。要修改才能在完全分布式的情况下使用。如果在hbase-env.sh设置了HBASE_MANAGES_ZK,这些ZooKeeper节点就会和Hbase一起启动。
默认: localhost
运行一个zookeeper也是可以的,但是在生产环境中,你最好部署3,5,7个节点。部署的越多,可靠性就越高,当然只能部署奇数个,偶数个是不可以的。你需要给每个zookeeper 1G左右的内存,如果可能的话,最好有独立的磁盘。 (独立磁盘可以确保zookeeper是高性能的。).如果你的集群负载很重,不要把Zookeeper和RegionServer运行在同一台机器上面。就像DataNodes 和 TaskTrackers一样
hbase.zookeeper.property.dataDir:ZooKeeper的zoo.conf中的配置。 快照的存储位置
把ZooKeeper保存数据的目录地址改掉。默认值是 /tmp ,这里在重启的时候会被操作系统删掉,可以把它修改到 /home/hadoop/zookeeper (这个路径hadoop用户拥有操作权限)
对于独立的Zookeeper,要指明Zookeeper的host和端口。可以在 hbase-site.xml中设置, 也可以在Hbase的CLASSPATH下面加一个zoo.cfg配置文件。 HBase 会优先加载 zoo.cfg 里面的配置,把hbase-site.xml里面的覆盖掉.
1.6配置conf/regionservers
完全分布式模式的还需要修改conf/regionservers. 在这里列出了你希望运行的全部 HRegionServer,一行写一个host (就像Hadoop里面的 slaves 一样). 列在这里的server会随着集群的启动而启动,集群的停止而停止.
1.7替换hadoop的jar包
hbase基本的配置完了。
查看hbase的lib目录下。
ls lib |grep hadoop
hadoop-annotations-2.1.0-beta.jar
hadoop-auth-2.1.0-beta.jar
hadoop-client-2.1.0-beta.jar
hadoop-common-2.1.0-beta.jar
hadoop-hdfs-2.1.0-beta.jar
hadoop-hdfs-2.1.0-beta-tests.jar
hadoop-mapreduce-client-app-2.1.0-beta.jar
hadoop-mapreduce-client-common-2.1.0-beta.jar
hadoop-mapreduce-client-core-2.1.0-beta.jar
hadoop-mapreduce-client-jobclient-2.1.0-beta.jar
hadoop-mapreduce-client-jobclient-2.1.0-beta-tests.jar
hadoop-mapreduce-client-shuffle-2.1.0-beta.jar
hadoop-yarn-api-2.1.0-beta.jar
hadoop-yarn-client-2.1.0-beta.jar
hadoop-yarn-common-2.1.0-beta.jar
hadoop-yarn-server-common-2.1.0-beta.jar
hadoop-yarn-server-nodemanager-2.1.0-beta.jar
看到它是基于hadoop2.1.0的,所以我们需要用我们的hadoop2.2.0下的jar包来替换2.1的,保证版本的一致性,hadoop下的jar包都是在$HADOOP_HOME/share/hadoop下的.
我们先cd 到 /home/hadoop/hbase-0.96.0-hadoop2/lib下运行命令: rm -rf hadoop*.jar删掉所有的hadoop相关的jar包,然后运行:
find /home/hadoop/hadoop-2.2.0/share/hadoop -name &hadoop*jar& | xargs -i cp {} /home/hadoop/hbase-0.96.0-hadoop2/lib/
拷贝所有hadoop2.2.0下的jar包hbase下进行hadoop版本的统一
注意的问题:
由于包之间的重复,后面使用还会产生问题,如下:
所以我们还需要运行下面命令:
(对于新手总想直接复制命令就像万事大吉,这里面需要注意的问题:
路径,如果hbase位于usr下面,是没有问题的。但是如果更换了路径,注意红字部分你需要修改。
/usr/hbase/lib rm slf4j-log4j12-1.6.4.jar
1.8分发hbase
上面我们配置完毕,接着就是把这个文件夹下发到slave节点
scp&&/usr/hbase slave1:~/复制代码然后在从~/hbase移动到 /usr路径中。
2.&&运行和确认安装
2.1当Hbase托管ZooKeeper的时候
当Hbase托管ZooKeeper的时候Zookeeper集群的启动是Hbase启动脚本的一部分
首先确认你的HDFS是运行着的。你可以运行HADOOP_HOME中的 bin/start-hdfs.sh 来启动HDFS.你可以通过put命令来测试放一个文件,然后有get命令来读这个文件。通常情况下Hbase是不会运行mapreduce的。所以需要检查这些。
用如下命令启动Hbase:
bin/start-hbase.sh
这个脚本在HBASE_HOME目录里面。
你现在已经启动Hbase了。Hbase把log记在 logs 子目录里面. 当Hbase启动出问题的时候,可以看看Log.
Hbase也有一个界面,上面会列出重要的属性。默认是在Master的60010端口上H (HBase RegionServers 会默认绑定 60020端口,在端口60030上有一个展示信息的界面 ).如果Master运行在 node1,端口是默认的话,你可以用浏览器在 http://node:60010看到主界面. .
一旦Hbase启动,可以看到如何建表,插入数据,scan你的表,还有disable这个表,最后把它删掉。
可以在Hbase Shell停止Hbase
$./bin/stop-hbase.sh
stoppinghbase...............
停止操作需要一些时间,你的集群越大,停的时间可能会越长。如果你正在运行一个分布式的操作,要确认在Hbase彻底停止之前,Hadoop不能停.
2.2独立的zookeeper启动(如果另外安装,可以选此)
除了启动habse,
执行:bin/start-hbase.sh启动habse
你需要自己去运行zookeeper:
${HBASE_HOME}/bin/hbase-daemons.sh {start,stop} zookeeper
你可以用这条命令启动ZooKeeper而不启动Hbase. HBASE_MANAGES_ZK 的值是 false, 如果你想在Hbase重启的时候不重启ZooKeeper,你可以这样。
可以使用jps查看进程:在master上:在slave1,slave2(slave节点)上
通过浏览器查看60010端口:
4.&&安装中出现的问题
1 )用./start-hbase.sh启动HBase后,执行hbase shell
# bin/hbase shell
HBase S enter 'help&RETURN&' for list of supported commands.
Version: 0.20.6, rUnknown, Thu Oct 28 19:02:04 CST 2010复制代码
接着创建表时候出现如下情况:
hbase(main):001:0& create 'test',''c复制代码
NativeException: org.apache.hadoop.hbase.MasterNotRunningException: null
jps下,发现主节点上HMaster没有启动,查理HBase log(logs/hbase-hadoop-master-ubuntu.log)里有下面异常:
FATAL org.apache.hadoop.hbase.master.HMaster: Unhandled exception. Starting shutdown.
java.io.IOException: Call to node1/10.64.56.76:49002 failed on local exception: java.io.EOFException
从hadoop_home/下面cp一个hadoop/hadoop-core-0.20.203.0.jar到hbase_home/lib下。
因为Hbase建立在Hadoop之上,所以他用到了hadoop.jar,这个Jar在 lib 里面。这个jar是hbase自己打了branch-0.20-append 补丁的hadoop.jar. Hadoop使用的hadoop.jar和Hbase使用的 必须 一致。所以你需要将 Hbaselib 目录下的hadoop.jar替换成Hadoop里面的那个,防止版本冲突。比方说CDH的版本没有HDFS-724而branch-0.20-append里面有,这个HDFS-724补丁修改了RPC协议。如果不替换,就会有版本冲突,继而造成严重的出错,Hadoop会看起来挂了。
再用./start-hbase.sh启动HBase后,jps下,发现主节点上HMaster还是没有启动,在HBase log里有下面异常:
FATAL org.apache.hadoop.hbase.master.HMaster: Unhandled exception. Starting shutdown.
java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration
在NoClassDefFoundError,缺少 org/apache/commons/configuration/Configuration
果断给他加一个commons-configuration包,
从hadoop_home/lib下面cp一个hadoop/lib/commons-configuration-1.6.jar到hbase_home/lib下。
(集群上所有机子的hbase配置都需要一样)
创建表报错:
ERROR: java.io.IOException: Table Namespace Manager not ready yet, try again later
at org.apache.hadoop.hbase.master.HMaster.getNamespaceDescriptor(HMaster.java:3101)
at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1738)
at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1777)
at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:38221)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2146)
at org.apache.hadoop.hbase.ipc.RpcServer$Handler.run(RpcServer.java:1851)
1) 查看集群的所有机器上,
HRegionServer和HQuorumPeer进程是否都启动?
2)查看集群的所有机器的logs是不是有错误消息;
tail -f hbase-hadoop-regionserver-XXX..log
2&&注意事项:
1)、先启动hadoop后,再开启hbase
2)、去掉hadoop的安全模式:hadoop dfsadmin -safemode leave
3)、把/etc/hosts里的ubuntu的IP改为服务器当前的IP
4)&&、确认hbase的hbase-site.xml中
& && && && && && &&name&hbase.rootdir&/name&
& && && && & & & &value&hdfs://node:49002/hbase&/value&
& && && &与hadoop的core-site.xml中
& && && && && && & &name&fs.default.name&/name&
& && && && &&&& & &value&hdfs://node:49002/hbase&/value&
& && & 红字部分保持一致
& && &&value&hdfs://localhost:8020/hbase&/value&
& &&&否则报错:java.lang.RuntimeException: HMaster Aborted
6)、重新执行./start-hbase.sh之前,先kill掉当前的hbase和zookeeper进程
PS:遇到问题时,先查看logs,很有帮助。
欢迎加入about云群 、 ,云计算爱好者群,关注
主题帖子积分
中级会员, 积分 442, 距离下一级还需 558 积分
中级会员, 积分 442, 距离下一级还需 558 积分
分享点经验:hadoop2.2.0+hbase-0.98.12-hadoop2 不用替换jar包。我部署成功了。
再次感谢楼主
主题帖子积分
注册会员, 积分 165, 距离下一级还需 35 积分
注册会员, 积分 165, 距离下一级还需 35 积分
谢谢分享~~~~~~~~
主题帖子积分
中级会员, 积分 208, 距离下一级还需 792 积分
中级会员, 积分 208, 距离下一级还需 792 积分
求教一个问题:hadoop2.2.0中有了journalnode之后就不要secondarynamenode吗,为什么我每次启动都没有secondarynamenode这个进程了
主题帖子积分
求教一个问题:hadoop2.2.0中有了journalnode之后就不要secondarynamenode吗,为什么我每次启动都没有secon ...
你配置的HA吧,secondarynamenode是备份用的,HA也是备份用的。
欢迎加入about云群 、 ,云计算爱好者群,关注
主题帖子积分
中级会员, 积分 208, 距离下一级还需 792 积分
中级会员, 积分 208, 距离下一级还需 792 积分
请问,我按照上面的配了,可是还Hmaster还是会自动宕掉,是不是和hbase占用的内存有关系啊,我一个虚拟主机配的内存是512M
主题帖子积分
请问,我按照上面的配了,可是还Hmaster还是会自动宕掉,是不是和hbase占用的内存有关系啊,我一个虚拟主机 ...
具体看情况,宕掉看日志,看看是内存的问题,还是因为权限问题
欢迎加入about云群 、 ,云计算爱好者群,关注
主题帖子积分
中级会员, 积分 208, 距离下一级还需 792 积分
中级会员, 积分 208, 距离下一级还需 792 积分
你配置的HA吧,secondarynamenode是备份用的,HA也是备份用的。
我配置的是两个namenode,这样再配secondarynamenode还有必要吗
主题帖子积分
中级会员, 积分 208, 距离下一级还需 792 积分
中级会员, 积分 208, 距离下一级还需 792 积分
具体看情况,宕掉看日志,看看是内存的问题,还是因为权限问题
下面是日志信息。说什么建表的时候命名空间找不到了,
20:07:05,518 INFO&&[master:itcast01:60000] master.SnapshotOfRegionAssignmentFromMeta: Finished to scan the hbase:meta for the current region assignmentsnapshot
20:07:05,573 INFO&&[master:itcast01:60000] master.TableNamespaceManager: Namespace table not found. Creating...
20:07:05,697 DEBUG [master:itcast01:60000] lock.ZKInterProcessLockBase: Acquired a lock for /hbase/table-lock/hbase:namespace/write-master:015
20:07:05,719 DEBUG [master:itcast01:60000] lock.ZKInterProcessLockBase: Released /hbase/table-lock/hbase:namespace/write-master:015
20:07:05,719 FATAL [master:itcast01:60000] master.HMaster: Master server abort: loaded coprocessors are: []
20:07:05,721 FATAL [master:itcast01:60000] master.HMaster: Unhandled exception. Starting shutdown.
org.apache.hadoop.hbase.TableExistsException: hbase:namespace
& && &&&at org.apache.hadoop.hbase.master.handler.CreateTableHandler.prepare(CreateTableHandler.java:120)
& && &&&at org.apache.hadoop.hbase.master.TableNamespaceManager.createNamespaceTable(TableNamespaceManager.java:230)
& && &&&at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:85)
& && &&&at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:1060)
& && &&&at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:921)
& && &&&at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:607)
& && &&&at java.lang.Thread.run(Thread.java:722)
20:07:05,727 INFO&&[master:itcast01:60000] master.HMaster: Aborting
20:07:05,728 INFO&&[itcast01,1616468-BalancerChore] balancer.BalancerChore: itcast01,1616468-BalancerChore exiting
20:07:05,728 INFO&&[itcast01,1616468-ClusterStatusChore] balancer.ClusterStatusChore: itcast01,1616468-ClusterStatusChore exiting
20:07:05,729 INFO&&[CatalogJanitor-itcast01:60000] master.CatalogJanitor: CatalogJanitor-itcast01:60000 exiting
20:07:05,729 DEBUG [master:itcast01:60000] master.HMaster: Stopping service threads
20:07:05,730 INFO&&[master:itcast01:60000] ipc.RpcServer: Stopping server on 60000
主题帖子积分
中级会员, 积分 208, 距离下一级还需 792 积分
中级会员, 积分 208, 距离下一级还需 792 积分
下面是日志信息。说什么建表的时候命名空间找不到了,
20:07:05,518 INFO&&[master:itcast ...
这个是这两个文件夹的权限方面的信息
drwxr-xr-x.&&3 root root& &4096 Jul 19 20:02 tmp
drwxr-xr-x.&&2 root root& &4096 Jul 19 20:01 zookeeper
拜托,这事我查了一天都没有弄出来,整整一天的时间啊
主题帖子积分
这个是这两个文件夹的权限方面的信息
drwxr-xr-x.&&3 root root& &4096 Jul 19 20:02 tmp把zookeeper里面的/hbase文件夹给删掉
欢迎加入about云群 、 ,云计算爱好者群,关注
经常参与各类话题的讨论,发帖内容较有主见
经常帮助其他会员答疑
活跃且尽责职守的版主
为论坛做出突出贡献的会员
站长推荐 /4
云计算hadoop视频大全(新增 yarn、flume|storm、hadoop一套视频
等待验证会员请验证邮箱
新手获取积分方法
技术类问答,解决学习openstack,hadoop生态系统中遇到的问题
Powered by

我要回帖

更多关于 hbase 热点问题 的文章

 

随机推荐