PHP中高级工程师面试重点讲解视频课程
Go快速入门浅显易懂视频教程-基础篇
Go快速入门浅显易懂视频教程-中级篇
hadoop入门分享
原创杂文 / 时间:2016-03-28 03:39:15 / 阅读:1453 / 分享:0

什么是hadoop:

hadoop是一个平台,是一个适合大数据的分布式存储和计算的平台。什么是分布式存储?这就是后边我们要讲的hadoop核心之一HDFS;什么是分布式计算?这是我们后边要讲的hadoop另外一个重要的核心MapReduce。MapReduce概念“Map(映射)”和“Reduce(归约)”

php实现mapreduce的函数

map.php

$data = fopen('php://stdin','r');

while($line = fgets($data)){

$wordlist = str_word_count($line,1);

foreach($wordlist as $k=>$v){

echo $v."\t1\n";

}

}

fclose($data);

reduce.php

$data = fopen('php://stdin','r');

$res = array();

while($line = fgets($data)){

$t = explode("\t",$line);

if(isset($t[0])){

if(!isset($res[$t[0]])){

$res[$t[0]] = 0;

}

$res[$t[0]] += $t[1];

}

}

fclose($data);

foreach($res as $k=>$v){

echo "$k\t$v\n";

}

脚本执行:

cat text.txt | php map.php > o.txt

cat o.txt | php reduce.php

Hadoop使用场景

1.超大文件,2.流式数据访问(一次写,多次读)

怎么使用hadoop

hadoop三种工作模式:单机模式,伪分布式模式,完成分布式模式

官方地址文档:http://hadoop.apache.org/docs/

伪分布式简单环境配置

1.注意点:java环境最好使用1.8.0以上,尽量不要再机器上面装其他不必要的软件。

我试验使用的版本:java version "1.8.0_65",hadoop-2.6.0.tar.gz,hadoop本地的包:hadoop-native-64-2.6.0

资料地址下载:

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

http://125.39.35.131/files/12460000059F38B0/apache.mesi.com.ar/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz

http://dl.bintray.com/sequenceiq/sequenceiq-bin/

2.ssh localhost的rsa认证

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

chmod 0600 ~/.ssh/authorized_keys

3.配置文件修改

vim etc/hadoop/core-site.xml

<configuration>

   <property>

       <name>fs.defaultFS</name>

       <value>hdfs://localhost:9000</value>

   </property>

</configuration>

vim etc/hadoop/hdfs-site.xml

<configuration>

   <property>

       <name>dfs.replication</name>

       <value>1</value>

   </property>

</configuration>

4.简单demo执行流程:

bin/hdfs namenode -format

sbin/start-dfs.sh

NameNode - http://localhost:50070/

bin/hdfs dfs -mkdir /user

bin/hdfs dfs -put etc/hadoop /user/input

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep /user/input output 'dfs[a-z.]+'

bin/hdfs dfs -cat output/*

sbin/stop-dfs.sh


关于作者
按时间分类