VirtualBox配合Vagrant使用

环境:

  • Mac OSX: 10.9.5
  • VirtualBox: 4.3.24
  • Vagrant: 1.7.2

常用命令

初始化和启动

mkdir PROJECT_FOLDER
cd PROJECT_FOLDER
vagrant init hashicorp/precise64
vagrant up

修改Vagrantfile 文件后重启

vagrant reload

关闭虚拟机

vagrant halt

删除虚拟机

vagrant destroy

创建私有的box

首先创建一个VirtualBox的虚拟机,配置如下

  • Name: precise64
  • Type: Linux
  • Version: Ubuntu64
  • Memory Size: 512MB (to taste ...
more ...


Mac下升级Nodejs

突然发现系统中的nodejs版本比较旧,想升级一下但又不想下载安装包一步一步安装, 发现还是可以很简单用命令行升级的。

首先得清理npm的缓存

sudo npm cache clean -f

安装 n 包来升级nodejs

sudo npm install -g n

升级nodejs 到最新版本

sudo n stable
more ...

使用VirtualBox搭建 Hadoop 测试集群

环境:

  • 物理机: i7 4核8线程,16G 内存的组装兼容机
  • VirtualBox Host: Ubuntu 14.04
  • VirtualBox: 4.3.20
  • VirtualBox Guest: CentOS 6.6 x86_64

本文的目的只是为了测试和理解Hadoop在集群机器中的运行过程。具体针对物理机的Hadoop 集群的一些操作不能以本位作为参考。

首先安装一台VM, 设置好之后,用linked clone 3台,这3台只需改一下IP, hostname 和一些必要的配置,这样操作的话可以减少很多时间和节约Host机的硬盘空间。

总共4台虚拟机,第一台 6G内存,其他2G, 因为我的Host机器只有16G 内存,这样的 分配应该不至于内存溢出。第一台机器因为承担比较重的任务,所以分配的内存比其他 三台都要高。

创建第一台机器,也就是克隆的原型

如果之前没有没有安装过CentOS, 国内同学可以去理工大服务器下载。

http://mirror ...

more ...

Mac OSX 下 Hadoop 使用本地库提高效率

环境:

  • Mac OSX: 10.9.5
  • Hadoop: 2.6.0
  • Java: 1.7.0_71

Mac OSX 下运行Hadoop老出现以下警告, 其实就是缺少本地库

14/12/05 14:40:27 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

安装 protobuf

首先安装protobuf, 不然编译Hadoop会报错, 从以下地址下载

https://protobuf.googlecode.com/files ...

more ...

Mac OSX 下 Hadoop 单节点集群配置

环境:

  • Mac OSX: 10.9.5
  • Hadoop: 2.6.0
  • Java: 1.7.0_71 (1.8.0_25)

大数据是未来的趋势,要顺势而学之。

本文是参考Hadoop文档,但其描述为Linux写的。所以Mac是否适用容我来验证一下。 而且Hadoop的官方测试JDK只支持到1.7.0, 1.8.0是否成功也一起试了。

2014-12-05 Update: 1.8.0 虽然支持,但在用Maven编译Native Library的时候遇到很多 问题。所以最好转回1.7.0_71。

参考:

  • http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist ...
more ...

Flask Framework初探

环境:

  • 操作系统: Mac OSX 10.9.5
  • Python: 2.7.8
  • Flask: 0.10.1
  • 开发工具: Eclipse Luna + Pydev 3.6

之前对Pyramid, Django都已经有一些项目经验了,这次研究一下Flask的易用性如何。 说不定以后能在小项目上用的上。 本文主要参考一下两个网页:

  • http://flask.pocoo.org/
  • http://flask.pocoo.org/docs/0.10/quickstart/

首先建立开发的环境

假设我们Base Dir 为 /temp/flaskstudy

cd /temp/flaskstudy
virtualenv env
mkdir ...
more ...

Shadowsocks 搭建

推荐使用digital ocean的vps, 5刀开户再送两月。

安装shadowsocks

sudo vi /etc/apt/sources.list
deb http://shadowsocks.org/debian wheezy main

sudo apt-get update
sudo apt-get install shadowsocks-libev

配置

sudo vim /etc/shadowsocks-libev/config.json

{
    "server":"0.0.0.0",
    "server_port": THE_NUMBER_YOU_LIKE,
    "local_port":1080,
    "password":"you_password",
    "timeout":600,
    "method":"aes-256-cfb"
}

启动

sudo service shadowsocks-libev ...
more ...

Goagent 穿墙术

使用RC4加密数据

  1. 编辑server\python目录下的wsgi.py文件,前十行中有 __password__ = '' , 引号内填入你要设置的密码,上传服务端的appid必须带密码上传, 否则开启rc4后,goagent无法正常运行。

  2. 运行server目录下的uploader.bat重新上传你的appid。

  3. 修改local目录下的proxy.ini里面的[gae]段落为

    validate = 1 
    options = rc4 //*开启rc4加密
    

上传失败处理

如果你连appengine.google.com都联不上的话,上传goagent服务端的时候就会出现以下问题,

urllib2.URLError: <urlopen error [Errno timed out] counld not connect to 'appengine.google.com'>

典型的有鸡先有蛋先的话题,解决办法只能找可以连接的当一下代理

http_proxy=http://127.0.0.1 ...
more ...

TinyProxy应用

应用场景

阿里云的机器, 有很多是没有广域网 IP的,想更新一下系统或者安装新的程序都是问题, 这时候可以买一台带有广域网IP的机器,安装tiny proxy来进行系统更新

安装

sudo apt-get intall tinyproxy

配置

只监听到内部的网卡,只允许自己其他小伙伴使用

sudo vi /etc/tinyproxy.conf


Listen 10.xx.xx.xx
Allow 10.yy.yy.yy

重启服务

sudo service tinyproxy restart
more ...