首页 文章 精选 留言 我的

精选列表

搜索[指令遵循],共10005篇文章
优秀的个人博客,低调大师

构建一套成功大数据基础设施需要遵循的七项要诀

无论从硬件还是软件角度出发,您面向大数据构建的基础设施都会对所支持大数据系统的分析与操作带来巨大影响。在今天的文章中,我们将了解七项重要的大数据架构设计原则。 大数据不仅是Hadoop 在大多数人的理解当中,大数据与Hadoop几乎可以等而论之。事实上,大数据远不止Hadoop这么简单。Hadoop是一套文件系统(而非数据库),其负责将数据传播至成百上千个处理节点当中。其之所以在大数据应用中广泛出现,是因为作为文件系统,它能够很好地处理非结构化数据——甚至包括一些看起来根本不算是数据的素材。 Hive与Impala将数据库引入Hadoop 下面聊聊大数据世界中结构化数据部分的对应数据库选项。如果大家希望以明确次序管理Hadoop数据平台,那么Hive应是最佳选项。这是一款基础性结构工具,允许大家在非SQL Hadoop当中执行SQL类操作。 如果大家的一部分数据能够轻松旋转在结构化数据库当中,那么Impala则更为合适——除了自身功能外,它还能够直接利用您已经开发出的Hive命令。Hadoop、Hive与Impala皆属于Apache项目,因此其全部为开源成果——请随意使用。 Spark用于处理大数据 截至目前,我们已经探讨了数据的存储与整理。然而,我们该如何对数据进行实际操作?这代表着我们需要一套分析与处理引擎,例如Spark。Spark亦属于Apache项目,能够将您的大批量数据整理为湖、仓储乃至数据库并进行实用性处理。 Spark亦可用于处理存储在任意位置的各类数据,因为丰富的库选项使其拥有了极为广泛的访问能力。另外,由于其属于开源项目,因此大家能够随意修改其核心内容。 可以立足大数据执行SQL操作 很多朋友可能非常熟悉SQL数据库构建与SQL查询编写工作。这方面专业知识在大数据领域同样拥有用武之地。Presto是一套开源SQL查询引擎,允许数据科学家利用SQL查询以检索从Hive到专有商用数据库等各类数据库系统。Facebook等巨头级企业都在利用其进行交互查询,因此我们基本可以将Presto视为一套理想的大规模数据集交互式查询工具。 在线存储同样需要接地平台 大数据领域中的相当一部分任务要求对数据进行快速变更——例如定期添加数据或者对变更数据进行分析等。无论如何,如果大家的数据拥有几乎对等的读取与写入频度,那么应当同时在本地与在线端保留数据副本。如果预算允许,使用固态存储无疑效果更好,因为这能够显著提升数据处理速度。 云存储的必要性 在对大规模聚合数据库进行分析时,云存储将成为最为理想的存储平台。大家可以将数据聚合后传输至云端,运行分析而后移除对应实例。数据处理不会受到互联网性能的影响。另外,如果大家将内部实时分析系统与云端深度分析方案加以结合,则能够最大程度发挥大数据基础设施的全部潜力。 别忘了可视化机制 除了大数据分析,将结果以易于理解的方式加以呈现同样非常重要,而数据可视化正是实现这一效果的关键性工具。 幸运的是,目前市面上提供多种可视化处理选项。大家可以选择一部分并加以尝试,同时了解用户的反馈意见以判断其效果。总而言之,可视化是实现大数据分析价值的最佳方式。 本文作者:核子可乐 来源:51CTO

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

CentOS充下负载监控常用指令

1. load 查看:top | grep load、uptime命令可以查看 说明:表示过去一段时间,平均有多少核心在计算,超过计算机核数表示负债比较大,达到2倍表示要宕机了,三个值分别是1分钟,5分钟,10分钟内 2. cpu利用率 查看:top | grep Cpu,按住SHIFT+H根据进程查看, top -p 进程号查看进程的情况 说明:用户时间(User Time)、系统时间(System Time)、Nice时间(Nice Time,系统调整进程优先级的时候花费的时间)、空闲时间(Idle Time)、等待时间(Waiting Time,等待IO的时间)、硬件中断处理时间(Hard Irq Time)、软件中断处理时间(Soft Irq TIme)、丢失时间(Steal Time) 其他: vmstat、 mpstat 说明: 1.对于每一个CPU来说运行队列不要超过3,例如,如果是双核CPU就不要超过6; 2.如果CPU在满负荷运行,应该符合下列分布, a) User Time:65%~70% b) System Time:30%~35% c) Idle:0%~5% 3. 磁盘剩余空间 查看:df -h 说明:第二行表示总硬盘的使用量为25% 查看:du -d 1 -h /home/tomcat,-d表示深度,-h格式化输出文件大小 4. 网络traffic 查看:sar -n DEV 1 1,-n表示汇报网络情况,DEV表示查看全部网卡,1表示每秒抽样一次,1表示总抽样一次 说明:rxpcks/s每秒接收的数据包量、txpcks/s每秒发出的数据包量、rxKB/s每秒接收的字节数、txKB/s每秒发送的字节数、rxcmp/s每秒收到的压缩包的数量、txcmp/s表示每秒发送的压缩包数量、rxmcst/s每秒收到广播包数量、平均时间表示多次取样的数量 5. 磁盘I/O 查看:iostat -d -k ,-d表示查看磁盘使用情况,-k表示以kb为单位显示 说明:Device设备名称,tps每秒处理的IO次数,kB_read/s每秒从设备读取的数据量,kB_wrtn/s每秒从设备写的数据量,kB_read读取的数据总量,kB_wrtn写入的数据总量 6. 内存使用情况 查看:free -m 说明:total内存总共大小,used已使用内存大小,free可使用内存大小,shared多个线程共享的内存空间大小,buff/cache缓冲区的大小,available缓存的大小 查看:vmstat 查看swapIO的情况,swapIO比较大会严重影响系统的性能 说明:si磁盘交换到内存的数量量,单位kb/s,so内存交换到磁盘的数据量,单位kb/s

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

Docker 镜像小结---操作指令介绍(七)

一、搜索镜像 很多情况下我们可能需要下载某一类别的镜像,这时候我们就会用到搜索功能,也可以去 docker hub 官网页面搜索。 使用语法如下。 Usage: docker search [OPTIONS] TERM Search the Docker Hub for images Options: -f, --filter filter Filter output based on conditions provided --format string Pretty-print search using a Go template --help Print usage --limit int Max number of search results (default 25) --no-trunc Don't truncate output 我们可以看到,第一个镜像是没有用户名的,并且 OFFICIAL 是 OK,这样的镜像是由 Docker 公司进行维护的。 二、下载镜像 使用方法如下。 Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST] Pull an image or a repository from a registry Options: -a, --all-tags Download all tagged images in the repository --disable-content-trust Skip image verification (default true) --help Print usage 正常情况下,我们输入查到的镜像的全称即可。 三、查看本地镜像 Usage: docker images [OPTIONS] [REPOSITORY[:TAG]] List images Options: -a, --all Show all images (default hides intermediate images) --digests Show digests -f, --filter filter Filter output based on conditions provided --format string Pretty-print images using a Go template --help Print usage --no-trunc Don't truncate output -q, --quiet Only show numeric IDs 四、显示镜像构建历史 Usage: docker history [OPTIONS] IMAGE Show the history of an image Options: --format string Pretty-print images using a Go template --help Print usage -H, --human Print sizes and dates in human readable format (default true) --no-trunc Don't truncate output -q, --quiet Only show numeric IDs 五、删除镜像 Usage: docker rmi [OPTIONS] IMAGE [IMAGE...] Remove one or more images Options: -f, --force Force removal of the image --help Print usage --no-prune Do not delete untagged parents 六、镜像创建 Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] Create a new image from a container's changes Options: -a, --author string Author (e.g., "John Hannibal Smith <hannibal@a-team.com>") -c, --change list Apply Dockerfile instruction to the created image --help Print usage -m, --message string Commit message -p, --pause Pause container during commit (default true) 之前我们已经演示过了。 七、上传镜像 Usage: docker push [OPTIONS] NAME[:TAG] Push an image or a repository to a registry Options: --disable-content-trust Skip image signing (default true) --help Print usage 之前已经演示过。 八、给镜像打 tag Usage: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE Options: --help Print usage 之前已经演示过。 九、存出和载入镜像 Usage: docker save [OPTIONS] IMAGE [IMAGE...] Save one or more images to a tar archive (streamed to STDOUT by default) Options: --help Print usage -o, --output string Write to a file, instead of STDOUT Usage: docker load [OPTIONS] Load an image from a tar archive or STDIN Options: --help Print usage -i, --input string Read from tar archive file, instead of STDIN -q, --quiet Suppress the load output 本文转自 wzlinux 51CTO博客,原文链接:http://blog.51cto.com/wzlinux/2046045,如需转载请自行联系原作者

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

在RedisTemplate中使用scan代替keys指令

SCAN 简介 SCAN命令及其相关的SSCAN命令、HSCAN命令和ZSCAN命令都用于增量地迭代(incrementally iterate)一集元素(a collection of elements): SCAN命令用于迭代当前数据库中的数据库键。 SSCAN命令用于迭代集合键中的元素。 HSCAN命令用于迭代哈希键中的键值对。 ZSCAN命令用于迭代有序集合中的元素(包括元素成员和元素分值)。 基本用法可以参考:http://doc.redisfans.com/key/scan.html SCAN和KEYS的区别 当KEYS命令被用于处理一个大的数据库时, 又或者SMEMBERS命令被用于处理一个大的集合键时, 它们可能会阻塞服务器达数秒之久。在高并发下会导致请求大量堆积进而导致服务雪崩。有些公司在生产环境直接禁用kyes *命令。但是在redis服务器key的数量不大的情况下,使用keys也是没啥问题的。 SCAN命令及其相关的SSCAN命令、HSCAN命令和ZSCAN命令都用于增量地迭代 ,它们每次执行都只会返回少量元素,不会阻塞服务器, 所以这些命令可以用于生产环境, 而不会出现像KEYS命令、SMEMBERS命令带来的问题。 SCAN一样有它自己的问题: 因为是分段获取key,所以它会多次请求redis服务器,这样势必取同样的key,scan耗时更长。 在对键进行增量式迭代的过程中, 键可能会被修改, 所以增量式迭代命令只能对被返回的元素提供有限的保证。 SCAN cursor [MATCH pattern] [COUNT count] 使用SCAN代替KEYS /** * redis扩展工具 * * @author yuhao.wang3 * @since 2020/2/21 23:35 */ public abstract class RedisHelper { private static Logger logger = LoggerFactory.getLogger(RedisHelper.class); /** * scan 实现 * * @param redisTemplate redisTemplate * @param pattern 表达式,如:abc*,找出所有以abc开始的键 */ public static Set<String> scan(RedisTemplate<String, Object> redisTemplate, String pattern) { return redisTemplate.execute((RedisCallback<Set<String>>) connection -> { Set<String> keysTmp = new HashSet<>(); try (Cursor<byte[]> cursor = connection.scan(new ScanOptions.ScanOptionsBuilder() .match(pattern) .count(10000).build())) { while (cursor.hasNext()) { keysTmp.add(new String(cursor.next(), "Utf-8")); } } catch (Exception e) { logger.error(e.getMessage(), e); throw new RuntimeException(e); } return keysTmp; }); } } 源码分析 我看到网上很多文章说这种实现方式cursor 只会被执行一次,其实这是错误的,使用这种方式cursor 会将所有的符合条件的key都返回回来,他只是将游标的移动给封装了起来而已,真正执行查询的语句起始在cursor.hasNext()里面,源码如下: /* * (non-Javadoc) * @see java.util.Iterator#hasNext() */ @Override public boolean hasNext() { assertCursorIsOpen(); // 存放结果集的容器没有值,并且游标状态是未完成的时候进行Scan动作 while (!delegate.hasNext() && !CursorState.FINISHED.equals(state)) { scan(cursorId); } // 如果结果容器还有值直接返回true,进行循环 if (delegate.hasNext()) { return true; } // 如果结果容器没有值,但是游标不为0则表示还有值,需要进行下一次循环 if (cursorId > 0) { return true; } return false; } private void scan(long cursorId) { // 进行scan操作 ScanIteration<T> result = doScan(cursorId, this.scanOptions); // 结果集处理 processScanResult(result); } private void processScanResult(ScanIteration<T> result) { if (result == null) { // 重置结果集容器 resetDelegate(); // 设置游标状态为完成 state = CursorState.FINISHED; return; } // 获取当前游标位置 cursorId = Long.valueOf(result.getCursorId()); if (isFinished(cursorId)) { // 游标返回0,设置游标状态为完成 state = CursorState.FINISHED; } if (!CollectionUtils.isEmpty(result.getItems())) { // 将查询结果放到容器中 delegate = result.iterator(); } else { resetDelegate(); } } 由上面源码我们可以看到游标的移动是在processScanResult()方法中完成。通过state来记录当前游标状态,大致过程为: 当存放结果集的容器没有值,并且游标状态是未完成的时候进行Scan动作 如果结果容器还有值直接返回true,进行循环 如果结果容器没有值,但是游标不为0则表示还有值,需要进行下一次循环

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

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文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

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

用户登录
用户注册