首页 文章 精选 留言 我的

精选列表

搜索[垂直整合],共10009篇文章
优秀的个人博客,低调大师

Hive和HBase整合

Hive和Hbase有各自不同的特征:hive是高延迟、结构化和面向分析的,hbase是低延迟、非结构化和面向编程的。Hive数据仓库在hadoop上是高延迟的。Hive集成Hbase就是为了使用hbase的一些特性。 Hive继承HBase可以有效利用HBase数据库的存储特性,如行更新和列索引等。在集成的过程中注意维持HBase jar包的一致性。Hive集成HBase需要在Hive表和HBase表之间建立映射关系,也就是Hive表的列和列类型与HBase表的列族及列限定词建立关联。每一个在Hive表中的域都存在与HBase中,而在Hive表中不需要包含所有HBase中的列。HBase中的rowkey对应到Hive中为选择一个域使用 :key 来对应,列族(cf:)映射到Hive中的其他所有域,列为(cf:cq)。 下面来简单实战下: 创建HBase表 create'user1',{NAME=>'info',VERSIONS=>1} 向user表中插入一些数据 put'user1','1','info:name','zhangsan' put'user1','1','info:age','25' put'user1','2','info:name','lisi' put'user1','2','info:age','22' put'user1','3','info:name','wangswu' put'user1','3','info:age','21' 使用scan命令来查看下user表中的数据 scan'user'; 结果如下 ROW COLUMN+CELL 1 column=info:age, timestamp=1476773051604, value=25 1 column=info:name, timestamp=1476773046344, value=zhangsan 2 column=info:age, timestamp=1476773051685, value=22 2 column=info:name, timestamp=1476773051661, value=lisi 3 column=info:age, timestamp=1476773052632, value=21 3 column=info:name, timestamp=1476773051709, value=wangswu 3 row(s) in 0.0610 seconds 创建Hive中与HBase中对应的表 SEThbase.zookeeper.quorum=hadoop001; SETzookeeper.znode.parent=/hbase; ADDjar/opt/bigdata/hive-1.2.1-bin/lib/hive-hbase-handler-1.2.1.jar; //user1表 CREATEEXTERNALTABLEuser1( rowkeystring, infomap<STRING,STRING> )STOREDBY'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITHSERDEPROPERTIES("hbase.columns.mapping"=":key,info:") TBLPROPERTIES("hbase.table.name"="user1"); //user2表 CREATEEXTERNALTABLEuser2( rowkeystring, namestring, ageint )STOREDBY'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITHSERDEPROPERTIES("hbase.columns.mapping"=":key,info:name,info:age") TBLPROPERTIES("hbase.table.name"="user2"); 查询user1,user2表数据 查询user1表数据 select*fromuser1; 结果如下 OK 1{"age":"25","name":"zhangsan"} 2{"age":"22","name":"lisi"} 3{"age":"21","name":"wangswu"} Timetaken:0.467seconds,Fetched:3row(s) 查询user2表数据 select*fromuser2; 结果如下: OK 1zhangsan25 2lisi22 3wangswu21 Timetaken:0.087seconds,Fetched:3row(s) hive插入数据到hbase INSERTINTOTABLEuser1 SELECT'4'ASrowkey, map('name','lijin','age','22')ASinfo fromduallimit1; 本文作者:佚名 来源:51CTO

优秀的个人博客,低调大师

sparkStreaming与Kafka整合

createStream那几个参数折腾了我好久。。网上都是一带而过,最终才搞懂..关于sparkStreaming的还是太少,最终尝试成功。。。 首先启动zookeeper ./bin/zookeeper-server-start.sh config/zookeeper.properties & 启动kafka bin/kafka-server-start.sh config/server.properties & 创建一个topic ./kafka-topics.sh --create --zookeeper 192.168.77.133:2181 \ --replication-factor 1\ --partitions 1\ --topic yangsy 随后启动一个终端为9092的提供者 ./kafka-console-producer.sh --broker-list 192.168.77.133:9092 --topic yangsy 代码如下: import org.apache.spark.SparkConf import org.apache.spark.storage.StorageLevel import org.apache.spark.streaming.kafka.KafkaUtils import org.apache.spark.streaming.{Seconds, StreamingContext} /** * Created by root on 11/28/15. */ object SparkStreaming { def main(args: Array[String]) { /* val sparkConf = new SparkConf().setMaster("local").setAppName("cocapp") .set("spark.executor.memory", "1g") val sc = new StreamingContext(sparkConf, Seconds(20)) val lines = sc.textFileStream("/usr/local/spark-1.4.0-bin-2.5.0-cdh5.2.1/streaming") val words = lines.flatMap(_.split(" ")) val wordCounts = words.map(x => (x, 1)).reduceByKey(_ + _) wordCounts.print() sc.start() sc.awaitTermination()*/ //zookeeper的地址 val zkQuorum = "192.168.77.133:2181" //group_id可以通过kafka的conf下的consumer.properties中查找 val group ="test-consumer-group" //创建的topic 可以是一个或多个 val topics = "yangsy" val sparkConf = new SparkConf().setMaster("local").setAppName("cocapp").set("spark.executor.memory", "1g") val sc = new StreamingContext(sparkConf, Seconds(2)) val numThreads = 2 val topicpMap = topics.split(",").map((_, numThreads.toInt)).toMap //StorageLevel.MEMORY_AND_DISK_SER为存储的级别 val lines = KafkaUtils.createStream(sc, zkQuorum, group, topicpMap, StorageLevel.MEMORY_AND_DISK_SER).map(_._2) //对于收到的消息进行wordcount val words = lines.flatMap(_.split(" ")) val pairs = words.map(word => (word, 1)) val wordCounts = pairs.reduceByKey(_ + _) wordCounts.print() sc.start() sc.awaitTermination() } } 随后再你启动的kafka的生产者终端随便输入消息,我这里设置的参数是每2秒获取一次,统计一次单词个数~OK~

优秀的个人博客,低调大师

架构的扩展性:从垂直扩容到无边界演化

任何软件系统在诞生之初,都面临一个残酷的现实:用户量未知、流量未知、数据量未知。架构师能做的,不是预测未来,而是让系统具备应对未来的能力。这种能力就是扩展性。扩展性不是性能优化的附属品,而是架构设计的核心目标之一。一个不具备扩展性的系统,在业务增长初期可能运行良好,但一旦遇到流量洪峰、数据爆炸或业务逻辑复杂化,就会陷入“动一处而牵全身”的困境。

优秀的个人博客,低调大师

MySQL 备份思路整合工具

通过go封装的一套基于MySQL备份的思路工具,可以实现以下内容: Backup_Mysqldump_All 该程序为mysqldump原生的全库数据库备份程序。 Backup_Mysqldump_One 该程序为mysqldump原生的单个数据库备份程序。 3. Backup_Mydumper_MultiThread_Database_All 该程序为多线程全量数据库备份程序 4. Backup_Mydumper_MultiThread_Database_One 该程序为多线程单库全量数据库备份程序 5. Backup_XtraBackup_add 该程序为XtraBackup增量备份程序,用于提供MySQL数据库的全量+增量备份程序 全量 增量 单库备份 多库备份 全库备份 binlog备份 文件备份 应该差不多能覆盖所有的MySQL备份需求了吧。 具体来项目查看readme.md 欢迎star 因为用到的都是开源的技术整理了一下也算是回馈开源 也是第一次回馈开源 GitHub链接:https://github.com/heike-07/Backup-tools gitee链接:https://gitee.com/heike07code/Backup-tools 感谢大家支持!

优秀的个人博客,低调大师

Spring+Hibernate+Jersey整合

导入需要的jar包 项目结构 Spring配置 classpath:database.propertiescom.test.bean${hibernate.dialect}${hibernate.show_sql}${hibernate.format_sql} 数据库连接配置 jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8 jdbc.username=root jdbc.password=root jdbc.initialPoolSize=30 jdbc.minPoolSize=20 jdbc.maxPoolSize=100 jdbc.maxIdleTime=600 jdbc.maxStatements=200 jdbc.acquireIncrement=10 hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.show_sql=false hibernate.format_sql=true log4j配置 #log4j.rootLogger=DEBUG,A1,R log4j.rootLogger=INFO,A1,R log4j.logger.com.augmentum=DEBUG log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=[%d%6pat%C.%M(%F:%L)]%m%n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=C://logs//a.log log4j.appender.R.Append=true log4j.appender.R.DatePattern=.yyyy-MM-dd.log log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=[%d%6pat%C.%M(%F:%L)]%m%n web.xml配置 testindex.htmlcontextConfigLocationclasspath:applicationContext.xmlorg.springframework.web.context.ContextLoaderListenerJerseyServletcom.sun.jersey.spi.spring.container.servlet.SpringServletcom.sun.jersey.config.property.packagescom.test.resourceJerseyServlet/resource/* Javabean packagecom.test.bean; importjavax.persistence.Column; importjavax.persistence.Entity; importjavax.persistence.GeneratedValue; importjavax.persistence.GenerationType; importjavax.persistence.Id; importjavax.persistence.Table; @Entity @Table(name="user") publicclassUser{ @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id") privateIntegerid; @Column(name="username") privateStringusername; @Column(name="password") privateStringpassword; @Override publicStringtoString(){ return"User[id="+id+",username="+username+",password="+password+"]"; } publicIntegergetId(){ returnid; } publicvoidsetId(Integerid){ this.id=id; } publicStringgetUsername(){ returnusername; } publicvoidsetUsername(Stringusername){ this.username=username; } publicStringgetPassword(){ returnpassword; } publicvoidsetPassword(Stringpassword){ this.password=password; } } Dao层 basedao packagecom.test.dao; importjava.io.Serializable; importjava.util.List; /** *Thebaseinterfaceforallthedaolayerinterface,itprovidecommonmethod * *@authorIrwin.Ai * *@param*Theentityclasstype *@param*Theprimarykeyoftheentityclass */ publicinterfaceBaseDao{ publicTadd(Tt); publicvoiddelete(Tt); publicTload(PKid); publicTget(PKid); publicListloadAll(); publicTupdate(Tt); } userdao packagecom.test.dao; importcom.test.bean.User; publicinterfaceUserDaoextendsBaseDao{ } Dao层实现 basedao实现 packagecom.test.dao.impl; importjava.io.Serializable; importjava.lang.reflect.ParameterizedType; importjava.lang.reflect.Type; importjava.util.List; importjavax.annotation.Resource; importorg.hibernate.Session; importorg.springframework.orm.hibernate3.HibernateTemplate; importorg.springframework.stereotype.Repository; importcom.test.dao.BaseDao; /** *Thebaseinterfaceimplementforallthedaolayerinterfaceimplements,it *providecommonmethod * *@authorIrwin.Ai * *@param*Theentityclasstype *@param*Theprimarykeyoftheentityclass */ @Repository publicclassBaseDaoImplimplementsBaseDao{ privateClassentityClass; privateHibernateTemplatehibernateTemplate; publicHibernateTemplategetHibernateTemplate(){ returnhibernateTemplate; } @Resource publicvoidsetHibernateTemplate(HibernateTemplatehibernateTemplate){ this.hibernateTemplate=hibernateTemplate; } /** *Methodtojudgethetypeofclass */ @SuppressWarnings("unchecked") publicBaseDaoImpl(){ Typetype=getClass().getGenericSuperclass(); if(typeinstanceofParameterizedType){ Type[]types=((ParameterizedType)type).getActualTypeArguments(); this.entityClass=(Class)types[0]; } } @Override publicTadd(Tt){ hibernateTemplate.save(t); returnt; } @Override publicvoiddelete(Tt){ hibernateTemplate.delete(t); } @Override publicTload(PKid){ returnhibernateTemplate.load(entityClass,id); } @Override publicListloadAll(){ returnhibernateTemplate.loadAll(entityClass); } @Override publicTupdate(Tt){ hibernateTemplate.update(t); returnt; } @Override publicTget(PKid){ returnhibernateTemplate.get(entityClass,id); } /** *Ifthereisasessionalive,wewilluseitinsteadofopenannew *Session. * *@return */ publicSessiongetCurrentSession(){ Sessionsession=hibernateTemplate.getSessionFactory() .getCurrentSession(); if(session==null){ session=hibernateTemplate.getSessionFactory().openSession(); } returnsession; } } userdao实现 packagecom.test.dao.impl; importorg.springframework.stereotype.Repository; importcom.test.bean.User; importcom.test.dao.UserDao; @Repository publicclassUserDaoImplextendsBaseDaoImplimplementsUserDao{ } service层 baseservice packagecom.test.service; importjava.io.Serializable; importjava.util.List; /** **Thebaseinterfaceforalltheservicelayerinterface,itprovidecommon *method * *@authorIrwin.Ai * *@param*Theentityclasstype *@param*Theprimarykeyoftheentityclass */ publicinterfaceBaseService{ publicTadd(Tt); publicvoiddelete(Tt); publicTload(PKid); publicTget(PKid); publicListloadAll(); publicTupdate(Tt); } userservice packagecom.test.service; importcom.test.bean.User; publicinterfaceUserServiceextendsBaseService{ } service层实现 baseservice实现 packagecom.test.service.impl; importjava.io.Serializable; importjava.util.List; importcom.test.dao.BaseDao; importcom.test.service.BaseService; /** **Thebaseinterfaceimplementforalltheservicelayerinterface *implements,itprovidecommonmethod * *@authorIrwin.Ai * *@param*Theentityclasstype *@param*Theprimarykeyoftheentityclass */ publicclassBaseServiceImplimplements BaseService{ privateBaseDaobaseDao; publicBaseDaogetBaseDao(){ returnbaseDao; } publicvoidsetBaseDao(BaseDaobaseDao){ this.baseDao=baseDao; } @Override publicTadd(Tt){ returnbaseDao.add(t); } @Override publicvoiddelete(Tt){ baseDao.delete(t); } @Override publicTload(PKid){ returnbaseDao.load(id); } @Override publicListloadAll(){ returnbaseDao.loadAll(); } @Override publicTupdate(Tt){ returnbaseDao.update(t); } @Override publicTget(PKid){ returnbaseDao.get(id); } } userservice实现 packagecom.test.service.impl; importjavax.annotation.Resource; importorg.springframework.stereotype.Service; importcom.test.bean.User; importcom.test.dao.UserDao; importcom.test.service.UserService; @Service publicclassUserServiceImplextendsBaseServiceImplimplementsUserService{ @Resource publicvoidsetBaseDao(UserDaouserDao){ super.setBaseDao(userDao); } } jersey resource类示例 packagecom.test.resource; importjava.util.List; importjavax.annotation.Resource; importjavax.ws.rs.GET; importjavax.ws.rs.Path; importjavax.ws.rs.Produces; importjavax.ws.rs.core.MediaType; importorg.apache.log4j.Logger; importorg.springframework.stereotype.Controller; importcom.google.gson.Gson; importcom.sun.jersey.spi.resource.Singleton; importcom.test.bean.User; importcom.test.service.UserService; @Path("/users") @Singleton @Controller publicclassUserResource{ privatestaticLoggerlogger=Logger.getLogger(UserResource.class); @Resource privateUserServiceuserService; @GET @Produces(MediaType.TEXT_PLAIN) publicStringgetAllUser(){ Listlist=null; Stringstr=null; try{ list=userService.loadAll(); str=newGson().toJson(list); }catch(Exceptione){ logger.error("loadallexception:",e); } returnstr; } } 页面访问测试 我们现在访问页面http://localhost:8080/SSJTest/resource/users 取到返回的json数据。

优秀的个人博客,低调大师

Spark整合Ray思路漫谈

作者:祝威廉,资深数据架构,11年研发经验。同时维护和开发多个开源项目。擅长大数据/AI领域的一些思路和工具。现专注于构建集大数据和机器学习于一体的综合性平台,降低AI落地成本相关工作上。 什么是Ray 之前花了大概两到三天把Ray相关的论文,官网文档看了一遍,同时特意去找了一些中文资料看Ray当前在国内的发展情况(以及目前国内大部分人对Ray的认知程度)。 先来简单介绍下我对Ray的认知。 首先基因很重要,所以我们先需要探查下Ray最初是为了解决什么问题而产生的。Ray的论文显示,它最早是为了解决增强学习的挑战而设计的。增强学习的难点在于它是一个需要边学习,边做实时做预测的应用场景,这意味会有不同类型的tasks同时运行,并且他们之间存在复杂的依赖关系,tasks会在运行时动态产生产生新的tasks,现有的一些计算模型肯定是没办法解决的

优秀的个人博客,低调大师

JS基础知识整合

1、执行环境:有时也叫环境,是JavaScript中最为重要的一个概念,执行环境定义了变量或函数有权访问的其他数据。 2、变量对象:每一个执行环境都有一个与之关联的变量对象,环境中定义的所有的变量和函数都保存在这个的对象中。 3、作用域链:代码在环境中执行时,会创建变量对象的作用域链,保证对执行环境有权访问的所有变量和函数的有序访问。作用域链的前端,始终是当前执行代码所在环境的变量对象。 4、活动对象:如果当前执行环境是函数,则将活动对象作为变量对象。 5、可执行代码: 1)全局代码:例如加载外部的JS文件或者本地标签内的代码,全局代码不包括function体内的代码; 2)函数代码:function体内的代码; 3) eval代码:eval()函数计算某个字符串,并执行其中的JS代码,比如 eval("alert('helloworld')")。 6、执行上下文栈:在一个JS程序中,必定会产生多个执行上下文,JS引擎会以栈的方式来处理它们,也就是执行上下文栈。 7、作用域:JS是一种没有块级作用域的语言(包括if、for等语句的花括号代码块或者单独的花括号代码块都不能形成一个局部作用域),所以js的局部作用域的形成有且只有函数的花括号内定义的代码块形成的,既函数作用域。 8、作用域链:是作用域规则的实现,通过作用域链的实现,变量在它的作用域内可被访问,函数在它的作用域内可被调用。 作用域链是一个只能单向访问的链表,这个链表上的每个节点就是执行上下文的变量对象,单向链表的头部(可被第一个访问的节点)始终都是当前正在被调用执行的函数的变量对象(活动对象),尾部始终是全局活动对象。 9、闭包:函数对象可以通过作用域链相互关联起来,函数体内的数据(变量和函数声明)都可以保存在函数作用域内,这种特性在计算机科学文献中被称为“闭包”。 从技术角度来说,JS的函数都是闭包:函数都是对象,都关联到作用域链,函数内数据都被保存在函数作用域内。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册