楼主: SunnyIving
1566 1

[问答] 有人在研究大数据吗,hadoop? [推广有奖]

  • 0关注
  • 0粉丝

已卖:24份资源

博士生

88%

还不是VIP/贵宾

-

威望
0
论坛币
2338 个
通用积分
3.5503
学术水平
1 点
热心指数
3 点
信用等级
1 点
经验
3304 点
帖子
289
精华
0
在线时间
364 小时
注册时间
2012-10-27
最后登录
2024-3-19

楼主
SunnyIving 发表于 2013-3-7 15:51:49 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
虽然不是很懂hadoop,但是现在需要连接R和hadoop,有没有做过这样的事呢,想探讨一下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Hadoop 大数据 Had 有没有

代码小王子!

沙发
DM小菜鸟 发表于 2014-12-19 16:17:52
用RHadoop呀
RHadoop是一款Hadoop和R语言的结合的产品,由RevolutionAnalytics公司开发,并将代码开源到github社区上面。
   
RHadoop包含三个R包 (rmr,rhdfs,rhbase),分别是对应Hadoop系统架构中的,MapReduce, HDFS, HBase 三个部分。

下面的记录是在安装成功后的总结,中间的过程描述及解决方法可能并不精确(用红色进行了标记),仅供参考。服务器操作系统为centos 5.6。

一、软件版本
R 2.13.1、Hadoop集群(CDH3)、JDK1.6。

二、安装节点
其中rhbase和rhdfs在Hadoop集群的namenode上安装即可,而rmr则需要在集群上的每一个节点上安装。

三、安装
由于网络限制,只能先将源文件下载到本地,然后通过shell命令R CMD INSTALL ‘package_name’来安装。
a)   首先安装rhdfs。该包依赖于包 rJava。所以还需要先下载rJava的源代码并安装。
R CMD INSTALL ‘rJava_0.9-3.tar.gz’
R CMD INSTALL ‘rhdfs_1.0.1.tar.gz’
在执行安装rJava时,可能会失败,提示错误信息“checking whether JNI programs can be compiled... configure: error: Cannot compile a simple JNI program. See config.log for details.”,这可能是由于jdk的版本问题造成的,建议安装jdk1.6。
b)  安装rmr。该包依赖于包RJSONIO、 itertools 、digest,而包itertools 又依赖于iterators。
R CMD INSTALL ‘iterators_1.0.5.tar.gz’
R CMD INSTALL ‘itertools_0.1-1.tar.gz’
R CMD INSTALL ‘RJSONIO_0.96-0.tar.gz’
R CMD INSTALL ‘digest_0.5.1.tar.gz’
R CMD INSTALL ‘rmr_1.1.tar.gz’
c) 安装rhbase(参见https://github.com/RevolutionAnalytics/RHadoop/wiki/rhbase)。在安装rhbase之前,还需要安装Thrift库,建议安装Thrift 0.6.1版本,下载网址为http://thrift.apache.org/。详细的安装步骤如下:
                          
i. 在centos系统下输入shell命令sudo yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel lib-devel python-devel ruby-devel,安装一些Thrift相关的工具或库。由于网络连接的问题,在尝试的时候并不能完全安装,个人觉得也没有必要完全安装,只需保证g++ 3.3.5以上版本、boost 1.33.1以上版本即可。
                        
ii. 解压并安装Thrift。
tar -zvxf thrift-0.6.1.tar.gz
cd thrift-0.6.1
./configure --with-boost=/usr/include/boost JAVAC=/usr/jdk1.6/bin/javac
make
make install
其中—with-boost及JAVAC的值根据服务器的实际情况进行修改(不确定javac的设置是不是必须的)。
                     
iii. 设置环境变量PKG_CONFIG_PATH。
在/etc/profile中输入
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/(并通过命令souce /etc/profile命令使得环境变量生效)。之后输入shell命令pkg-config --cflags thrift验证pkg-config路径是否设置正确,返回结果若为-I/usr/local/include/thrift则表示成功。
                     
iv. 复制library文件。
cp /usr/local/lib/libthrift.so.0 /usr/lib
                       
v. 安装rhbase。
R CMD INSTALL 'rhbase_1.0.1.tar.gz'
  
四、验证并测试
在R命令行中输入library(rmr)、library(rhdfs)、library(rhbase),载入成功即表示安装成功。
测试用例:利用mapreduce实现和函数sapply相同的功能。
普通R代码:
groups = rbinom(32, n = 50, prob = 0.4)
tapply(groups, groups, length)
利用mapreduce实现的R代码:
groups = to.dfs(groups) (为保证相同的数据,仍然利用了之前的groups)
from.dfs(mapreduce(input = groups, map = function(k,v) keyval(v, NULL), reduce = function(k,vv) keyval(k, length(vv))))

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 12:55