blueyi's notes

Follow Excellence,Success will chase you!

系统环境为Ubuntu 16.04.2 x86_64,已经配置好了Hadoop 2.7。配置Hadoop集群环境可以参考这里

约定将spark安装在/usr/spark,之前安装的Hadoop在路径/usr/hadoop,这里直接在已经配置好的三台hadoop上配置spark,依然将master节点做为master及worker,其他2个节点做为worker。
Spark官方下载地址:http://spark.apache.org/downloads.html

Read more »

为了Spark使用HDFS,所以先配置Hadoop集群,系统参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
NAME="Ubuntu"
VERSION="16.04.2 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.2 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

Hadoop版本为官方当前最新的2.7.3:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz

Read more »

SSH的免密钥登录原理其实就是SSH认证时将自己的公钥提前存储在需要被访问主机(可以是本主机,也可以是远程主机)的认证文件中,默认该文件路径为:~/.ssh/authorized_keys。该文件中存储了哪台主机的公钥,那么那台主机就可以通过SSH免密钥登录本主机。
所以过程就是首先生成本机公钥和私钥,然后将公钥插入到需要免密码访问的主机的~/.ssh/authorized_keys文件中

Read more »

Python可以使用pyenv管理并切换同一系统下的多个python解释器版本,pyenv支持非常多的python版本,也包括各大知名python的衍生版,如anaconda。而virtualenv可以为每个文件夹指定一个特定的python环境,各文件夹的python环境独立,共用一个统一的python基础版本,可以用于隔离不同项目的包环境,及包版本。当然pyenv也支持为不同的文件夹指定不同的python版本,但不同文件夹下的同一个python版本共用环境,所以pyenv与virtualenv结合使用,便可以实现任意版本下的环境隔离随意切换,pyenv自带virtualenv插件。
可以简单理解如下:

  • pyenv 实现Python版本管理
  • virtualenv 实现Python环境隔离
Read more »

由于virtualbox和vagrant最近升级win10之后总是出各种状况,所以想换成vmware来进行跨平台linux开发环境的搭建。但在windows下的VMware添加共享文件夹之后在Linux系统中总是无法找到挂载后的目录,手动挂载后会出现protocol error等错误。其实解决方法很简单。

Read more »

FFmpeg可以用来处理音视频的编解码,通过对GPU硬解码的支持,可以加速编解码,但需要手动编译FFmpeg时加入对GPU的支持。这里参考Nvidia官网和FFmpeg官网文档进行编译FFmpeg的编译。 编译ffmpeg时启用CUVID,其中包括NVENCODE API和NVDECODE API,ffmpeg中通过nvenc来来提供对Nvidia显卡的支持,同时添加NPP支持来增强编解码性能。

Read more »

系统为ubuntu 16.04.1 x64,具体参数如下:

1
2
3
4
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"

系统为Ubuntu 64位服务器版的最小化系统
安装Nvidia官网最新版本的CUDA 8(2016.12.19)
下面分别使用Nvidia官方手册中使用deb源的方式安装,和根据Nvidia提供的二进制包配合双显卡技术的方式安装。前者更新更方便,后者针对双显卡最方便。服务器系统推荐使用第一种方式安装,笔记本建议使用第二种方式,因为可以实现双显卡,集显更省电。
如果只是为了玩游戏需要配置Ubuntu下的Nvidia和intel双显卡,也可以直接跳到双显卡切换的配置部分

Read more »

UFW,即Uncomplicated Firewall,是基于iptables实现的防火墙管理工具,所以实际上UFW修改的是iptables的规则。之所以不直接使用iptables,而要通过UFW进行管理是因为iptables的规则对于新手入门来说有点难,UFW做了很好的包装。

Read more »

依然是首先给出参考网站,感觉还是让看到的人,直接去看原作会更快,以免疏漏不是我所关注的重要内容:
CMake官网:https://cmake.org/,官网有个tutorial
另一个CMake Turorial:https://www.johnlamp.net/cmake-tutorial.html
CMake by Example:http://mirkokiefer.com/blog/2013/03/cmake-by-example/
CMake官方WIKI:https://cmake.org/Wiki/CMake

首先要搞清楚出cmake是一个跨平台的项目管理工具,用来生成其他项目构建工具所需要的规则文件。例如gnu的make可以根据makefile文件中定义的规则来对C/C++项目进行编译、链接等(较多地用于c/c++项目),qmake可以根据pro文件中定义的规则对qt项目进行构建,而VS则可以根据VS的项目属性文件对其管理项目调用自身的编译器进行编译。那么这些编译文件就可以用cmake来生成,cmake可以根据CMakeLists.txt中定义的规则来生成相应的项目构建平台所需要的规则文件。以make来举例,make可以通过makefile中定义的规则调用c++编译器对项目进行编译并链接并生成可执行文件,相当于项目的编译等构建工作依然由各编译器来完成,而具体如何编译(例如使用的头文件在哪,链接的库去哪找等)则由make根据makefile中定义的规则来调用g++进行编译,而项目构建工具make所需要的makefile则由cmake来生成。makefile可以手动来写,但当项目非常大时,makefile可能会很复杂,此时就可以通过cmake根据MakeLists.txt来自动生成makefile。而假如该项目还要转移到win平台下,又需要使用VS来进行对该项目编译,则CMake可以根据MakeLists.txt来生成VS的项目属性文件(通常后缀是解决方案.suo、项目.vcxproj),然后即可使用VS直接打开解决方案文件

Read more »
0%