info

HBase Java API使用(一)

白昼怎懂夜的黑 提交于 2020-01-20 03:19:02
前言 1. 创建表:(由master完成) 首先需要获取master地址(master启动时会将地址告诉zookeeper)因而客户端首先会访问zookeeper获取master的地址 client和master通信,然后有master来创建表( 包括表的列簇,是否 cache ,设置存储的最大版本数,是否压缩等 )。 2. 读写删除数据 client与regionserver通信,读写、删除数据 写入和删除数据时讲数据打上不同的标志append,真正的数据删除操作在compact时发生 3. 版本信息    API基础知识 CRUD操作:   put:插入单行或者多行   get: 读取数据或者使用scan()   delete:删除数据   batch(): 批量处理操作 scan:   类似于数据库中的游标cursor HTable常用方法:   void close(): 用完一个HTable实例后需要调用一次close(),(这个方法会隐式的调用flushCache方法)   byte[] getTableName() 获取表名   Configuration getConfiguration(): 获取HTable实例中的配置   HTableDescriptor getTableDescriptor(): 获取表的结构   static boolean

打印时间工具类

佐手、 提交于 2020-01-20 01:53:25
自己写的工具类,方便调试方法运行时间,代码如下: package com.example.log; /** * User: Jimmy * Date: 2020/1/19 * Desc: */ import com.google.common.collect.Maps; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; public class TimeUtils { private static Map<String, Long> timeMap = Maps.newHashMap(); private static DateTimeFormatter dtf =

设计模式

混江龙づ霸主 提交于 2020-01-20 01:00:02
设计模式是什么? Christopher Alexander:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样你就能一次又一次地使用该方案而不必做重复劳动。” 设计模式是经过总结、优化的,对我们经常会碰到的一些编程问题的可重用解决方案。一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码。反之,设计模式更为高级,它是一种必须在特定情形下实现的一种方法模板。设计模式不会绑定具体的编程语言。一个好的设计模式应该能够用大部分编程语言实现(如果做不到全部的话,具体取决于语言特性)。最为重要的是,设计模式也是一把双刃剑,如果设计模式被用在不恰当的情形下将会造成灾难,进而带来无穷的麻烦。然而如果设计模式在正确的时间被用在正确地地方,它将是你的救星。 起初,你会认为“模式”就是为了解决一类特定问题而特别想出来的明智之举。说的没错,看起来的确是通过很多人一起工作,从不同的角度看待问题进而形成的一个最通用、最灵活的解决方案。也许这些问题你曾经见过或是曾经解决过,但是你的解决方案很可能没有模式这么完备。 虽然被称为“设计模式”,但是它们同“设计“领域并非紧密联系。设计模式同传统意义上的分析、设计与实现不同,事实上设计模式将一个完整的理念根植于程序中,所以它可能出现在分析阶段或是更高层的设计阶段。很有趣的是因为设计模式的具体体现是程序代码

部署SonarQube代码检测服务以及jenkins实现代码自动测试、自动部署

狂风中的少年 提交于 2020-01-20 00:06:35
1.SonarQube部署前的内核参数等配置以及java环境配置 1)修改内核参数配置,使满足环境要求 [root@sonarqube ~]# vim /etc/sysctl.conf vm.max_map_count=262144 fs.file-max=65536 [root@sonarqube ~]# sysctl -p #生效修改的内核参数 …… vm.max_map_count = 262144 fs.file-max = 65536 2)修改本机安全策略参数限制 [root@sonarqube ~]# vim /etc/security/limits.conf …… sonarqube - nofile 65536 sonarqube - nproc 2048 3)配置java环境(至少jdk-8或openjdk-8版本) [root@sonarqube ~]# ls /usr/local/src/ jdk-8u211-linux-x64.tar.gz [root@sonarqube src]# tar xvf jdk-8u211-linux-x64.tar.gz [root@sonarqube src]#ln -sv jdk1.8.0_211 jdk [root@sonarqube src]#ln -sv jdk [root@sonarqube src]# ln

hbase-0.92.1集群部署

…衆ロ難τιáo~ 提交于 2020-01-19 20:37:45
环境 主机名  IP地址 角色 安装目录 sht-sgmhadoopnn-01 172.16.101.55 NameNode、SecondaryNameNode、 JobTracker、HMaster jdk: /opt/jdk1.6.0_45 zookeeper:/opt/zookeeper-3.3.5 软连接 /opt/zookeeper hbase: /opt/hbase-0.92.1 软连接 /opt/hbase hadoop: /opt/hadoop-1.0.3 软连接 /opt/hadoop sht-sgmhadoopdn-01 172.16.101.58 DataNode、TaskTracker、backup-masters、 HRegionServer、zookeeper sht-sgmhadoopdn-02 172.16.101.59 DataNode、TaskTracker、 HRegionServer、zookeeper sht-sgmhadoopdn-03 172.16.101.60 DataNode、TaskTracker、 HRegionServer、zookeeper 一. 系统环境配置 1. hosts文件互相解析 各节点均需设置 172.16.101.55 sht-sgmhadoopnn-01 172.16.101.58 sht

springboot代码摘记:highlight_springmvc4 logback

纵饮孤独 提交于 2020-01-19 19:17:02
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="1 seconds"> <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> <resetJUL>true</resetJUL> </contextListener> <jmxConfigurator/> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>logbak: %d{HH:mm:ss.SSS} %logger{36} - %msg%n</pattern> </encoder> </appender> <logger name="org.springframework.web" level="DEBUG"/> <!-- 1 --> <root level="info"> <appender-ref ref="console"/> </root> </configuration> 来源: CSDN 作者: qq1225095213 链接: https://blog.csdn.net/qq

IDEA开发java版本spark程序

こ雲淡風輕ζ 提交于 2020-01-19 18:51:40
如何去创建项目这里就不对讲了,可以参考 : https://www.cnblogs.com/braveym/p/12214367.html 先在pom.xml文件里面添加spark依赖包 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.3.0</version> </dependency> 新建一个java类 编写代码 package com.dtiantai; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.FlatMapFunction; import org.apache.spark.api.java.function.Function2; import org.apache.spark.api.java.function.PairFunction

Storm-源码分析-Topology Submit-Nimbus-mk-assignments

谁说胖子不能爱 提交于 2020-01-19 15:32:08
什么是"mk-assignment”, 主要就是产生executor->node+port关系, 将executor分配到哪个node的哪个slot上(port代表slot, 一个slot可以run一个worker进程, 一个worker包含多个executor线程) 先搞清什么是executor, 参考 Storm-源码分析- Component ,Executor ,Task之间关系 ;; get existing assignment (just the executor->node+port map) -> default to {} ;; filter out ones which have a executor timeout ;; figure out available slots on cluster. add to that the used valid slots to get total slots. figure out how many executors should be in each slot (e.g., 4, 4, 4, 5) ;; only keep existing slots that satisfy one of those slots. for rest, reassign them across remaining slots ;

用户空间与内核空间数据交换的方式(2)------procfs

强颜欢笑 提交于 2020-01-19 13:43:05
procfs是比较老的一种用户态与内核态的数据交换方式,内核的很多数据都是通过这种方式出口给用户的,内核的很多参数也是通过这种方式来让用户方便设置的。除了sysctl出口到/proc下的参数,procfs提供的大部分内核参数是只读的。实际上,很多应用严重地依赖于procfs,因此它几乎是必不可少的组件。本节将讲解如何使用procfs。 Procfs提供了如下API: struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode, struct proc_dir_entry *parent) 该函数用于创建一个正常的proc条目,参数name给出要建立的proc条目的名称,参数mode给出了建立的该proc条目的访问权限,参数 parent指定建立的proc条目所在的目录。如果要在/proc下建立proc条目,parent应当为NULL。否则它应当为proc_mkdir 返回的struct proc_dir_entry结构的指针。 extern void remove_proc_entry(const char *name, struct proc_dir_entry *parent) 该函数用于删除上面函数创建的proc条目,参数name给出要删除的proc条目的名称

CMake 常用方法

血红的双手。 提交于 2020-01-19 08:07:02
CMake 允许开发者编写平台无关的 CMakeLists.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Linux 的Makefile 或 Windows 的 Visual Studio 工程。从而做到 Write once, run everywhere 。使用 CMake 的开源项目有 VTK、ITK、KDE、OpenCV等。 以下记录我在 Linux 下使用 CMake 的一些实践。 安装 官方网站: https://cmake.org/ 下载源码包,编译安装如下, $ ./bootstrap $ make $ sudo make install 为了使用方便,再安装一下 ccmake,这是一个更友好的界面化 cmake 配置工具, $ sudo apt-get install cmake3-curses-gui 使用方法 在 linux 下使用 CMake 生成 Makefile 并编译的流程如下: - 编写 CMake 配置文件 CMakeLists.txt 。 - 执行命令 cmake PATH 或者 ccmake PATH 生成 Makefile(其中, PATH 是顶层 CMakeLists.txt 所在的目录)。 - 使用 make 命令进行编译。 1) 编译单个文件 main.c