全栈工程师开发手册 (作者:栾鹏)
架构系列文章


Linux安装Scala步骤

一、下载Scala安装包

从scala官方网站地址:http://www.scala-lang.org/download/下载scala二进制包,以2.11.8版本为例
二、安装

1、将下载的二进制包移动到/lp/hadoop目录,解压缩文件包

tar zxvf scala-2.11.8.tgz

mv scala-2.11.8 scala //重命名目录

2、设置环境变量

vi /etc/profile

打开后,在文档最下方添加如下配置:

export PATH=/lp/hadoop/scala/bin:$PATH

:wq!保存退出,执行如下命令,使更改生效

source /etc/profile

3、检查scala是否安装成功

在终端上执行scala命令

scala

如果看到scala版本及相关信息,即安装成功!

Welcome to Scala 2.11.8 (Java HotSpot™ 64-Bit Server VM, Java 1.8.0_111).
Type in expressions for evaluation. Or try :help.

或者执行如下scala命令

scala -version

如果看到scala版本信息,即安装成功!

Scala code runner version 2.11.8 – Copyright 2002-2016, LAMP/EPFL

centos7系统下安装MySQL数据库

检查是否安装mysql:

rpm -qa |grep mysql

1、安装mysql命令:yum install mysql-server -y  (-y参数作用为所有需要输入yes的地方默认yes)

2、打开mysql服务:service mysqld start

3、centos 7 上配置mysql 开机启动(也可以不设置,开机手动启动):

/usr/lib/systemd/system/mysqld.service

systemctl start mysqld

mysql 5.6+首次登录设置密码

修改/etc/my.cnf文件,在mysqld配置项下面增加skip-grant-tables
重启mysql服务

service mysqld restart

无密码登陆mysql

# mysql
mysql> use mysql;
mysql> update user set authentication_string=password("123456") where user="root";
mysql> flush privileges;
mysql> quit;

改好之后,再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql就可以了。

4、进入mysql命令行:mysql -u root -p   (root是账户,不是必须root) 输入新密码,回车即完成访问mysql;

执行到这里可以输入几个mysql命令来进行测试一下:

显示数据库: show databases;

使用数据库: use mysql;

显示表: show tables;

HBase参数配置及说明

hbase.tmp.dir:本地文件系统的临时目录,默认是java.io.tmpdir/hbase−java.io.tmpdir/hbase−{user.name};

hbase.rootdir:hbase持久化的目录,被所有regionserver共享,默认${hbase.tmp.dir}/hbase,一般设置为hdfs://namenode.example.org:9000/hbase类似,带全限定名;

hbase.cluster.distributed:hbase集群模式运作与否的标志,默认是false,开启需要设置为true,false时启动hbase会在一个jvm中运行hbase和zk;

hbase.zookeeper.quorum:重要的也是必须设置的,启动zk的服务器列表,逗号分隔,cluster模式下必须设置,默认是localhost,hbase客户端也需要设置这个值去访问zk;

hbase.local.dir:本地文件系统被用在本地存储的目录,默认${hbase.tmp.dir}/local/;

hbase.master.port:hbase master绑定的端口,默认是60000;

hbase.master.info.port:hbase master web 界面的端口,默认是60010,设置为-1可以禁用ui;

hbase.master.info.bindAddress:master web界面的绑定地址,默认是0.0.0.0;

hbase.master.logcleaner.plugins:清理日志的插件列表,逗号分隔,被LogService调用的LogCleanerDelegate,可以自定义,顺序执行,清理WAL和HLog;默认org.apache.hadoop.hbase.master.cleaner.TimeToLiveLogCleaner

hbase.master.logcleaner.ttl:HLog在.oldlogdir目录中生存的最长时间,过期则被Master起线程回收,默认是600000;

hbase.master.hfilecleaner.plugins:HFile的清理插件列表,逗号分隔,被HFileService调用,可以自定义,默认org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner

hbase.master.catalog.timeout:Catalog Janitor从master到META的超时时间,我们知道这个Janitor是定时的去META扫描表目录,来决定回收无用的regions,默认是600000;

fail.fast.expired.active.master:如果master过期,那么不需要从zk恢复,直接终止,默认是false;

hbase.master.dns.interface:master的dns接口,向该接口提供ip,默认是default;

hbase.master.dns.nameserver:master使用的dns主机名或者ip,默认是default;

hbase.regionserver.port:regionserver绑定的端口,默认是60020;

hbase.regionserver.info.port:regionserver的web界面端口,-1取消界面,默认是60030;

hbase.regionserver.info.bindAddress:regionserver的web绑定,默认是0.0.0.0;

hbase.regionserver.info.port.auto:master或者regionserver是否自动搜索绑定的端口,默认是false;

hbase.regionserver.handler.count:regionserver上rpc listener的个数,http://kenwublog.com/hbase-performance-tuning把这个配置称为io线程数,其实雷同,就是说在regionserver上一个处理rpc的handler,默认是30;

hbase.regionserver.msginterval:regionserver向master发消息的间隔,默认3000毫秒;

hbase.regionserver.optionallogflushinterval:如果没有足够的entry触发同步,那么过了这个间隔后HLog将被同步到HDFS,默认是1000毫秒;

hbase.regionserver.regionSplitLimit:regionsplit的最大限额,默认是MAX_INT=2147483647,设置这个限制后,在到达限制时region split就不会再进行;

hbase.regionserver.logroll.period:不管有多少版本,直接roll掉commit log的周期,也就是说一个固定的时间周期,到期就roll,默认是3600000毫秒;

hbase.regionserver.logroll.errors.tolerated:可接受的WAL关闭错误个数,到达后将触发服务器终止;设置为0那么在WAL writer做log rolling失败时就停止region server,默认是2;

hbase.regionserver.hlog.reader.impl:HLog 文件reader的实现类,默认是org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader;

hbase.regionserver.hlog.writer.impl:HLog 文件writer的实现类,默认是org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter;

hbase.regionserver.global.memstore.upperLimit:memstore在regionserver内存中的上限,届时新的update被阻塞并且flush被强制写,默认是0.4就是堆内存的40%;阻塞状态持续到regionserver的所有memstore的容量到达hbase.regionserver.global.memstore.lowerLimit;

hbase.regionserver.global.memstore.lowerLimit:memstore在regionserver内存中的最大上限,到达时flush就被强制写,默认是0.38等价于38%的内存容量;

hbase.regionserver.optionalcacheflushinterval:一个edit版本在内存中的cache时长,默认3600000毫秒,设置为0的话则禁止自动flush;

hbase.regionserver.catalog.timeout:regionserver的Catalog Janitor访问META的超时时间,默认是600000;

hbase.regionserver.dns.interface:同master类似~~不讲

hbase.regionserver.dns.nameserver:同master类似

zookeeper.session.timeout:这是个值得说道一下的配置,首先ZK客户端要用,Hbase使用zk的客户端联系总体,同时也被用来启动一个zk server,作为zk的maxSessionTimeout,总的来说就是regionserver与zk的关键参数,如果连接超时,master会重新的balance,regionserver也会被从集群名单中清除,默认是90000;一个问题是如果zk 由hbase自己维护,那么该参数作为regionserver连接是一个值,如果zk在另外的集群,那么zk自己的maxSessionTimeout参数将优先于Hbase的该参数,届时可能会发生超时时间不同的问题;

zookeeper.znode.parent:znode存放root region的地址,默认是root-region-server;

zookeeper.znode.acl.parent:root znode的acl,默认acl;

hbase.zookeeper.dns.interface:zk的dns接口,默认default;

hbase.zookeeper.dns.nameserver:zk的dns服务地址,默认default;

hbase.zookeeper.peerport:zk的peer之间的通讯端口,默认是2888;

hbase.zookeeper.leaderport:zk选leader的通讯端口,默认是3888;

hbase.zookeeper.useMulti:zk支持多重update,要求zk在3.4版本以上,默认是false;

hbase.config.read.zookeeper.config:让hbaseconfig去读zk的config,默认false,也不支持开启,这个功能很搞笑~~个人观点;

hbase.zookeeper.property.initLimit:zk的配置,同步的属性个数限制,默认10个~~没用;

hbase.zookeeper.property.syncLimit:zk的配置,同步时的每次请求的条数,默认5个;

hbase.zookeeper.property.dataDir:zk的配置,snapshot存放的目录,默认是${hbase.tmp.dir}/zookeeper;

hbase.zookeeper.property.clientPort:zk的配置,client连zk的端口,默认2181;

hbase.zookeeper.property.maxClientCnxns:zk的配置,允许接入zk的最大并发连接数的限制,按ip分配,默认300;

hbase.client.write.buffer:htable客户端写缓冲区大小,默认是2097152BYTE,这个缓冲区就是为了写数据的临时存放,设置大了,浪费客户端和服务端的存储,设置小了,如果写的数据多,太多的RPC又带来网络开销,官方给的一个服务端存储耗费评估计算是:hbase.client.write.buffer*hbase.regionserver.handler.count,服务端的rs的处理handler个数也很关键;

hbase.client.pause:pause时长,在hbase发生get或其他操作fail掉的时候进行pause的时间长度,默认是100;

hbase.client.retries.number:发生操作fail时的重试次数,结合上一个指标一起来控制总的重试时间,默认是35;

hbase.client.max.total.tasks:一个HTable实例可以提交给集群的最大并发任务数,默认是100;

hbase.client.max.perserver.tasks:一个HTable实例给一台regionserver提交的最大并发任务数,默认是5;

hbase.client.max.perregion.tasks:客户端连接一台region的最大连接数,换句话说,当你有这么多个连接在region时,新的操作不被发送直到有操作完成,默认是1;

hbase.client.scanner.caching:做scanner的next操作时(如果再本地client没找到)缓存的数据行数,这个值的设置也需要权衡,缓存的多则快,但吃内存,缓存的少则需要多的拉数据, 需要注意的事项是如果两次调用的时间差大于scanner的timeout,则不要设置该值,默认是100;

hbase.client.keyvalue.maxsize:一个KeyValue实例的最大大小,这是存储文件中一个entry的容量上限,合理的设置这个值可以控制regionserver的split,split不会拆keyvalue,所以把keyvalue的大小设置为regionserver大小的一个比例分数(可除)是个不错的选择,默认是10485760;

hbase.client.scanner.timeout.period:结合刚才的caching做的一个,scanner的超时时间,默认是60000毫秒;

hbase.client.localityCheck.threadPoolSize:做localityCheck的线程池大小,默认是2;

hbase.bulkload.retries.number:做bulk load的最大重试次数,默认是0,即代表不断重试;

hbase.balancer.period:Master运行balancer的周期,默认是300000毫秒;

hbase.regions.slop:如果有regionserver的region数目超过average+(average*slop),则rebalance,默认是0.2;

hbase.server.thread.wakefrequency:服务线程的sleep时间,默认10000毫秒,比如log roller;

hbase.server.versionfile.writeattempts:退出前写 version file的重试次数,默认3,每次尝试的间隔由上一个参数控制;

hbase.hregion.memstore.flush.size:Memstore写磁盘的flush阈值,超过这个大小就flush,默认是134217728;

hbase.hregion.preclose.flush.size:如果一个region的memstore的大小等于或超过这个参数的量,在关闭region时(放置关闭flag),要提前flush,然后region关闭下线,默认大小是5242880;

hbase.hregion.memstore.block.multiplier:如果memstore的大小满足hbase.hregion.block.memstore * hbase.hregion.flush.size个byte,那么阻塞update,这个配置可以避免不必要的长时间split或者compact,甚至是OOME,默认是2;

hbase.hregion.memstore.mslab.enabled:开启MemStore-Local Allocation Buffer,这个配置可以避免在高写入的情况下的堆内存碎片,可以降低在大堆情况下的stop-the-world GC频率,默认是true;

hbase.hregion.max.filesize:HStoreFile的最大尺寸,换句话说,当一个region里的列族的任意一个HStoreFile超过这个大小,那么region进行split,默认是10737418240;

hbase.hregion.majorcompaction:一个region的所有HStoreFile进行major compact的时间周期,默认是604800000 毫秒(7天);

hbase.hregion.majorcompaction.jitter:major compaction的发生抖动范围,这么理解比较容易,就是说上一个参数不是一个严格周期,会有个抖动,这个参数就是这个抖动的比例,默认是0.5;

hbase.hstore.compactionThreshold:一个HStore存储HStoreFile的个数阈值,超过这个阈值则所有的HStoreFile会被写到一个新的HStore,需要平衡取舍,默认是3;

hbase.hstore.blockingStoreFiles:一个HStore存储HStoreFile阻塞update的阈值,超过这个阈值,HStore就进行compaction,直到做完才允许update,默认是10;

hbase.hstore.blockingWaitTime:一个更强力的配置,配合上一个参数,当HStore阻塞update时,超过这个时间限制,阻塞取消,就算compaction没有完成,update也不会再被阻塞,默认是90000毫秒;

hbase.hstore.compaction.max:每个minor compaction的HStoreFile个数上限,默认是10;

hbase.hstore.compaction.kv.max:在flushing或者compacting时允许的最大keyvalue个数,如果有大的KeyValue或者OOME的话则配置一个小的值,如果行数多且小则配置大值,默认是10;

hbase.storescanner.parallel.seek.threads:如果并行查找开启的线程池大小,默认是10;

hfile.block.cache.size:一个配置比例,允许最大堆的对应比例的内存作为HFile和HStoreFile的block cache,默认是0.4,即40%,设置为0则disable这个比例,不推荐这么做;

hfile.block.index.cacheonwrite:在index写入的时候允许put无根(non-root)的多级索引块到block cache里,默认是false;

hfile.index.block.max.size:在多级索引的树形结构里,如果任何一层的block index达到这个配置大小,则block写出,同时替换上新的block,默认是131072;

hfile.format.version:新文件的HFile 格式版本,设置为1来测试向后兼容,默认是2;

hfile.block.bloom.cacheonwrite:对于组合布隆过滤器的内联block开启cache-on-write,默认是false;

io.storefile.bloom.block.size:一个联合布隆过滤器的单一块(chunk)的大小,这个值是一个逼近值,默认是131072;

hbase.rs.cacheblocksonwrite:当一个HFile block完成时是否写入block cache,默认是false;

hbase.rpc.server.engine:hbase 做rpc server的调度管理类,实现自org.apache.hadoop.ipc.RpcServerEngine,默认是org.apache.hadoop.hbase.ipc.ProtobufRpcServerEngine;

hbase.rpc.timeout:Hbase client发起远程调用时的超时时限,使用ping来确认连接,但是最终会抛出一个TimeoutException,默认值是60000;

hbase.rpc.shortoperation.timeout:另一个版本的hbase.rpc.timeout,控制短操作的超时时限,比如region server 汇报master的操作的超时时限可以设置小,这样有利于master的failover,默认是10000;

hbase.ipc.client.tcpnodelay:默认是true,具体就是在tcp socket连接时设置 no delay;

hbase.master.keytab.file:kerberos keytab 文件的全路径名,用来为HMaster做log,无默认值;

hbase.master.kerberos.principal:运行HMaster进程时需要kerberos的principal name,这个配置就是这个name的值,形如:hbase/_HOST@EXAMPLE.COM;

hbase.regionserver.keytab.file:kerberos keytab 文件的全路径名,用来为HRegionServer做log,无默认值;

hbase.regionserver.kerberos.principal:运行HRegionServer进程时需要kerberos的principal name,这个配置就是这个name的值,形如:hbase/_HOST@EXAMPLE.COM;

hadoop.policy.file:RPC服务器做权限认证时需要的安全策略配置文件,在Hbase security开启后使用,默认是habse-policy.xml;

hbase.superuser:Hbase security 开启后的超级用户配置,一系列由逗号隔开的user或者group;

hbase.auth.key.update.interval:Hbase security开启后服务端更新认证key的间隔时间:默认是86400000毫秒;

hbase.auth.token.max.lifetime:Hbase security开启后,认证token下发后的生存周期,默认是604800000毫秒;

hbase.ipc.client.fallback-to-simple-auth-allowed:client使用安全连接去链接一台非安全服务器时,服务器提示client切换到SASL SIMPLE认证模式(非安全),如果设置为true,则client同意切换到非安全连接,如果false,则退出连接;

hbase.coprocessor.region.classes:逗号分隔的Coprocessores列表,会被加载到默认所有表上。在自己实现了一个Coprocessor后,将其添加到Hbase的classpath并加入全限定名。也可以延迟加载,由HTableDescriptor指定;

hbase.rest.port:Hbase REST服务器的端口,默认是8080;

hbase.rest.readonly:定义REST服务器启动的模式,有两种方式,false:所有http方法都将被通过-GET/PUT/POST/DELETE,true:只有get方法ok。默认值是false;

hbase.rest.threads.max:REST服务器线程池的最大线程数,池满的话新请求会自动排队,限制这个配置可以控制服务器的内存量,预防OOM,默认是100;

hbase.rest.threads.min:同上类似,最小线程数,为了确保服务器的服务状态,默认是2;

hbase.rest.support.proxyuser:使REST服务器支持proxy-user 模式,默认是false;

hbase.defaults.for.version.skip:是否跳过hbase.defaults.for.version的检查,默认是false;

hbase.coprocessor.master.classes:由HMaster进程加载的coprocessors,逗号分隔,全部实现org.apache.hadoop.hbase.coprocessor.MasterObserver,同coprocessor类似,加入classpath及全限定名;

hbase.coprocessor.abortonerror:如果coprocessor加载失败或者初始化失败或者抛出Throwable对象,则主机退出。设置为false会让系统继续运行,但是coprocessor的状态会不一致,所以一般debug时才会设置为false,默认是true;

hbase.online.schema.update.enable:设置true来允许在线schema变更,默认是true;

hbase.table.lock.enable:设置为true来允许在schema变更时zk锁表,锁表可以组织并发的schema变更导致的表状态不一致,默认是true;

hbase.thrift.minWorkerThreads:线程池的core size,在达到这里配置的量级后,新线程才会再新的连接创立时创建,默认是16;

hbase.thrift.maxWorkerThreads:顾名思义,最大线程数,达到这个数字后,服务器开始drop连接,默认是1000;

hbase.thrift.maxQueuedRequests:Thrift连接队列的最大数,如果线程池满,会先在这个队列中缓存请求,缓存上限就是该配置,默认是1000;

hbase.thrift.htablepool.size.max:Thrift服务器上table pool的最大上限,默认是1000;

hbase.offheapcache.percentage:JVM参数-XX:MaxDirectMemorySize的百分比值,默认是0,即不开启堆外分配;

hbase.data.umask.enable:开启后,文件在regionserver写入时会 有权限相关设定,默认是false不开启;

hbase.data.umask:开启上面一项配置后,文件的权限umask,默认是000;

hbase.metrics.showTableName:是否为每个指标显示表名前缀,默认是true;

hbase.metrics.exposeOperationTimes:是否进行关于操作在使用时间维度的指标报告,比如GET PUT DELETE INCREMENT等,默认是true;

hbase.snapshot.enabled:是否允许snapshot被使用、存储和克隆,默认是true;

hbase.snapshot.restore.take.failsafe.snapshot:在restore过程中,如果失败则启用snapshot替换,成功则删除掉snapshot,默认开启true;

hbase.snapshot.restore.failsafe.name:刚才所说过程中snapshot的名字,默认是hbase-failsafe-{snapshot.name}-{restore.timestamp};

hbase.server.compactchecker.interval.multiplier:检查是否需要compact的时间间隔,一般情况是在比如memstore flush后或者其他事件触发compact的,但是有时也需要不同的compact策略,所以需要周期性的检查具体间隔=hbase.server.compactchecker.interval.multiplier * hbase.server.thread.wakefrequency,默认1000;

hbase.lease.recovery.timeout:在dfs 租约超时时限,超时则放弃,默认是900000;

hbase.lease.recovery.dfs.timeout:dfs恢复租约调用的超时时限,默认是64000;

hadoop+hive+hbase+spark补充内容相关推荐

  1. hadoop+zookeeper+Hbase+spark安装部署总结

    hadoop+zookeeper+Hbase+spark安装部署总结 主要参考:https://blog.csdn.net/sunxiaoju/article/details/85918135 计算机 ...

  2. oracle+olh+hive,hadoop+hive+hbase的简单安装 | YallonKing

    hadoop+hive+hbase的简单安装 hadoop.hive.hbase下载地址:http://mirror.bit.edu.cn/apache/ (一)hadoop安装: 解压hadoop- ...

  3. hadoop hive hbase 入门学习 (二)

    hadoop 自学系列                hadoop hive hbase 入门学习 (一) hadoop安装.hdfs学习及mapreduce学习 hadoop 软件下载 (hadoo ...

  4. 大数据相关书籍(包含Java, Scala, R, Linux, Spark, Hadoop, Hive, Hbase, Sqoop, Flume, Strom)

    下面书单,有一部分英文版原版,当然价格也相对高一点,英文版部分需要在在亚马逊搜索 ,中文版大部分在京东有售! <Hadoop核心技术> 翟周伟 著 <Storm分布式实时计算模式 & ...

  5. hadoop/hive/hbase 简单区别及应用场景

    1.hadoop:它是一个分布式计算+分布式文件系统,前者其实就是MapReduce,后者是HDFS.后者可以独立运行,前者可以选择性使用,也可以不使用 2.hive:通俗的说是一个数据仓库,仓库中的 ...

  6. hadoop hive hbase 集群搭建

    摘要:去年开发BI系统,其中ETL用到了Hadoop和Hive,我用三台Dell服务器,搭建了一个Hadoop集群,用于开发测试. 在接下来的几篇中,我会介绍些BI架构设计的内容,以及在开发中遇到的困 ...

  7. hadoop+hive+hbase的大数据行业应用-交通轨迹分析

    案例描述 项目概要 项目背景: 随着互联网的深入发展,打车再也不是乘客呆呆的站在路口等待车辆的经过.随着各种打车软件的发展,打车可以足不出户,就可以约到自己想要搭乘的汽车.本实验主要是来探究生活中存在 ...

  8. Hadoop Hive与Hbase关系 整合

    用hbase做数据库,但因为hbase没有类sql查询方式,所以操作和计算数据很不方便,于是整合hive,让hive支撑在hbase数据库层面 的 hql查询.hive也即 做数据仓库 1. 基于Ha ...

  9. [喵咪大数据]Hive+Hbase关联

    在之前的章节中我们已经一同学习的Hive和HBase相关的知识,但是Hive和HBase都存在各自的问题,Hive实时性不强单条写入数据慢,HBase查询能力差不具备复杂查询的能力,但是Hive和HB ...

最新文章

  1. 系统架构师-基础到企业应用架构-系统设计规范与原则[上篇]
  2. python limit_Python MySQL Limit
  3. VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏[转]
  4. 牛客假日团队赛8:K.Cow Contest(最短路(floyd)变形)
  5. [设计模式]策略模式
  6. 十二、HTML5新增标签特性详解(audio、video、input)
  7. Vuejs 事件监听
  8. 内存泄露valgrind
  9. linux代码实现进程监控,linux进程监控shell脚本代码
  10. RHCS集群 切换时defunct僵尸进程解决方案
  11. 怎么把kux格式转换成mp4?优酷kux格式转换成mp4的技巧
  12. 计算机启动方式如何选择USB启动,如何设置电脑从usb启动详细方法
  13. animation 详细讲解
  14. 华硕fl5600l笔记本拆机,在光驱位加装固态硬盘
  15. Word怎么快速插入空白页
  16. 数据分析实战项目--链家租房数据可视化分析
  17. 软件测试的完整案例分析,软件测试案例分析完整版
  18. STM32F429第二十五篇之MCU屏实验详解
  19. 小微企业调查数据库(2015)
  20. 平心静气,从零开始,急于求成最不可取。

热门文章

  1. 空间说说秒赞java_人生靠反省,Java靠泛型
  2. asp怎么循环增加字段和字段对应的值_索引该怎么创建?
  3. 密码加密模块 bcrypt (详细,好理解,示例源码)
  4. DOM介绍~超好理解的哦
  5. 用户名、密码都有值激活提交按钮
  6. 【java笔记】scanner类和匿名对象的使用
  7. akamai:与看视频广告等待相比,用户更不能忍受缓冲等待
  8. django mac 安装mysql_mac安装MySQL-Python报错
  9. python无法使用物理网卡_Python 实现监控所有物理网卡状态
  10. tsv文件导oracle窜列,TSV(tsv文档怎么转换excel)