CentOs6.5测试Hadoop

Posted in 云时代 on July 30th, 2014 by Adam

References:

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/

http://wiki.apache.org/hadoop/GettingStartedWithHadoop

http://blog.csdn.net/fuwencaho/article/details/37727873

/////////////////////////////////////////////////////////////

=======
Test Single-node-cluster Hadoop on CentOS6.5
=======

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
yum remove java-1.5.0-*
yum install java-1.6.0-openjdk.i686
export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk
java -version

sudo groupadd hadoop
sudo useradd -g hadoop hduser

ssh-keygen -t rsa
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

/etc/sysctl.conf
# disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

cd /usr/local

http://mirrors.hust.edu.cn/apache/hadoop/core/hadoop-2.4.1/hadoop-2.4.1.tar.gz

cd /usr/local
$ sudo tar xzf hadoop-1.0.3.tar.gz
$ sudo mv hadoop-1.0.3 hadoop
$ sudo chown -R hduser:hadoop hadoop

//////////////////////////////

vi $HOME/.bashrc
=====================================
# Set Hadoop-related environment variables
export HADOOP_HOME=/usr/local/hadoop

# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk

# Some convenient aliases and functions for running Hadoop-related commands
unalias fs &> /dev/null
alias fs=”hadoop fs”
unalias hls &> /dev/null
alias hls=”fs -ls”

# If you have LZO compression enabled in your Hadoop cluster and
# compress job outputs with LZOP (not covered in this tutorial):
# Conveniently inspect an LZOP compressed file from the command
# line; run via:
#
# $ lzohead /hdfs/path/to/lzop/compressed/file.lzo
#
# Requires installed ‘lzop’ command.
#
lzohead () {
hadoop fs -cat $1 | lzop -dc | head -1000 | less
}

# Add Hadoop bin/ directory to PATH
export PATH=$PATH:$HADOOP_HOME/bin
===================================

/////////////////

$ sudo mkdir -p /app/hadoop/tmp
$ sudo chown hduser:hadoop /app/hadoop/tmp
# …and if you want to tighten up security, chmod from 755 to 750…
$ sudo chmod 750 /app/hadoop/tmp

/usr/local/hadoop/bin/hadoop namenode -format

echo “foo foo quux labs foo bar quux” | python ./mapper.py
echo “foo foo quux labs foo bar quux” | python ./mapper.py | sort -k1,1 | /home/hduser/reducer.py

if Error:
hadoop ssh: Could not resolve hostname
try:
sbin/start-dfs.sh

if Error:
cat: /usr/local/hadoop/conf/slaves: No such file or directory
try:
cp /hadoop/etc/hadoop/slaves /hadoop/conf/

if Error:
-copyFromLocal: /home/hduser No such file or directory
try:
/usr/local/hadoop$ hdfs dfs -mkdir -p /user/hduser

Test with 332KB text:
/usr/local/hadoop/bin/hadoop dfs -copyFromLocal /home/hduser/tmp/*.txt /user/hduser/adam/
/usr/local/hadoop/bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar wordcount /user/hduser/adam/*.txt /user/hduser/adam-out
/usr/local/hadoop/bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar wordcount -D mapred.reduce.tasks=16 /user/hduser/adam/*.txt /user/hduser/adam-out2

Result:
# /usr/local/hadoop/bin/hadoop dfs -cat /user/hduser/adam-out/part-r-00000 > words-count.txt
sort -n -k 2 -t \t words-count.txt

重复次数最多的单词如下:
development 11
element 11
effect 12
left 12
That 12
amount 13
heat 13
planet 13
vast 13
went 13
bright 14
get 14
last 14
Mount 14
put 14
against 15
right 15
ancient 16
just 16
present 16
yet 16
might 19
fact 21
almost 25
part 28
point 29
What 29
cannot 33
different 39
what 62
first 65
most 66
But 67
must 67
out 80
about 83
light 98
great 114
but 131
It 161
not 200
at 226
it 385

Tags: , ,

谷歌彻底被墙,该怎么办?

Posted in Google与Idea on June 8th, 2014 by Adam

作为谷歌的重度用户,最常用的谷歌服务包括:search、gmail和各种API。一旦谷歌被墙,会让人觉得手足无措。解决的办法应该有:

  1. 购买国外服务器,自己搭建SSH通道 ()
    1. 首先需要一个VPS或者ssh帐号,把公钥复制到VPS上省去每次登陆都需要输入密码:
    把本地~/.ssh/id_rsa.pub 或者id_dsa.pub的内容写入到远程服务器所需要登陆的账户的家目录下(如/root)~/.ssh/authorized_keys.

    也可以自己生成:$ ssh-keygen -t rsa -C “email@example.com”

    2. 利用ssh通道实现端口转发(详见http://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/ )
    ssh -qTfnN -D 7001 root@YOUR_SERVER

    3. 此时已经建立了通道,用firefox浏览器的autoproxy插件就可以实现翻gfw墙。

    4. 上面的只适用于firefox,要想使每一个软件都能利用ssh通道,可以借助proxychains软件,ubuntu下:
    sudo apt-get install proxychains
    编辑配置文件/etc/proxychains.conf:
    加上我们自己的proxy:
    socks5 127.0.0.1 7001

    这是用proxychains YOURAPP &就可以让任何软件翻gfw墙了,如使chrome能够访问twitter:
    proxychains chromium-browser

  2. 购买国外服务器,自己写代码,搭桥
    比如用PHP通过imap协议,获取/管理Gmail。
  3. 使用代理服务器
    即使用第三方提供的IP、端口,来访问谷歌。如前面的SSH通道,也可以自己搭建。

    首先在VPS上安装Squid

    # yum install -y squid
    然后简单地配置一下squid

    # vim /etc/squid/squid.conf

    ## 找到 http_access deny all,改为http_access allow all ##
    ## 默认端口为3128,如需修改,找到 http_port修改即可 ##
    接着启动squid即可

    # /etc/init.d/squid start

    设置putty

    打开putty,到Connection->SSH->Tunnels,填入Source port:3128,选择Dynamic,并点击add。

    点击左边菜单”Session”,输入Host Name,填入Saved Sessions,并保存,点击“open”,输入用户名和密码之后SSH通道就建立好了。

    在这里推荐使用Firefox浏览器

    我们设置一下firefox浏览器就可以用了

    打开火狐浏览器,到“工具->选项->高级->网络“,点击设置

    选择“手动配置代理:(M)”,在“SOCKS主机:”一栏填写:localhost,“端口:(T)”:3128,其它的默认,确定即可。

    基本上是设置完毕了,不过我们还得防DNS劫持啊,所以要修改一下本地的DNS服务器,可以用GOOGLE的:8.8.8.8 8.8.4.4。

  4. 购买VPN
    虚拟专用网络 (VPN) 是跨专用网络或公用网络(例如 Internet)的点对点连接。远程访问 VPN 连接使在家中或路上工作的用户可以使用公用网络(例如 Internet)提供的基础结构来访问专用网络上的服务器。站点间 VPN 连接(也称为路由器间 VPN 连接)使组织可以在各个独立办公室之间或与其他组织之间通过公用网络建立路由的连接,同时帮助保证通信的安全。

  5. 使用别的可以替代谷歌的,可信赖类似服务。如:微软的免费存储空间和邮箱,还有Bing搜索。
  6. 肉身翻墙

什么是DRM数字版权管理?

Posted in 分享 on May 15th, 2014 by Adam

根据wiki的解释,可以了解到:

虽然防止数字文档拷贝行为是不可能的,但是仍然可以限制包括:

  • 必须在指定计算机或播放机才能播放
  • 必须在特定的日期前才能播放
  • 播放的次数
  • 传输到播放机的次数
  • 刻录到光盘的次数
  • 以上限制的混合

一个简单的绕开音频文档DRM的方法就是用CD-burning软件把CD音频拷贝到硬盘上,转为无DRM的文档。

音频和视听资料的所有形式的DRM(除了交互式的,比如电子游戏)都遭受着“模拟漏洞”,也就是说,为了使观看者得以使用,数字信号必须转换为包含了光与声的模拟信号,如此,便可能有些内容被拷贝后,没有了可用的DRM来控制该形态下内容。换句话说,如果用户使用独立的程序把声音录到电脑里,弄成DRM-free文档格式的话,就可以播放付费的音频。

Nginx + php-fpm “504 Gateway Time-out”

Posted in Linux/Unix on April 7th, 2014 by Adam

Nginx log error like the following:
2014/04/06 23:54:32 [error] 13340#0: *25756 upstream timed out (110: Connection timed out) while reading response header from upstream

Add three timeouts, the problem is resolved.

nginx.conf:
http{
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
#fastcgi_buffer_size 128k;
#fastcgi_buffers 8 128k;
#fastcgi_busy_buffers_size 256k;
#fastcgi_temp_file_write_size 256k;
#fastcgi_intercept_errors on;
}

Tags: ,

console.log加图片加样式的办法

Posted in javascript on March 30th, 2014 by Adam

现在流行技术流,有些东西只给搞技术的人看。
前端网页console.log也可以加图片加样式,chrome浏览器支持。

//寻觅前端
var isChrome = /webkit/.test(navigator.userAgent.toLowerCase()) && /chrome/.test(navigator.userAgent.toLowerCase());
if(isChrome){
console.log("%c\n ","font-size:60px;background:url('http://sae..../console.gif?v="+$SAE.version+"') left top no-repeat;");
console.log('发现了SAE的什么BUG?\n还是对我们有什么好的建议?\n如果你也对技术充满热情。\n期待你的加入。http://sae....tId=177');
console.log("如有意加入,请在邮件标题中注明:%c["+$SAE.version+"]","color:#FF8A0B;font-weight:bold;");

}


24020140330232657

为什么PHP做网站要使用框架?

Posted in PHP on March 3rd, 2014 by Adam

如果用PHP做网站不用框架,下面问题如何解决?
* 相应代码缺少注释,文档化麻烦
* 前后台没有框架机制,不利维护和敏捷开发
* 没有缓存机制,无法快速切换各种缓存模块
* 没有错误处理机制,无法系统排错,无法准确定位错误点
* 缺少模板机制,代码HTML混杂,降低安全性

PHP做网站使用框架framework的好处

* 面向对象,扩展性好
* 模块化,可重用性高
* 底层封装,更少的代码量,更快速度开发
* 代码管理,文档化方便,也利于Unit test

目前流行的PHP框架:

* http://framework.zend.com/
* http://ellislab.com/codeigniter
* http://cakephp.org/
* http://yiiframework.com/
* http://laravel.com/
* http://symfony.com/

CakePHP 开发框架
如果你仍然需要编写面向PHP4兼容的代码,CakePHP 将是一个非常不错的选择, 在PHP 4 & 5的MVC式框架列表里面,CakePHP都曾经是最流行的。

Zend Framework框架
Zend Framework 是面对一些较有经验的开发者和从底层构建一些企业级应用程序而设计的。

CodeIgniter
CodeIgniter 是一个PHP5.2+ 的MVC框架,它体积小巧切具有丰富的文档资源。通常被称为“初学者框架”。

Symfony
Symfony 是最古老的PHP框架之一,他同样也是转为企业级Web应用程序而设计的。Symfony使用命令行代码生成工具来为项目快速生成所需的代码。
Symfony的网站上手机了大量的教程和范例代码,来帮助你熟悉掌握他们。

Yii Framework
Yii 是一个高度模块化,高性能的PHP5框架,专门为了Web应用程序而开发。Yii是其最主要一大特性,运行起来比Codeigniter和Zend框架要快。

Tags:

Windows下为PHP53安装memcached

Posted in PHP on February 25th, 2014 by Adam

我的环境是XP,apache2.2,php5.3.28。
先下载windows版的mamcached server: http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip

然后下载5.3.27版的php_memcache.dll:http://windows.php.net/downloads/pecl/snaps/memcache/3.0.9/php_memcache-3.0.9-5.3-ts-vc9-x86.zip

把php_memcache.dll解压,放入ext目录。把memcached.exe放在C盘memcached目录下。

以管理员身份运行DOS,安装memcached server: c:\windwos\memcached -d install 然后memcached -d start。打开服务列表,能看到mamcached server已启动。

重启apache,即可测试memcached php程序。

Tags:

Heroku Python提交失败的问题

Posted in 云时代 on January 21st, 2014 by Adam

本以为nodejs搞定,在Heroku上提交python应该易如反掌,哪知又出问题:
提交时出错提示:“Push rejected, no Cedar-supported app detected”。
出现这个错误是heroku无法判断app的类型,通常python需要在app根目录下有requirements.txt这个文件。
后来发现是我的用户目录下的.gitignore里屏蔽了所有text文件,增加一行!requirements.txt后问题解决。

Tags: , ,
RSS Feed