3.24 58 数据挖掘intern

本文详细记录了在Ubuntu 14.04 LTS X64系统上安装Hadoop 2.7.2的过程及遇到的问题解决方法,并通过WordCount示例验证了安装的成功。此外,还介绍了MapReduce的基本原理及其应用案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,

input= uid1 house: 1

             uid1 car: 1

             uid1 recruit: 2

             uid1 house: 2

             uid2 house: 1

             uid2: car: 3

...

注:日志文件格式为:同一个uid的信息显示完了再显示下一个uid

用python编程实现reduce并按照如下进行输出:

output: uid1 house: 3 car: 1 recruit: 2

              uid2 house: 1 car: 3

....


分析:输入为流式的,每个过程涉及两个uid变量,统计一个uid变量,并暂时存储,如果下一个变量不是这个uid变量,则将统计结果进行输出,释放该内存。开始统计下一个uid变量。


程序:




2, 二叉树的层序遍历

3,Map-Reduce框架的思想

shuffle: http://langyu.iteye.com/blog/992916

http://www.csdn.net/article/2013-01-07/2813477-confused-about-mapreduce

单词词频统计:http://www.tuicool.com/articles/uE7J7j

http://my.oschina.net/sanpeterguo/blog/215922

http://blog.csdn.net/jthink_/article/details/42745699

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00141861202544241651579c69d4399a9aa135afef28c44000



为什么讲mapreduce时没有讲shuffle






以下是 ubutu 14.04 LTS X64 + hadoop 2.7.2 安装试用过程,不完全成功

04/13/2016

Ubuntu环境下单机模式安装hadoop,并用自带WordCount示例验证:

http://www.cnblogs.com/kinglau/p/3794433.html  已完成

注意用的例子是: bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.7.2-sources.jar org.apache.hadoop.examples.WordCount input output

其中修改的一个脚本的位置:/usr/local/hadoop/etc/hadoop/hadoop-env.sh(和hadoop 2.6.2等其他版本不同,没有conf文件夹)



启用ssh-agent:
$eval `ssh-agent ` 

(反引号)


streaming.jar包在hadoop 2.7.2中的位置:

share/hadoop/tools/lib/hadoop-streaming-2.7.2.jar



参照帖子:http://blog.csdn.net/hitwengqi/article/details/8008203

第六步:6.设定*-site.xml

几个xml文件在hadoop 2.7.2中的位置:




./etc/hadoop/core-site.xml
./etc/hadoop/hdfs-site.xml
./etc/hadoop/mapred-site.xml.template 复制该文件,并命名为mapred-site.xml




参考:http://zhidao.baidu.com/link?url=IfVWGBxAl8uCOPXf5GR5gcQSGzJszWdu9pRBLsUdWnA7R1kJTjyFy4D0L7WoR3kMuNxThjm7_OTMOb2kPLAg1zye9f-OeEPFnnLgXxgwwva

搭建hadoop2.4.1版本中/etc/hadoop/中找不到mapred-site.xml文件

默认情况下,/usr/local/hadoop/etc/hadoop/文件夹下有mapred.xml.template文件,我们要复制该文件,并命名为mapred.xml,该文件用于指定MapReduce使用的框架。

复制并重命名
cp mapred-site.xml.template mapred-site.xml
编辑器打开此新建文件
sudo gedit mapred-site.xml
然后编辑mapred-site.xml

以后包含了如何编辑文件并另存为的问题。




提示hadoop命令未找到的解决办法:(两点)

1,

vim /etc/profile
加入
export HADOOP_HOME=你的hadoop安装路径
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
然后记得source /etc/profile一下

作者:唐易
链接:http://www.zhihu.com/question/21170241/answer/66720814

2, 输入hadoop文件命令的时候总是提示hadoop命令未找到,发现应该输入bin/hadoop所有的hadoop命令由bin/ hadoop脚本调用。



第八步,8.启动Hadoop中的 hadoop@ubuntu:/usr/local/hadoop/bin$ start-all.sh  首先,在hadoop 2.7.2中,目录应该是sbin/不是bin/;其次,命令应该是 ./start-all.sh或者

sh  start-all.sh




进行到上面这一步的时候会报错:

16/04/14 09:13:00 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

是本地库兼容的问题,32位和64位

目前还未解决


最终页面: localhost:8088在浏览器能看到运行情况









最终要实现的功能:http://blog.csdn.net/jiedushi/article/details/7390015


hadoopusr@karl-K42Jv:/usr/local/hadoop$ bin/hadoop jar share/hadoop/tools/lib/hadoop-streaming-2.7.2.jar -files /home/karl/ML/codes/MR/map.py -files /home/karl/ML/codes/MR/red.py  -mapper "python /home/karl/ML/codes/MR/map.py" -reducer "python /home/karl/ML/codes/MR/red.py" -input /home/karl/ML/codes/MR/1.log -output /home/karl/ML/codes/MR/test2

能够运行

但是报错:

16/04/14 22:09:37 DEBUG security.UserGroupInformation: PrivilegedActionException as:hadoopusr (auth:SIMPLE) cause:ExitCodeException exitCode=1: chmod: 无法访问"/usr/local/hadoop/tmp/mapred/staging/hadoopusr513177568/.staging/job_local513177568_0001": 没有那个文件或目录

且output底下没有内容







关闭yarn:      hadoopusr@karl-K42Jv:/usr/local/hadoop$ ./sbin/stop-yarn.sh

./sbin/mr-jobhistory-daemon.sh stop historyserver

关闭hadoop:  hadoopusr@karl-K42Jv:/usr/local/hadoop$ sh ./sbin stop-all.sh

退出hadoopusr用户:  hadoopusr@karl-K42Jv:/usr/local/hadoop$ exit

这时就可以完全关闭了,不会提示  ”该终端中仍然有一个进程在运行。。。“





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值