- 博客(430)
- 资源 (31)
- 收藏
- 关注
原创 Elasticsearch调优
es的默认配置是一个非常合理的默认配置,绝大多数情况下是不需要修改的,如果不理解某项配置的含义,没有经过验证就贸然修改默认配置,可能造成严重的后果。比如max_result_window这个设置,默认值是1W,这个设置是分页数据每页最大返回的数据量,冒然修改为较大值会导致OOM。ES没有银弹,不可能通过修改某个配置从而大幅提升ES的性能,通常出厂配置里大部分设置已经是最优配置,只有少数和具体的业务相关的设置,事先无法给出最好的默认配置,这些可能是需要我们手动去设置的。
2023-03-17 22:18:03
61
原创 solr开发文档
由于搜索引擎功能在门户社区中对提高用户体验有着重在门户社区中涉及大量需要搜索引擎的功能需求,目前在实现搜索引擎的方案上有集中方案可供选择:基于以述的几种方案的综合分析,对于我们公司的搜索引擎方案,采用solr来实现比较合适。Apache Solr 是一个开源的搜索服务器,Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。定制 Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述所有 Field 及其内容的 XML 文档就可以了。定制搜
2023-03-13 22:30:46
30
原创 MongoDB手册
{ "_id" : ObjectId("56064886ade2f21f36b03134"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
2023-03-02 20:48:37
71
原创 Hadoop参数汇总
默认实现是 org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback, 若是JNI有效,它将发挥做用,使用Hadoop的API去获取user的groups列表。在有些场景下,特别是对一些大的,而且不可能重用的数据,缓存在操做系统的缓存区是无用的。可使用8进制数字也可使用符号,例如:"022" (8进制,等同于以符号表示的u=rwx,g=r-x,o=r-x),或者"u=rwx,g=rwx,o="(符号法,等同于8进制的007)。
2023-03-01 21:46:44
65
1
原创 离线分析HDFS的FsImage查找集群小文件
统计中有两个重要参数parent_id和instr(path,'/',1,2)这两个参数主要表示指定统计的HDFS目录以及目录钻取深度,instr()函数中的最后一个参数即为目录钻取深度(如果为parent_id=1为根目录“/”,钻取深度则为2,即根目录下所有的数据目录,需要钻取根深的目录则依次递增)。如下统计方式主要基于Hive库和表的统计分析,统计Hive中所有库存的数据文件数、Block数量、文件总大小(bytes)及平均文件大小(bytes)。2.使用hdfs oiv命令解析FsImage文件。
2023-03-01 20:21:41
29
原创 Hadoop调优思路
HDFS 上每个文件都要在 NameNode 上创建对应的元数据,这个元数据的大小约为 150byte,这样当小文件比较多的时候,就会产生很多的元数据文件,一方面会大量占用 NameNode 的内存空间,另一方面就是元数据文件过多,使得寻址索引速度变慢。这里我们发现所有的文件块都是存储在 DISK,按照理论一个副本存储在 RAM_DISK,其他副本存储在 DISK 中,这是因为,我们还需要配置“dfs.datanode.max.locked.memory”,“dfs.block.size”参数。
2023-02-28 21:43:40
17
原创 sqoop job
sqoop job可以将执行的语句变成一个job,并不是在创建语句的时候执行,你可以查看该job,可以任何时候执行该job,也可以删除job,这样就方便我们进行任务的调度。将sqoop.metastore.client.record.password参数的注释去掉 或者再添加一下。发现当我们执行hdfs_job的时候,需要输入数据库的密码,怎么样能不输入密码呢?# 执行job 会提示输入mysql root用户密码。配置sqoop-site.xml即可解决。
2023-02-25 20:35:28
22
原创 Dockerfile详解
如果我们在Dockerfile种同时写了ENTRYPOINT和CMD,并且CMD指令不是一个完整的可执行命令,那么CMD指定的内容将会作为ENTRYPOINT的参数。如果我们在Dockerfile种同时写了ENTRYPOINT和CMD,并且CMD是一个完整的指令,那么它们两个会互相覆盖,谁在最后谁生效。3.Dockerfile中一定要惜字如金,能写到一行的指令,一定要写到一行,原因是分层构建,联合挂载这个特性。容器使用的是AUFS,这种文件系统不能持久化数据,当容器关闭后,所有的更改都会丢失。
2023-02-22 22:19:12
15
转载 k8s功能
KubeSphere 是国内一家青云(QingCloud)公司在 Kubernetes 之上构建的面向云原生应用的容器混合云,支持多云与多集群管理,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。KubeSphere 旨在解决 Kubernetes 在构建、部署、管理和可观测性等方面的痛点,提供全面的服务和自动化的应用供应、伸缩和管理,让研发更专注于代码编写。云控制器管理器允许您链接集群到云提供商的应用编程接口中, 并把和该云平台交互的组件与只和您的集群交互的组件分离开。
2023-02-21 22:06:23
20
转载 docker CIG
cAdvisor 是一个运行中的守护进程用来收集、聚合、处理和导出运行容器相关的信息,每个容器保持独立的参数、历史资源使用情况和完整的资源使用数据。grafana是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。grafana有热插拔控制面板和可扩展的数据源,目前已经支持Graphite、InfluxDB、OpenTSDB、Elasticsearch。grafana最常用于因特网基础设施和应用分析,但在其他领域也有机会用到,比如:工业传感器、家庭自动化、过程控制等等。
2023-02-21 21:58:36
14
转载 RocketMQ
DLedger是一套基于Raft协议的分布式日志存储组件,部署 RocketMQ 时可以根据需要选择使用DLeger来替换原生的副本存储机制。本文档主要介绍如何快速构建和部署基于 DLedger 的可以自动容灾切换的 RocketMQ 集群。对RocketMQ的Topic资源访问权限控制定义主要如下表所示,分为以下四种权限含义DENY拒绝ANYPUB 或者 SUB 权限PUB发送权限SUB订阅权限字段取值含义全局IP白名单accessKey字符串Access Key。
2023-02-20 22:05:04
37
原创 Zookeeper分布式锁实现Curator
当需要加读锁的时候,会去判断自己创建节点的前面有没有写锁,如果没写锁,那么说明前面加的都是读锁,那么读锁就能加锁成功,读读不互斥,如果前面有写锁,那么就加锁失败(自己加的写锁除外),读写互斥。前面说过,判断有没有加锁成功,会返回一个PredicateResults,这里面包含了有没有加锁成功的信息,同时如果没有加锁成功,就会返回需要监听的节点,也就是当前创建的节点的前一个节点。此时如果第二次来加锁,那么就会从threadData中获取到加锁的信息,然后将加锁次数加1,就代表了加锁成功,然后直接返回。
2023-02-18 17:56:16
34
原创 Redisson分布式锁
Redisson整体实现分布式加解锁流程的实现稍显复杂,作者Rui Gu对Netty和JUC、Redis研究深入,利用了很多高级特性和语义,值得深入学习,本次介绍也只是单机Redis下锁实现。Redisson也提供了多机情况下的联锁MultiLock:支持Redis多种连接模式 1、集群模式 2、单例模式 3、哨兵模式 4、主从模式3、分布式相关工具1、支持使用的分布式对象。
2023-02-18 17:48:01
38
原创 Hive explain执行计划详解
这个执行计划对于咱们了解底层原理,hive 调优,排查数据倾斜等颇有帮助 express使用语法以下:apacheexplain 后面能够跟如下可选参数,注意:这几个可选参数不是 hive 每一个版本都支持的函数在 hive cli 中输入如下命令(hive 2.3.7):oop获得结果(请逐行看完,即便看不懂也要每行都看):性能Map ReduceTableScanmode: hashtable:limit: -1ListSink。
2023-02-14 22:59:47
40
原创 mysql 调优
即可以重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中,如果线程重新被请求,那么请求将从缓存中读取,如果缓存中是空的或者是新的请求,那么这个线程将被重新创建,如果有很多新的线程,增加这个值可以改善系统性能。然而,这项工作是要做出权衡的。对于长连接,不能保证连接的稳定性,所以设置这参数还是有一定必要,可能连接池的问题,会导致连接数据库的不稳定性,也会出现频繁的创建和销毁,但这个情况比较少,如果是长连接,可以设置成小一点,一般在50-100左右。
2023-02-14 22:45:18
55
原创 Hive调优大全
创建表时,特别是宽表,尽量使用 ORC、ParquetFile 这些列式存储格式,因为列式存储的表,每一列的数据在物理上是存储在一起的,Hive查询时会只遍历需要列数据,大大减少处理的数据量。在分布式集群环境下,因为程序Bug(包括Hadoop本身的bug),负载不均衡或者资源分布不均等原因,会造成同一个作业的多个任务之间运行速度不一致,有些任务的运行速度可能明显慢于其他任务(比如一个作业的某个任务进度只有50%,而其他所有任务已经运行完毕),则这些任务会拖慢作业的整体执行进度。但是不推荐使用这个语法。
2023-02-13 22:39:19
55
原创 mysql explain详解
explain包含的信息十分的丰富, 主要关注以下几个字段信息.id: select子句或表执行顺序, id相同, 从上到下执行, id不同, id值越大, 执行优先级越高.type: type主要取值及其表示sql的好坏程度(由好到差排序):systemconsteq_refrefrangeindexALL. 保证range, 最好到ref.key: 实际被使用的索引列.ref: 关联的字段, 常量等值查询, 显示为const, 如果为连接查询, 显示关联的字段.
2023-02-13 22:29:03
24
原创 JVM之内存泄漏问题
否则,对象修改后的哈希值与最初存储进HashSet集合中时的哈希值就不同了,在这种情况下,即使在contains方法使用该对象的当前引用作为的参数去HashSet集合中检索对象,也将返回找不到对象的结果,这也会导致无法从HashSet集合中单独删除当前对象,造成内存泄漏。单例模式,和静态集合导致内存泄露的原因类似,因为单例的静态特性,它的生命周期和JVM的生命周期一样长,所以如果单例对象如果持有外部对象的引用,那么这个外部对象也不会被回收,那么就会造成内存泄漏。隐式泄漏:一直占着内存不释放,直到执行结束;
2023-02-11 10:50:01
254
原创 JVM之GC日志分析与对象内存分配回收策略
对象分配的规则并不是固定的,《Java虚拟机规范》并未规定新对象的创建和存储细节,这取决于虚拟机当前使用的是哪一种垃圾收集器,以及虚拟机中与内存相关的参数的设定。原因如下: 一个比较大的对象无法放入新生代,那它自然会往老年代去放,如果老年代也放不下,那会先进行一次新生代的垃圾收集,之后尝试往新生代放,如果还是放不下,才会进行老年代的垃圾收集,之后在往老年代去放,这是一个过程,为什么需要往老年代放,但是放不下而进行新生代垃圾收集的原因,这是因为新生代垃圾收集比老年代垃圾收集更加简单,这样做可以节省性能。
2023-02-11 10:47:56
31
原创 JVM指令手册
是则压入 1,否则压入 0。dup2_x1 复制栈顶部两个字长的内容,然后将复制内容及原来弹出的三个字长的内容压入栈。dup2_x2 复制栈顶部两个字长的内容,然后将复制内容及原来弹出的四个字长的内容压入栈。dup_x1 复制栈顶部一个字长的内容,然后将复制内容及原来弹出的两个字长的内容压入栈。dup_x2 复制栈顶部一个字长的内容,然后将复制内容及原来弹出的三个字长的内容压入栈。if_icmpge 如果一个int类型值大于或者等于另外一个int类型值,则跳转。
2023-02-11 10:35:58
24
原创 keepalived使用
本脚本实时监控inceptor gateway和keepalived服务状态,通过判断gateway状态停止启动keepalived服务,实现vip的切换,实现gateway高可用(只有停掉master的keepalived服务vip才会切换到BACKUP节点)。keepalived.sh实现vip切换,如果gateway服务down掉,就停止keepalived服务,vip会切换到BACKUP,如果gateway服务恢复,就启动keepalived服务,vip切回MASTER。停掉gateway1。
2023-02-04 16:38:08
79
原创 shell之awk命令
Expression | getline [ Variable ]从来自 Expression 参数指定的命令的输出中通过管道传送的流中读取一个输入记录,并将该记录的值指定给 Variable 参数指定的变量。sub( Ere, Repl, [ In ] )用 Repl 参数指定的字符串替换 In 参数指定的字符串中的由 Ere 参数指定的扩展正则表达式的第一个具体值。出现在 Repl 参数指定的字符串中的 &(和符号)由 In 参数指定的与 Ere 参数的指定的扩展正则表达式匹配的字符串替换。
2023-02-04 16:17:59
38
原创 Shell之sed命令
对sed命令大家要注意,sed所做的修改并不会直接改变文件的内容(如果是用管道符接收的命令的输出,这种情况连文件都没有),而是把修改结果只显示到屏幕上,除非使用“-i”选项才会直接修改文件。“-e”选项可以同时执行多个sed动作,当然如果只是执行一个动作也可以使用“-e”选项,但是这时没有什么意义。sed命令默认情况是不会修改文件内容的,如果我确定需要让 sed命令直接处理文件的内容,可以使用“-i”选项。“c”动作是进行整行替换的,如果仅仅想替换行中的部分数据,就要使用“s”动作了。
2023-02-04 16:16:25
60
原创 shell 之 cut 命令
这个时候,以域定位就派上用场了,简单来说,就是先设置间隔符,再设置提取第几个域,就好了。注:以上效果是在 Mac 上的效果, Linux 下可能会有区别,尤其是 末尾的。定位会先将标志位从小到大排序再截取,打乱先后顺序再执行,效果和以上是一致的。如果我们想取第一个冒号之前的内容,第二个-第三个冒号之间的内容,我们怎么办呢。在处理多空格间隔的域时,比较麻烦,它擅长处理『以一个字符间隔』的文本内容。如果是文本内容都是纯单字节字符,字符定位和字节定位的效果是一致的。它看似没有任何规律,但又是有规律的。
2023-02-04 16:13:44
74
原创 TxSQL在线修复、迁移、扩容
要等待20秒验证,确认它没有自动重启。4.1、待host4中(新扩容的pod)出现init_done.flag后,编辑文件 /usr/bin/txsql/tools/txsql.sh,在函数restart_role的第一行添加 return 0,目的是禁止新pod自动重启服务。5.1、待host1的数据目录下出现init_done.flag后,编辑文件 /usr/bin/txsql/tools/txsql.sh,在函数restart_role的第一行添加 return 0,目的是禁止新pod自动重启服务。
2023-02-04 09:37:44
30
原创 TxSQL灾难情况下的数据恢复
6.2 在流水最大的节点上,保持mysql的启动状态,并使用mysqldump工具备份数据,命令如下,其中port是/usr/bin/txsql/etc/install_conf.sh配置文件中的MYSQL_LOCAL_PORT,密码是服务部署时随机生成的,获取方式见步骤6.2 获取mysql root密码。因IP发生变更的环境中,建议执行本步骤。,UUID是产生这条binlog的节点ID,START一般是1,END是每同步一个新的binlog就会+1的正整数,START-END就代表了一个正整数的区间。
2023-02-04 09:35:38
61
原创 不同集群用户赋权
/test_0329用户可将增删改查权限赋予其他用户(也可指定某个权限)//test_0329用户可将create权限赋予其他用户。//赋予test_0329用户对test库的创建、增删改查权限;//收回test_0329用户对test库的所有权限;//赋予test_0329用户建库间表权限;
2023-02-04 09:33:10
352
原创 更换txsql存储目录
请务必./txsql.sh list确认该操作已经成功完成。进入故障节点cpbd-ustr-core-nn01-200的pod,cd /usr/bin/txsql/etc/,编辑 install_conf.sh,确保cpbd-ustr-core-nn01-200的IP(即192.170.26.200)在 TxSQLNodes数组中不是第一个 (1、操作前检查cpbd-ustr-core-nn01-201、cpbd-ustr-core-nn01-202上的TxSQL处于启动状态且健康(多数派存活)。
2023-02-04 09:07:36
32
原创 不使用脚本的SQL Bulkload (hyperdrive)
目标 Hyperdrive 表需要预分 Region,我们通过采样来生成 Split Key 表。在 Inceptor 中建外表指向 HDFS 上的数据集。最后使用 bulkload 导入数据。将数据集上传至HDFS。
2023-02-02 20:13:15
17
原创 TDC ntp配置
同TDH集群不同的是,目前manager管理了集群ntp的配置,支持在界面配置,使用ntpserver来作为时间工具,而当前TDC集群使用的ntp工具为更新、更好的chrony,在集群安装部署过程中,会将集群第一台节点作为集群内部的时间服务器,所有节点都到该服务器去同步时间。但目前不支持界面配置和管理。# 查看 ntp_servers 是否在线。如果发现集群有时间不同步的情况,一般。添加外部时间服务器地址,重启服务。# 查看 ntp 详细信息。如何配置集群外部时间服务器。chrony常用操作。
2023-02-02 20:04:37
23
原创 CentOS根目录空间扩容操作
[root@controller ~]# fdisk -lDisk /dev/sda: 23.6 GB, 23593779200 bytes, 46081600 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk ide
2023-02-02 20:02:58
155
原创 ORC transaction表与Compact原理及常见故障诊断
如果compact所在进程中这三种thread都处于正常状态,对于基于mapreduce的compact,还要检查yarn上compact任务是否正常,之前碰到的情 况是yarn分配给inceptor的资源太多,导致compact任务一直无法完成,碰到这种情况需要调整yarn的资源分配来确保有足够的资源进行compact。时,compact threads内嵌在server中,compact任务是一个spark任务,我们可以在spark的4040页面上看到(compact任务的sql类似于compact。
2023-02-02 07:56:49
79
原创 Flume中同时使用Kafka Source和Kafka Sink的Topic覆盖问题
如果在一个Flume Agent中同时使用Kafka Source和Kafka Sink来处理events,便会遇到Kafka Topic覆盖问题,具体表现为,Kafka Source可以正常从指定的Topic中读取数据,但在Kafka Sink中配置的目标Topic不起作用,数据仍然会被写入到Source中指定的Topic中。比如:在Agent中的Kafka Source配置Topic为:...
2023-02-02 07:56:03
89
1
原创 docker 磁盘满了问题排查
进入 /var/lib/docker 目录,使用 du -sh 等查询磁盘空间大小的命令,一层层向下找,找到占用空间最大的一个目录,根据 docker inspect 命令和容器 layyer 名称,反推得到 container-id,确定了具体容器,然后重启容器释放磁盘空间或查看具体原因具体操作。b. 生产环境,建议进入到容器里面,确认下具体占用磁盘空间的目录,看是否是预期的,然后具体问题具体处理。例如:下图中的 257c6df 结尾的 container-id 就是我们要找的容器。
2023-02-01 11:56:18
143
原创 两个namenode都是standby解决方法
问题分析:查看namenode日志发现没有active的namenode,都是standby状态,需要重新格式化zkfc,让他重新选举。pod里面执行hdfs zkfc -formatZK,退出pod,刷新页面。问题描述:两个namenode都是standby,不能变成active。
2023-02-01 11:53:28
76
原创 IKAnalyzer 中文分词器
量级 | 的 | 中文 | 分词 | 工具包 | 工具 | 包 | 从 | 2006 | 年 | 12 | 月 | 推出 | 1.0 || 的 | 里氏 | 6.2 | 级 | 地震 | 已经 | 造成 | 至少 | 5427 | 人 | 死亡 | 20000 | 余人 |ikanalyzer | 是 | 一个 | 开源 | 的 | 基亍 | java | 语言 | 开发 | 的 | 轻量级 | 的 | 中。参数 2 : boolean useSmart , 是否采用智能切分策略。
2023-02-01 11:47:50
106
原创 solrcloud 高可用集群搭建
分别进入node12、node13、node14机器,通过vim tomcat8/bin/catalina.sh 打开catalina.sh文件,将tomcat启动项的 -Dbootstrap_confdir=/home/anu/tomcat8/solr_home/ustcinfo/conf 删掉,最终JAVA_OPTS参数如下。首先,我们在单机中已经将./solr-5.5.4/server/solr 下面所有的东西都拷贝到./tomcat8/solr_home目录下。
2023-02-01 11:40:19
85
原创 RabbitMQ三种Exchange
符号“#”匹配一个或多个词,符号“*”匹配不多不少一个词。因此“audit.#”能够匹配到“audit.irs.corporate”,但是“audit.*” 只会匹配到“audit.irs”。需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配。这是一个完整的匹配。如果一个队列绑定到该交换机上要求路由键 “dog”,则只有被标记为“dog”的消息才被转发,不会转发dog.puppy,也不会转发dog.guard,只会转发dog。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。
2023-02-01 11:30:54
20
hadoop-eclipse-plugin
2017-10-23
hadoop_dll_winutil_2.7.1.zip
2017-10-20
机器学习实战
2017-10-11
python基础教程
2017-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人