2013年5月月 发布的文章

Hadoop学习新人必看

Hadoop新人必看:
新人困惑:
大家对整个云计算没什么感觉,根本就不理解为啥hadoop这么设计,hadoop和云计算是什么关系 只是听人说 好
但是好在哪里 根本不知道
下面给出一个简易入门步骤:
1、推荐看下 张荣典的视频
《云计算之前生今世与未来》,视频地址:http://tianhailong.com/hadoop-forums/topic/hadoop%E8%B5%84%E6%96%99%E6%B1%87%E6%80%BB
先补习下云计算知识 弄清楚啥叫云计算 都分为那些层?
2、明确了云计算是个什么东东后 然后再弄清楚hadoop是干什么用的 hadoop位于云计算的哪个层里 起到什么作用
hadoop包含哪些组件,每个组件提供什么功能,组件与组件之间的关系是什么?
3、然后再开始搭建Hadoop集群
写mapreduce的helloworld
然后再开始装hbase、zookeeper等 挨个实现helloworld
Hadoop集群搭建教程:http://tianhailong.com/hadoop%E9%9B%86%E7%BE%A4%E6%90%AD%E5%BB%BA%E8%AF%A6%E7%BB%86%E7%AE%80%E6%98%8E%E6%95%99%E7%A8%8B.html
4、需要准备的知识:任何语言的编程经验+java(最好会)+云计算知识背景(大数据知识背景)+linux安装操作+虚拟机知识
必须先记在心里的东西:
1、cygwin只是模拟了linux环境
2、hadoop必须安装在linux环境上
3、mapreduce程序开发直接就在window上开发即可
4、mapreduce程序的运行:可以把写好的程序打成jar包 放到hadoop集群上 执行hadoop命令(就像大家安装完 验证集群是否正常运行那样 ”计算圆周率“一样)
5、 我们学的是hadoop 而不是整环境 ,可以先把环境的问题绕过
6、刚开始千万别用eclipse连接hadoop集群
7、如果你说6的理由是测试方便,那我告诉你,写junit更方便

台湾国网中心Hadoop实验集群

从网上找到了好东西,还是台湾人民好啊,搭建好的Hadoop集群,开放了公共服务 http://hadoop.nchc.org.tw/ 对于想学习hadoop编程,又苦于没有机器,你们有福啦 O(∩_∩)O哈哈~
这是他们的公告

  1. 歡迎至 forum.hadoop.tw 或 臉書粉絲團 進行討論
  2. 歡迎加入 公告群組,以利接收即時公告事宜
  3. 初學者請參閱線上教學: Hadoop 觀念篇 ,
    實作步驟請參閱以下三個連結:
    帳號申請 | HDFS 練習 | MapReduce 練習 ]
  4. 本叢集所採用的 Hadoop 版本是 0.20.1,寫程式時請參考 javadoc
  5. 倘若貴單位不允許 SSH 連線,或有 PROXY 限制,請改連https://hadoop.nchc.org.tw 並採用系統帳號密碼(hXXXX)登入。至於HDFS 與 MapReduce 也請請點選對應連結存取。

本叢集純為實驗用途,無法保證7×24服務品質
重要數據資料請務必另行備份,謝謝!
重要運算工作亦請考慮使用其他付費平台

家目錄空間吃緊中,請盡量上傳至HDFS後,
清除家目錄檔案,謝謝!

若有公用資料集運算需求,請置於
hdfs://hadoop.nchc.org.tw/pub,謝謝!

hadoop集群服务

hadoop集群服务


1、先注册账号:
http://hadoop.nchc.org.tw/new_register.php
注册

注册


2、邮箱激活
激活邮件

激活邮件


3、一会你会收到SSH地址、用户名和密码
SSH账号密码

SSH账号密码


4、登录后进入界面,就可以运行计算π的那个示例啦(注意:浏览器得支持java运行才能看到这个界面),或者使用SSH客户端输入地址、用户名密码链接到Hadoop集群, O(∩_∩)O哈哈~
计算π1

计算π1


计算π2

计算π2

关于fsockopen pfsockopen函数被禁用的解决方法

关于fsockopen pfsockopen函数被禁用的解决方法
一、
服务器同时禁用了fsockopen pfsockopen,那么用其他函数代替,如stream_socket_client()。注意:stream_socket_client()和fsockopen()的参数不同。
具体操作:
搜索程序中的字符串 fsockopen( 替换为 stream_socket_client( ,然后,将原fsockopen函数中的端口参数“80”删掉,并加到$host。
示例如下
修改前:
$fp = fsockopen($host, 80, $errno, $errstr, 30);
修改后:
$fp = stream_socket_client($host.”80″, $errno, $errstr, 30);
二、
如果PHP版本低于5.0,fsockopen被禁用,又没有stream_socket_client()怎么办呢?自己写一个函数实现fsockopen的功能,参考代码:
function b_fsockopen($host, $port, &$errno, &$errstr, $timeout) {
$ip = gethostbyname($host);
$s = socket_create(AF_INET, SOCK_STREAM, 0);
if (socket_set_nonblock($s)) {
$r = @socket_connect($s, $ip, $port);
if ($r || socket_last_error() == EINPROGRESS) {
$errno = EINPROGRESS;
return $s;
}
}
$errno = socket_last_error($s);
$errstr = socket_strerror($errno);
socket_close($s);
return false;
}
具体操作:
1.首先找到使用fsockopen函数的代码段,将上面代码加至其上端,搜索该代码段中的字符串 fsockopen( 替换为 b_fsockopen( 。
2.因为fsockopen函数返回文件指针所以可以被文件函数操作,但是这个b_fsockopen函数没能返回文件指针,需要继续修改代码段:用socket_read( 替换掉 fread( ,用socket_write( 替换掉fwrite( ,用socket_close( 替换掉fclose( 。
三、
使用CMS类网站程序的用户,如织梦CMS,phpwind,帝国,等程序,请将您的程序升级到最新的版本并及时更新安全漏洞补丁。
disable_functions = system,exec,passthru,escapeshellcmd,pcntl_exec,shell_exec,set_time_limit,fsockopen,pfsockopen

锟斤拷

今天又长知识了 O(∩_∩)O哈哈~
“xefxbfxbdxefxbfxbdxefxbfxbd”-锟斤拷
百度百科上面说:
锟斤拷,经常在搜索引擎和网站上看到的字符。是一种因微软漏洞造成的乱码。
这些字句是毫无实际意义的,但它们却形象地表达出了一些莫名其妙的问题。相当经典!
我们上网的时候不用去关心网站采用了什么编码格式,但是页面中不时出现的乱码还是会让我们头疼。在这点上,Firefox的用户更是深有体会,用Firefox浏览网页看到乱码的机会要比IE多得多。 乱码主要与字符编码系统有关。例如一个网页中常出现的乱码“锟斤拷”(百度,Google),它就是新老编码系统转换中出现的。
网友est专门写了一篇文章来考证问题来源:
Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHARACTER。那么U+FFFD的UTF-8编码出来,恰好是 ‘xefxbfxbd’。如果这个’xefxbfxbd’,重复多次,例如 ‘xefxbfxbdxefxbfxbd’,然后放到GBK/CP936/GB2312/GB18030的环境中显示的话就是“锟斤拷——锟(0xEFBF),斤(0xBDEF),拷(0xBFBD)”。