hdfs 实时 Decommissioned 节点
前置工作在hfds-site.xml 中确保 dfs.hosts, dfs.hosts.exclude 都存在.假设为 /tmp/includes ,/tmp/excludes上下线节点只需要修改 Namenode 的 /tmp/includes ,/tmp/excludes 文件, 也可以同步修改所有NN, DN节点下线节点假设要移除的节点为 dn1, dn1 需要同时存在于 /tmp/includes ,/tmp/excludes执行 hdfs dfsadmin -refreshNodes 即可不重启 hdfs, 将 DN节点下线检查 hdfs web ui, 即可看到节点变为 Decomission 或者 Decomissioning 状态重新上线节点将 dn1 从 /tmp/excludes 中移..
更多自己动手实现一个可以运行在JVM上的编程语言
众所周知,JVM虚拟机被设计为可以执行栈式指令的机器。因此任何一个语言只要编译之后得到的字节码符合JVM的标准,就可以在JVM上执行,例如Kotlin、Groovy、Scala、Clojure。我们自己设计一款语言,并命名为Jinx,它支持类定义、变量定义、变量打印。它的语法解析逻辑如下12345678910111213141516171819202122232425grammar Jinx;@header {package com.nosuchfield.jinx.code;}jinx: CLASS ID LEFT_BR classBody RIGHT_BR EOF;classBody: (variable | print)*;variable: VARIABLE ID EQUALS value;pri..
更多一日一技:从Pandas DataFrame两个小技巧
今天我从网上下载了一批数据。这些数据是Excel格式,我需要把他们转移到MySQL中。这是一个非常简单的需求。正常情况下,我们只需要5行代码就能解决问题:1234567import pandas as pdfrom sqlalchemy import create_engineengine = create_engine('数据库链接URI', echo=False)df = pd.read_excel('Excel文件路径')df.to_sql(name='表名', con=engine)但我发现,这个下载的文件有两个工作簿(Sheet),第一个Sheet叫做Overall,第二个Sheet叫做Result。我们需要的数据在Result这个工作簿中。那么,在使用Pandas读取时,需要这样写代码:1df..
更多一日一技:如何同时使用多个GPT的API Key?
相信很多同学或多或少都在Python中使用过GPT API,通过Python安装openai库,来调用GPT模型。OpenAI官方文档中给出了一个示例,如下图所示:如果你只有一个API账号,那么你可能不觉得这样写有什么问题。但如果你想同时使用两个账号怎么办?有些同学可能知道,微软的Azure也提供GPT接口,在Python中也需要通过openai库来调用,它的调用示例为:当你全局设置了openai.api_type = 'azure'以后,你怎么同时使用OpenAI的GPT接口?这两个文档中给出的示例写法,都是全局写法,一但设定以后,在整个运行时中,所有调用GPT接口的地方,都会使用这里设置的参数:123import openaiopenai.xx = yy有些同学不知道怎么在Python SDK中同时使..
更多一日一技:从PDF完美提取表格
在之前很长一段时间,从PDF文件中提取表格都是一个老大难的问题。无论你使用的是PyPDF2还是其他什么第三方库,提取出来的表格都会变成纯文本,难以二次利用。但现在好消息来了,专业处理PDF的第三方库PyMuPDF升级到了1.23.0,已经支持完美提取PDF中的表格了。还可以把表格转换为Pandas的DataFrame供你分析。PyMuPDF的使用非常简单,首先我们来安装:1pip install pymupdf pandas openpyxl其中安装pandas是为了能让它转成DataFrame,安装openpyxl是为了能把结果导出为Excel。我们来看一个测试的PDF文件,如下图所示:其中表格在第5页,那么我们编写如下代码,读取第五页的表格:1234567import fitzdoc = fitz.o..
更多群晖6.2.4 安装GitLab
Foreword 折腾一下群晖,上一次折腾已经是2020年了。 硬件升级 硬盘扩容 最初没考虑那么多,使用的是RAID1,两个4T盘,实际可用比4T小一点,一直也没用满。 由于后续有大量视频素材存储,所以这点内容完全不够看了,需要扩容。组了4张8T盘,打算切换成RAID5。 DS918+只有4盘位,所以实际操作是先插入2个8T盘,进行扩容。 群晖本身早就考虑到了扩容和各种替换盘的情况,自带的帮助中都有各种情况的说明,第一步就是插入2个8T,扩容,然后将当前的盘从RAID0转换到RAID5。 这个大概花了一两个小时就完成了。 接着就是抽掉一个4T盘,插入一个新8T,进系统以后会提示修复,修复即可。这个时间非常长,大概要2天的样子,如果数据多估计就要更久了。 最后就是再抽掉一个4T..
更多使用ANTLR4格式化JSON
JSON由对象和数组组成,对象是一个Key和Value的关系映射,数组则是由多个value组成。对象使用大括号{}表示,数组则使用中括号[]表示。因此我们可以得到对象和数组的表达式object: '{' '}' | '{' kv (',' kv)* '}';array: '[' ']' | '[' v (',' v)* ']';其中kv表示一个KeyValue的关系映射,多个KeyValue中间使用逗号,分割,一个对象可以不包含元素,或者包含一个或多个元素。v表示一个元素,数组的多个元素中间同样使用,分割,数组可以没有元素,也可以包含一个或多个元素。kv由key和value组成,key只需要是一个字符串就可以,而对象的value和数组的value一样,支持以下多种元素对象数组文本数字truefalsenu..
更多黑苹果 AMD GPU 功耗一直很高
通过注入 DeviceProperties 实现Notice不需要 Whatevergreen而且当机型为 iMacPro1,1 或 MacPro7,1 时, DRM 也可以正常工作备份现有 OC 配置文件查找 PCIe 路径打开 Hackintool点击 PCIe 页找到显卡对应的 PCIe 路径, 复制(也可以直接在 OCC 里面手动选择对应的路径)编辑 plistNavi 架构的卡还需要添加 SSDT-NAVI.aml 到 EFI/OC/ACPI 和 plist 中 修改 model 的值, 可以给显卡改名称 禁用 Whatevergreen.kext删除 boot-arg agdpmod=pikeraDeviceProperties -> 显卡 PCIe 路径 -> 添加 ->..
更多RouterOS的一些基础配置指南
Foreword 记录一些折腾RouterOS时遇到过的奇奇怪怪的问题 RouterOS的工业设计水平很渣,但是流畅度max 基础配置 RouterOS的一些知识库,可以参考这里 https://mp.weixin.qq.com/mp/homepage?__biz=MzIwOTIzMzA4OQ==&hid=4&sn=26ae13d6e36d090c7377faddfb70cdd9&scene=18 桥接Fit AP模式 https://docs.qq.com/doc/DYmdPcWRVU2hhcGty 拨号路由 https://docs.qq.com/doc/DYmV3a296Z1BrY0lS 端口隔离 https://wiki...
更多UBNT的一些基础配置指南
Foreword 记录一些折腾UniFi时遇到过的奇奇怪怪的问题 UniFi和RouterOS比起来,感觉贼难用,特别是采用,发现设备响应非常慢,急死个人。 经常会出现站点文件里的设备采用失败,对不上了。 虽然UniFi的AC设计的非常高大上,但是真正需要配置的东西却都隐藏起来,他面向的更多的是小型环境,小白环境。而他的易用程度如果和国内的比,那简直惨不忍睹,不知道为啥国外的设计思路都非常繁琐,不够直接。想做到易用却又端着自己的设计风格和程序框架上的思路,自我矛盾,而想要专业却又远不及真正专业的大厂。这也导致了UniFi处于市场中不上不下的位置。 采用 UniFi的AP设备新版本采用必须把设备连接到有dhcp的网络中才能正常采用,否则大概率采用会失败。 最老的设备恢复出厂设置以后是自带DHC..
更多