首页 文章 精选 留言 我的

精选列表

搜索[实时分析],共10000篇文章
优秀的个人博客,低调大师

PgBouncer 1.16.0 发布,可在实例中实时加载 TLS 设置

PgBouncer 是一个开源的、轻量级的、用于 PostgreSQL 的连接池。它可以为一个或多个数据库建立连接池,并通过 TCP 和 Unix domain sockets 为客户提供服务。 PgBouncer 1.16.0 正式发布,更新内容如下: 功能: 支持热重载 TLS 设置。当配置文件被重新加载时,改变的 TLS 设置会自动生效; 密码和用户名的最大长度已分别增加到 996 和 128; 现在可以为每个数据库设置最小池大小; 在 SHOW POOLS 中显示了待定查询取消的数量。 修复: 配置解析现在在许多地方有更严格的错误处理。以前它可能会记录一个错误并继续进行,现在这些配置错误会导致启动失败; 查询取消处理已被修复。此前在某些情况下,取消请求似乎会被卡住很长时间; 通过 hba 混合使用 md5 和 scram 的问题已被修复; 在 Windows 上用 c-res 构建的问题已被修复; "FIXME: query end, but query_start == 0" 信息已被修复; 修复了重新加载 default_pool_size、 min_pool_size 和 res_pool_size 的问题。以前重新加载这些设置时,并不奏效。 清理: 现在使用 Cirrus CI 而不是 Travis CI; 跟以往一样,增加了许多测试; 不能再使用 "pgbouncer" 作为数据库名称; 在连接关闭前发送给客户端的错误现在被标记为 "FATAL",而不仅仅是 "ERROR"; 修正了 GCC 11 的编译器警告; 更多详情可查看:https://www.pgbouncer.org/changelog.html#pgbouncer-116x

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

实时计算框架:Spark集群搭建与入门案例

一、Spark概述 1、Spark简介 Spark是专为大规模数据处理而设计的,基于内存快速通用,可扩展的集群计算引擎,实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流,运算速度相比于MapReduce得到了显著的提高。 2、运行结构 Driver 运行Spark的Applicaion中main()函数,会创建SparkContext,SparkContext负责和Cluster-Manager进行通信,并负责申请资源、任务分配和监控等。 ClusterManager 负责申请和管理在WorkerNode上运行应用所需的资源,可以高效地在一个计算节点到数千个计算节点之间伸缩计算,目前包括Spark原生的ClusterManager、ApacheMesos和HadoopYARN。 Executor Application运行在WorkerNode上的一个进程,作为工作节点负责运行Task任务,并且负责将数据存在内存或者磁盘上,每个 Application都有各自独立的一批Executor,任务间相互独立。 二、环境部署 1、Scala环境 安装包管理 [root@hop01 opt]# tar -zxvf scala-2.12.2.tgz [root@hop01 opt]# mv scala-2.12.2 scala2.12 配置变量 [root@hop01 opt]# vim /etc/profile export SCALA_HOME=/opt/scala2.12 export PATH=$PATH:$SCALA_HOME/bin [root@hop01 opt]# source /etc/profile 版本查看 [root@hop01 opt]# scala -version Scala环境需要部署在Spark运行的相关服务节点上。 2、Spark基础环境 安装包管理 [root@hop01 opt]# tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz [root@hop01 opt]# mv spark-2.1.1-bin-hadoop2.7 spark2.1 配置变量 [root@hop01 opt]# vim /etc/profile export SPARK_HOME=/opt/spark2.1 export PATH=$PATH:$SPARK_HOME/bin [root@hop01 opt]# source /etc/profile 版本查看 [root@hop01 opt]# spark-shell 3、Spark集群配置 服务节点 [root@hop01 opt]# cd /opt/spark2.1/conf/ [root@hop01 conf]# cp slaves.template slaves [root@hop01 conf]# vim slaves hop01 hop02 hop03 环境配置 [root@hop01 conf]# cp spark-env.sh.template spark-env.sh [root@hop01 conf]# vim spark-env.sh export JAVA_HOME=/opt/jdk1.8 export SCALA_HOME=/opt/scala2.12 export SPARK_MASTER_IP=hop01 export SPARK_LOCAL_IP=安装节点IP export SPARK_WORKER_MEMORY=1g export HADOOP_CONF_DIR=/opt/hadoop2.7/etc/hadoop 注意SPARK_LOCAL_IP的配置。 4、Spark启动 依赖Hadoop相关环境,所以要先启动。 启动:/opt/spark2.1/sbin/start-all.sh 停止:/opt/spark2.1/sbin/stop-all.sh 这里在主节点会启动两个进程:Master和Worker,其他节点只启动一个Worker进程。 5、访问Spark集群 默认端口是:8080。 http://hop01:8080/ 运行基础案例: [root@hop01 spark2.1]# cd /opt/spark2.1/ [root@hop01 spark2.1]# bin/spark-submit --class org.apache.spark.examples.SparkPi --master local examples/jars/spark-examples_2.11-2.1.1.jar 运行结果:Pi is roughly 3.1455357276786384 三、开发案例 1、核心依赖 依赖Spark2.1.1版本: <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.1.1</version> </dependency> 引入Scala编译插件: <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.2.2</version> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> 2、案例代码开发 读取指定位置的文件,并输出文件内容单词统计结果。 @RestController public class WordWeb implements Serializable { @GetMapping("/word/web") public String getWeb (){ // 1、创建Spark的配置对象 SparkConf sparkConf = new SparkConf().setAppName("LocalCount") .setMaster("local[*]"); // 2、创建SparkContext对象 JavaSparkContext sc = new JavaSparkContext(sparkConf); sc.setLogLevel("WARN"); // 3、读取测试文件 JavaRDD lineRdd = sc.textFile("/var/spark/test/word.txt"); // 4、行内容进行切分 JavaRDD wordsRdd = lineRdd.flatMap(new FlatMapFunction() { @Override public Iterator call(Object obj) throws Exception { String value = String.valueOf(obj); String[] words = value.split(","); return Arrays.asList(words).iterator(); } }); // 5、切分的单词进行标注 JavaPairRDD wordAndOneRdd = wordsRdd.mapToPair(new PairFunction() { @Override public Tuple2 call(Object obj) throws Exception { //将单词进行标记: return new Tuple2(String.valueOf(obj), 1); } }); // 6、统计单词出现次数 JavaPairRDD wordAndCountRdd = wordAndOneRdd.reduceByKey(new Function2() { @Override public Object call(Object obj1, Object obj2) throws Exception { return Integer.parseInt(obj1.toString()) + Integer.parseInt(obj2.toString()); } }); // 7、排序 JavaPairRDD sortedRdd = wordAndCountRdd.sortByKey(); List<Tuple2> finalResult = sortedRdd.collect(); // 8、结果打印 for (Tuple2 tuple2 : finalResult) { System.out.println(tuple2._1 + " ===> " + tuple2._2); } // 9、保存统计结果 sortedRdd.saveAsTextFile("/var/spark/output"); sc.stop(); return "success" ; } } 打包执行结果: 查看文件输出: [root@hop01 output]# vim /var/spark/output/part-00000 四、源代码地址 GitHub·地址 https://github.com/cicadasmile/big-data-parent GitEE·地址 https://gitee.com/cicadasmile/big-data-parent

资源下载

更多资源
Mario

Mario

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

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

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

用户登录
用户注册