首页
学习
活动
专区
工具
TVP
发布

IT杂记

本专栏记录了本人在IT方面的各个领域的学习笔记或是遇到问题的解决思路和方法,等等..
专栏作者
55
文章
105406
阅读量
33
订阅数
计算球面经纬度点与线段的距离公式
先求出弦BC,AB,AC的长度,将BC,AB,AC看做平面的三角形的三条边,这是问题就变成求三角形AEF的点A到边EF的垂线的长度。
囚兔
2019-01-30
2.2K0
CentOS6配置odbc访问Oracle
安装unixODBC yum install unixODBC 安装Oracle odbc client 到oracle官网下载连接为http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html 下载如下四个文件 oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm or
囚兔
2018-05-30
1.5K0
Git 对象存储结构分析
1. 前言 Git-Internals-Git-Objects | 从该文中可以了解到git 对象有:blob (数据块), tree (目录树), commit (提交)。 本文通过一个示例,以blob为例来讨论对象的存储结构。示例采用的git版本为2.17 。 2. 实践讨论 2.1. 生成Blob对象文件 首先创建一个测试git仓库 $ mkdir hello $ cd hello $ git init 然后通过创建一个文件 test,test的内容为 "hello", 可以看到test文件的字节
囚兔
2018-05-30
4630
Storm客户端提交任务失败原因分析
storm客户端提交topology失败: java.lang.RuntimeException: org.apache.thrift7.transport.TTransportException at backtype.storm.StormSubmitter.submitTopology(StormSubmitter.java:141) at backtype.storm.StormSubmitter.submitTopologyWithProgressBar(Storm
囚兔
2018-05-30
1.9K0
Git 对象存储结构分析
Git 对象有:blob (数据块), tree (目录树), commit (提交), tag (标签)。
囚兔
2018-04-21
3.1K2
通过Java程序提交通用Mapreduce无法回收类的问题
问题描述 上次发布的博客 通过Java程序提交通用Mapreduce,在实施过程中发现,每次提交一次Mapreduce任务,JVM无法回收过程中产生的MapReduceClassLoader对象以及其生成的类。 通过定制如下代码来实现多次任务提交测试: public class JobSubmitTest { public static void submit(String classPath, String mainClassName) { ClassLoader originC
囚兔
2018-03-29
9811
Mapreduce 任务提交源码分析1
提交过程 一般我们mapreduce任务是通过如下命令进行提交的 $HADOOP_HOME/bin/hadoop jar $MR_JAR $MAIN_CLASS hadoop脚本中有如下代码 elif [ "$COMMAND" = "jar" ] ; then CLASS=org.apache.hadoop.util.RunJar //... 略 exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@" 可以看到hadoop命令提
囚兔
2018-02-08
9910
通过Java程序提交通用Mapreduce任务并获取Job信息
背景 我们的一个业务须要有对MR任务的提交和状态跟踪的功能,须要通过Java代码提交一个通用的MR任务(包括mr的jar、配置文件、依赖的第三方jar包),并且须要在提交后跟踪其状态和历史,所以在提交后程序须要拿到改提交的MR的JobID。 解决方案 首先 可以想到的是通过  ${HADOOP_HOME}/bin/hadoop jar 命令来提交,并从命令执行的标准输出中取到jobID,这样确实可以解决,但是这样做有几个问题: 须要通过Java程序去启动一个子进程,并且要监控它的标准输出,性能不会很好,有点
囚兔
2018-02-08
2.3K1
TThreadedSelectorServer介绍及Direct Memory OOM分析
一、TThreadedSelectorServer线程模型: 该服务会启动1个AcceptThread, 2个SelectorThread(默认为2个,可设置),一个woker线程池(池的大小可设置)
囚兔
2018-02-08
7500
使用Nginx代理thrift NIO实现SSL链路加密
1 目标说明 1.1 调研目的 本次调研主要为了解决两个问题: thrift提供的SSL API只支持BIO(阻塞式IO),而我们使用的是NIO API,希望能在不改变IO模型的前提下对链路进行加密;
囚兔
2018-02-08
2.9K0
使用Nginx代理restful实现SSL链路加密
1 目标说明 1.1 调研目的 本次调研主要为了解决两个问题: 不需要对restful的web容器做任何配置,实现对restful链路进行加密; 方便restful应用进行扩展,采用多个服务进行负载均
囚兔
2018-02-08
1.2K0
git+github创建分支&提交并贡献代码(linux环境)
根据github官网的教程,创建一个Spoon-Knife项目的分支https://github.com/octocat/Spoon-Knife 1、在github创建指定项目分支 登陆github,进入上述Spoon-Knife项目网址,点击右上角“Fork”按钮,稍等片刻便在自己的库中创建了Spoon-Knife的分支,地址为https://github.com/myusername/Spoon-Knife.git 2、克隆项目到本地 由于此时项目只是存在与远程GitHub,所以必须克隆到本地用于开发,
囚兔
2018-02-08
1.4K0
Storm消息处理可靠性保证
Storm可以保证每一个从spout发出的消息能被完全处理。本章描述storm是如何完成这个保证以及用户如何从storm的可靠性能力获益的。 消息“完全处理”的含义 一个tuple从spout发出后可能会触发成千上万的tuple基于它而创建。以work count的topology为例考虑下: TopologyBuilder builder = new TopologyBuilder(); builder.setSpout("sentences", new KestrelSpout("kestrel.bac
囚兔
2018-02-08
8770
Slf4j+Logback配置文件变量使用小记
项目中须要根据不同的模块,产生出不同的日志文件名,使用的是同一logback.xml配置文件,这里简单调研,说明两种实现方式,以及两种实现方式的区别。 测试准备 建立一个maven项目,并添加slf4j-api, logback-core, logback-classic 依赖。 <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api<
囚兔
2018-02-08
1.4K0
Linux主机之间ssh免密登录配置
修改ssh配置 每台linux主机修改配置文件/etc/ssh/sshd_config RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys 启用这三项配置,即去掉这三项的注释 配置spiro1主机到spiro2主机的免密登录 hosts配置 前置条件,主机名为spiro1和spiro2 先配置两台主机的/etc/hosts 192.168.231.101 spiro1 192.
囚兔
2018-02-08
2.1K0
Zookeeper笔记二:Watches
Watch event只触发一次; Watch event是由服务端发送给客户端的(异步发送),并且提供一顺序保证:即当为某个数据的改变设置了Watch,客户端不会在Watch事件触发之前看到这个改变; Watch event 只在设置了Watch的数据发生改变时触发; 由于Watches只触发一次,并且client在获取到event和注册一个新的Watch之间有个延迟,所以你不可能可靠的看到每一次znode的变化。比如:当在获取到一个event和注册一个新的watch之间服务端的znode发送了多次变化的
囚兔
2018-02-08
6410
INET_ATON()函数在MySQL5.6版本和5.7版本的差异
问题 ### The error occurred while setting parameters ### SQL: insert into t_gateway(         gw_address,         type_name,         host_node_id,         port,         decoder_class,         handle_class,         sdk_file_path,         forward,         forwa
囚兔
2018-02-08
1.4K0
通过Java代码来模拟乘法器
cpu中乘法器的执行流程 Java模拟乘法器代码 /** * 32 bit multiplier mock * @param a * @param b
囚兔
2018-02-08
1.1K0
MySQL INSERT INTO...ON DUPLICATE KEY UPDATE的使用
1. 语法规则为: INSERT [INTO] tbl_name [(col_name,...)] {VALUES} ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col_name=expr [, col_name=expr] ... ] 2. 在UPDATE字句中可以使用VALUES(col_name)函数来引用INSERT字句中的VALUES值; 比如: INSERT INTO
囚兔
2018-02-08
7540
Windows查看文件句柄
图形界面方式     打开任务管理器      2. 性能tab,点击链接打开资源监视器;     3. 现在cpu tab,关联的句柄后面的输入框可以输入你要搜索的文件路径,可模糊匹配; 命令方式
囚兔
2018-02-08
6.1K0
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
【玩转EdgeOne】征文进行中
限时免费体验,发文即有奖~
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档