有时候,一个用了好久、一直好用的方法突然失灵,并且还折腾了几天,真的会逼疯人。
前几天我就遇到了这种破事:在Ubuntu开发机上自己升级IntelliJ idea到最新版之后,就无法再启动它。
启动时永远会崩溃,无论是重启系统、删除IntelliJ idea的本地缓存,或者使用回旧版,都无法再启动它(仿佛什么文件被"污染"了,再也回不去了),十分烦人。经过几天各种方法的尝试,终于解决了问题,我的解决办法不具有普适性,但如果你遇到了此类问题,或许可以为你提供一些解决思路。
综合
[原创] 和付费使用一年多的GitHub Copilot说再见
[原创] JAVA map-reduce job中,reduce()方法漏写 @Override 注解引起的问题
有一个JAVA写的map-reduce job,mapper输出的key、value类型分别为Text、NullWritable,所以reducer应该像下面这样写:
static class QuerySegmentResultFromKVReducer extends Reducer<Text, NullWritable, NullWritable, NullWritable> {
@Override
protected void setup(Reducer.Context context) throws IOException, InterruptedException {
}
@Override
protected void cleanup(Reducer.Context context) throws IOException, InterruptedException {
}
@Override
protected void reduce(Text key, Iterable<NullWritable> values, Context context) throws IOException, InterruptedException {
//TODO:
}
}
在这里,reducer输出的key、value类型都是NullWritable,我们不用关心,这不是本文的关注点。
[原创] 解决Map-Reduce job OOM(Java Heap Space)错误的一个方法:调整内存参数
无论是JAVA M-R job还是Pig M-R job发生Java Heap Space错误,一般情况下,我们要通过定位输入数据里的异常情况再想办法解决,例如,你在程序中对某个key做了GROUP操作,但输入数据中可能该key有大量记录,这就有可能导致job OOM。
这个问题取决于数据的具体情况,以及程序实现逻辑,所以这里就不提了。
本文要说的是:有时候程序实现/输入数据的问题“不是特别严重”,我们可以通过调整M-R job的内存参数来解决。
如何查看指定的Hadoop(HDFS)目录的配额
Hadoop目录的配额是指为了限制一个HDFS文件夹中所包含的数据块和名称空间元素(如子文件夹和文件)的数量而设置的最大值。简单来说,就是对一个文件夹中可存储数据的上限进行管理和控制,以便于维护整个系统的健康和性能。
通过设置适当的配额,管理员可以确保每个目录不会超出其可承受的容量范围,防止集群资源被长时间占用或滥用。同时也可以通过监视使用情况来优化系统性能并减少故障风险。
[原创] 用JAVA读取本地的TFRecord文件
[原创] 用JAVA程序读取本地的Hadoop sequence file
[原创] JAVA sun HttpServer在handler中返回含中文的response应该怎么处理
static class MyHandler implements HttpHandler {
@Override
public void handle(HttpExchange httpExchange) throws IOException {
String response = "test"; // 返回固定内容
httpExchange.sendResponseHeaders(200, response.length());
OutputStream os = httpExchange.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
[原创] Charles Proxy文章合集
Charles Proxy是一个HTTP代理/HTTP监视器/反向代理,它使开发人员能够查看其计算机和Internet之间的所有HTTP和SSL/HTTPS流量。这包括请求、响应和HTTP headers(其中包含cookie和缓存信息)。
[原创] 用Charles Proxy抓包iOS App的数据
查看Charles Proxy文章合集,请点击这里。
➤ 使用场景
当我们需要分析 iOS App 发送接收的数据时,需要对App进行抓包。可以在 iOS 上安装抓包工具来完成这个工作,更常见的做法是在PC上安装Charles Proxy之类的软件,再对 iOS 进行一定的配置让这二者关联起来,从而可以在PC上完成抓包工作。毕竟在PC大屏上进行数据分析比触屏的 iOS 设备更为方便。
其基本原理是:Charles Proxy运行起来后,会在PC上启动一个代理服务器,在 iOS 设备上配置通过这个代理服务器来访问网络,那么iOS上的HTTP流量都将走过Charles Proxy,自然也就被Charles Proxy截获了数据。另外,对于HTTPS的加密流量,Charles Proxy还提供了一个SSL证书,把这个证书安装到 iOS 设备上,就可以让 iOS App 发送的HTTPS流量被Charles Proxy 解密,我们就能分析App发送的数据明文。