我是谁,我在哪,这个月我干了啥。。 scala和spark 安装scala和配置sbt scala语法 scala spark elasticsearch-hadoop spark-submit hadoop hdfs简单使用 java spring加载properties java语法 时间戳格式化 scala和spark 安装scala和配置sbt 进入idea,Preferences->Plugins->Scala,安装这个插件 创建工程的时候需要注意,选择正确的sbt版本和scala版本 配置里几个比较重要的文件: build.properties, plugins.sbt, build.sbt scala语法 scala这语言确实有点飘,可以和java混用,写起来比java快很多 // object相当于是static类,class就是普通的需要创建实例的类, 如果是class,里面是不能设置某个函数是静态的def main(args: Array[String]): Unit = { // Unit表示void类型 val inputF
发表于 2017-12-24 14:32:24 | 条评论 | 阅读次数:21
protoc安装 https://github.com/google/protobuf clone一份下来,然后 sudo apt-get install autoconf automake libtool curl make g++ unzip 注意看下有没有漏掉某个依赖文件,这个挺蛋痛的。 之后执行目录中的 ./autogen.sh 之后就有configure了,然后安装,有点慢,稍微休息一下下 ./configuremakemake checksudo make installsudo ldconfig # refresh shared library cache. proto编译器就算安装好了。 我们可以来试试写个 test.proto syntax="proto3";package qwb;message Point { int32 x = 1; int32 y = 2;} 然后 protoc test.proto --python_out=. python的依赖文件安装 之后就能发现./目录里有test_pb2.py文件。 注意,protoc最好
发表于 2017-11-17 20:45:48 | 条评论 | 阅读次数:26
必须要在开发机上跑程序,最后还是成了vim党…. tmux的配置 tmux是为了一次ssh,可以同时多个窗口写代码或者shell,但是只占用一个连接。 而且如果中间断开了,下一次很容易就能恢复回去。 yum install tmux 具体根据系统而言,这个很好说,不解释 接下来就需要配置 ~/.tmux.conf 文件 setw -g mode-keys vi # 开启hjkl来控制复制模式的光标setw mouse-select-pane # 开启鼠标选择分栏 然后前缀+: ,输入 source-file ~/.tmux.conf 刷新配置文件 然后有一堆快捷键需要记录: 默认前缀快捷键是ctrl+b,任何tmux操作都需要先输入前缀快捷键 下面的文中将省略前缀键 [ 开启复制模式,按q或者esc退出 ] 粘贴 number 直接切换到具体的tab c 创建新的tab % 横向分栏 “ 纵向分栏 q 选择分栏具体编号 Left Right Up Down 切换分栏 s 查看session情况,并切换 z 最大化,或者还原 下面这些命令是直接这终端里的 tmux new
vim
发表于 2017-11-16 00:57:22 | 条评论 | 阅读次数:59
目标:A电脑连接B电脑无需密码 第一步:生成私钥/公玥对 ssh-keygen -t rsa -P '' ssh连接是默认开启通过公钥和私钥这种连接方式连接的。 ‘’里面是私钥的密码,用于使用私钥时的二次验证,我们目的是不输入任何密码,所以这里留空。 默认生成的公钥地址为.~ssh/id_rsa.pub,默认生成的私钥地址为~ssh/id_rsa 私钥应存在A电脑中,然后我们把公钥复制到B电脑里去,如放到~/id_rsa.pub 第二步:修改权限, 添加私钥 这一步非常的重要,否则会一直失败。 保证两台电脑的.ssh的权限为700,A电脑中的私钥为600 A电脑使用命令 ssh-add ~/.ssh/id_rsa 把私钥添加到ssh中 第三步:配置B电脑的公钥 cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 即在authorized_keys中追加这次的公钥 第四步:连接 A电脑直接ssh B电脑,如果前面的配置正确,就能做到无密码登录。 如果之前第一步的-P中填了二次验证的密码,只需要输入二次验证的密码,就能登录。
发表于 2017-11-02 14:09:56 | 条评论 | 阅读次数:25
sudo vim /etc/resolv.conf/*nameserver 114.114.114.114*/sudo service networking restart
发表于 2017-11-02 11:10:05 | 条评论 | 阅读次数:24
上次被网易面试官怼的好惨,,决定认真学一下linux网络编程 详解 有用的结构体 有用的socket函数 有用的辅助函数 代码 socket tcp ipv4服务端代码 socket tcp ipv4客户端代码 详解 有用的结构体 TODO 有用的socket函数 TODO 有用的辅助函数 TODO 代码 socket tcp ipv4服务端代码 因为使用了pthread,所以编译时参数需要加-pthread cmake文件 cmake_minimum_required(VERSION 3.7)project(SocketServer)set(CMAKE_CXX_STANDARD 11)set(SOURCE_FILES main.cpp)set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")add_executable(SocketServer ${SOURCE_FILES}) #include <string>#include <string.h>#include
C++
发表于 2017-09-09 23:52:44 | 条评论 | 阅读次数:190
redis也提供事务,但是和传统的数据库有着一些区别。 事务 用MULTI开启事务,EXEC关闭事务。 redis的事务主要是保证命令要么执行,要么都不执行(原子性)。 其实就是把命令刚开始只是发送到远程,但是并没有运行,直到收到EXEC,把刚刚的所有命令都一次性运行。 在MULTI和EXEC中,如果过程中的代码出现了错误,将有2种可能的情况。 1.如果编译上的错误,那么所有命令都不会被执行。 2.如果是运行上的错误,那么除了错误的那条命令,其他所有命令都会被执行。 redis并没有提供回滚的函数。 通常可以考虑打日志,然后用业务来做到回滚。 所以我们可以发现,redis并不能太好的保证一致性,所以用redis来做强一致性的事情,本来就是非常不符合设计的! 乐观锁(WATCH) WATCH可以用来监视一个key。 监视之后,在之后出现的第一个事务中,如果这个key的值在这个事务外被修改了,那么执行EXEC时将失败。所以通常都会设置retry(注意这里redis没有自动回滚这套操作,所以可能要注意一点)。 其实WATCH就是一个乐观锁。在WATCH一个key时,会记录下这个key的版本号。 之后
发表于 2017-08-28 20:12:43 | 条评论 | 阅读次数:119
Copyright © 2017 - 2018 qwb's blog
blog.csustacm.com All Rights Reserved
Powered by qwb Contact me