hbase怎么查看配置文件

hbase怎么查看配置文件,第1张

hbase有本地模式和分布式模式
hbase-sitexml配置
hbasetmpdir
本地文件系统tmp目录,一般配置成local模式的设置一下,但是最好还是需要设置一下,因为很多文件都会默认设置成它下面的
线上配置
<property>
<name>hbasetmpdir</name>
<value>/mnt/路径</value>
</property>
默认值
${javaiotmpdir}/hbase-${username}
写到系统的/tmp目录
hbaserootdir
HBase集群中所有RegionServer共享目录,用来持久化HBase的数据,一般设置的是hdfs的文件目录,如hdfs://master:9000/hbasedata
线上配置
<property>
<name>hbaserootdir</name>
<value>hdfs://master:9000/hbasedata</value>
</property>
默认值:
${hbasetmpdir}/hbase
hbaseclusterdistributed
集群的模式,分布式还是单机模式,如果设置成false的话,HBase进程和Zookeeper进程在同一个JVM进程。
线上配置为true
默认值:false
hbasezookeeperquorum
zookeeper集群的URL配置,多个host中间用逗号分割
线上配置
<property>
<name>hbasezookeeperquorum</name>
<value>master,slave,slave1</value>
</property>
默认值:localhost
hbasezookeeperpropertydataDir
ZooKeeper的zooconf中的配置。 快照的存储位置
线上配置:/home/hadoop/zookeeperData
默认值:${hbasetmpdir}/zookeeper
zookeepersessiontimeout
客户端与zk连接超时时间
线上配置:1200000(20min)
默认值:180000(3min)
hbasezookeeperpropertytickTime
Client端与zk发送心跳的时间间隔
线上配置:6000(6s)
默认值:6000
hbasesecurityauthentication
HBase集群安全认证机制,目前的版本只支持kerberos安全认证。
线上配置:kerberos
默认值:空
hbasesecurityauthorization
HBase是否开启安全授权机制
线上配置: true
默认值: false
hbaseregionserverkerberosprincipal
regionserver的kerberos认证的主体名称(由三部分组成:服务或用户名称、实例名称以及域名)
线上配置:hbase/_HOST@HADOOPxxxxxxCOM
默认:无
hbaseregionserverkeytabfile
regionserver keytab文件路径
线上配置:/home/hadoop/etc/conf/hbasekeytab
默认值:无
hbasemasterkerberosprincipal
master的kerberos认证的主体名称(由三部分组成:服务或用户名称、实例名称以及域名)
线上配置:hbase/_HOST@HADOOPxxxxxxCOM
默认:无
hbasemasterkeytabfile
master keytab文件路径
线上配置:/home/hadoop/etc/conf/hbasekeytab
默认值:无
hbaseregionserverhandlercount
regionserver处理IO请求的线程数
线上配置:50
默认配置:10
hbaseregionserverglobalmemstoreupperLimit
RegionServer进程block进行flush触发条件:该节点上所有region的memstore之和达到upperLimitheapsize
线上配置:045
默认配置:04
hbaseregionserverglobalmemstorelowerLimit
RegionServer进程触发flush的一个条件:该节点上所有region的memstore之和达到lowerLimitheapsize
线上配置:04
默认配置:035
hbaseclientwritebuffer
客户端写buffer,设置autoFlush为false时,当客户端写满buffer才flush
线上配置:8388608(8M)
默认配置:2097152(2M)
hbasehregionmaxfilesize
单个ColumnFamily的region大小,若按照ConstantSizeRegionSplitPolicy策略,超过设置的该值则自动split
线上配置:107374182400(100G)
默认配置:21474836480(20G)
hbasehregionmemstoreblockmultiplier
超过memstore大小的倍数达到该值则block所有写入请求,自我保护
线上配置:8(内存够大可以适当调大一些,出现这种情况需要客户端做调整)
默认配置:2
hbasehregionmemstoreflushsize
memstore大小,当达到该值则会flush到外存设备
线上配置:104857600(100M)
默认值: 134217728(128M)
hbasehregionmemstoremslabenabled
是否开启mslab方案,减少因内存碎片导致的Full GC,提高整体性能
线上配置:true
默认配置: true
hbaseregionservermaxlogs
regionserver的hlog数量
线上配置:128
默认配置:32
hbaseregionserverhlogblocksize
hlog大小上限,达到该值则block,进行roll掉
线上配置:536870912(512M)
默认配置:hdfs配置的block大小
hbasehstorecompactionmin
进入minor compact队列的storefiles最小个数
线上配置:10
默认配置:3
hbasehstorecompactionmax
单次minor compact最多的文件个数
线上配置:30
默认配置:10
hbasehstoreblockingStoreFiles
当某一个region的storefile个数达到该值则block写入,等待compact
线上配置:100(生产环境可以设置得很大)
默认配置: 7
hbasehstoreblockingWaitTime
block的等待时间
线上配置:90000(90s)
默认配置:90000(90s)
hbasehregionmajorcompaction
触发major compact的周期
线上配置:0(关掉major compact)
默认配置:86400000(1d)
hbaseregionserverthreadcompactionlarge
large compact线程池的线程个数
线上配置:5
默认配置:1
hbaseregionserverthreadcompactionsmall
small compact线程池的线程个数
线上配置:5
默认配置:1
hbaseregionserverthreadcompactionthrottle
compact(major和minor)请求进入large和small compact线程池的临界点
线上配置:10737418240(10G)
默认配置:2 thisminFilesToCompact thisregionmemstoreFlushSize
hbasehstorecompactionmaxsize
minor compact队列中storefile文件最大size
线上配置:21474836480(20G)
默认配置:LongMAX_VALUE
hbaserpctimeout
RPC请求timeout时间
线上配置:300000(5min)
默认配置:60000(10s)
hbaseregionserverregionsplitpolicy
split *** 作默认的策略
线上配置: orgapachehadoophbaseregionserverConstantSizeRegionSplitPolicy(采取老的策略,自己控制split)
默认配置: orgapachehadoophbaseregionserverIncreasingToUpperBoundRegionSplitPolicy(在region没有达到maxFileSize的前提下,如果fileSize达到regionCount regionCount flushSize则进行split *** 作)
hbaseregionserverregionSplitLimit
单台RegionServer上region数上限
线上配置:150
默认配置:2147483647
hbase-envsh配置
指定系统运行环境
export JAVA_HOME=/usr/lib/jvm/java-6-sun/ #JDK HOME
export HBASE_HOME=/home/hadoop/cdh4/hbase-0942-cdh421 # HBase 安装目录
export HBASE_LOG_DIR=/mnt/dfs/11/hbase/hbase-logs #日志输出路径
JVM参数调优
export HBASE_OPTS="-verbose:gc -XX:+PrintGCDetails -Xloggc:${HBASE_LOG_DIR}/hbase-gclog -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime \
-server -Xmx20480m -Xms20480m -Xmn10240m -Xss256k -XX:SurvivorRatio=4 -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=15 \
-XX:ParallelGCThreads=16 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseCMSCompactAtFullCollection \
-XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSMaxAbortablePrecleanTime=5000 \
"

RDD:A Resilient Distributed Dataset (RDD), the basic abstraction in Spark
rdd是一个分布式的数据集,数据分散在分布式集群的各台机器上
A DataFrame is equivalent to a relational table in Spark SQL, and can be created using various functions in SQLContext
dataframe更像是一张关系型数据表,是一种spark独有的数据格式吧,这种格式的数据可以使用sqlcontext里面的函数

将数据导入HBase中有如下几种方式:
使用HBase的API中的Put方法
使用HBase 的bulk load 工具
使用定制的MapReduce Job方式
使用HBase的API中的Put是最直接的方法,用法也很容易学习。但针对大部分情况,它并非都是最高效的方式。当需要将海量数据在规定时间内载入HBase中时,效率问题体现得尤为明显。待处理的数据量一般都是巨大的,这也许是为何我们选择了HBase而不是其他数据库的原因。在项目开始之前,你就该思考如何将所有能够很好的将数据转移进HBase,否则之后可能面临严重的性能问题。
HBase有一个名为 bulk load的功能支持将海量数据高效地装载入HBase中。Bulk load是通过一个MapReduce Job来实现的,通过Job直接生成一个HBase的内部HFile格式文件来形成一个特殊的HBase数据表,然后直接将数据文件加载到运行的集群中。使用bulk load功能最简单的方式就是使用importtsv 工具。importtsv 是从TSV文件直接加载内容至HBase的一个内置工具。它通过运行一个MapReduce Job,将数据从TSV文件中直接写入HBase的表或者写入一个HBase的自有格式数据文件。
尽管importtsv 工具在需要将文本数据导入HBase的时候十分有用,但是有一些情况,比如导入其他格式的数据,你会希望使用编程来生成数据,而MapReduce是处理海量数据最有效的方式。这可能也是HBase中加载海量数据唯一最可行的方法了。当然我们可以使用MapReduce向HBase导入数据,但海量的数据集会使得MapReduce Job也变得很繁重。若处理不当,则可能使得MapReduce的job运行时的吞吐量很小。
在HBase中数据合并是一项频繁执行写 *** 作任务,除非我们能够生成HBase的内部数据文件,并且直接加载。这样尽管HBase的写入速度一直很快,但是若合并过程没有合适的配置,也有可能造成写 *** 作时常被阻塞。写 *** 作很重的任务可能引起的另一个问题就是将数据写入了相同的族群服务器(region server),这种情况常出现在将海量数据导入到一个新建的HBase中。一旦数据集中在相同的服务器,整个集群就变得不平衡,并且写速度会显著的降低。我们将会在本文中致力于解决这些问题。我们将从一个简单的任务开始,使用API中的Put方法将MySQL中的数据导入HBase。接着我们会描述如何使用 importtsv 和 bulk load将TSV数据文件导入HBase。我们也会有一个MapReduce样例展示如何使用其他数据文件格式来导入数据。上述方式都包括将数据直接写入HBase中,以及在HDFS中直接写入HFile类型文件。本文中最后一节解释在向HBase导入数据之前如何构建好集群。本文代码均是以Java编写,我们假设您具有基本Java知识,所以我们将略过如何编译与打包文中的Java示例代码,但我们会在示例源码中进行注释。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13377480.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存