RHadoop应用(1)

2018-04-11 11:14:48 浏览数 (1)

使用RHadoop结合hdfs存储R语言输入数据

1 R语言是著名的开源统计分析和绘图语言,但限于功能,只能进行单机存储数据和计算,通过hadoop的功能可以存储更多的数据和并行计算。

Rhadoop包括rhdfs、rmr2、rhbase等R语言插件,rhdfs插件可以加载hdfs文件系统,rmr2可以使用mapreduce做并行计算。

这里先使用rhdfs来简单介绍下r语言怎样读取较大的文件

2 首先安装rhdfs插件,由于R语言要调用java 因此需要安装rjava插件

install.packages("rJava")

其他插件需要时也可以安装,这里将后续需要的插件一起安装

install.packages("reshape2")

install.packages("Rcpp")

install.packages("iterators")

install.packages("itertools")

install.packages("digest")

install.packages("RJSONIO")

install.packages(“functional")

3 还需要配置好java的环境变量,这里以我测试环境为例,请根据实际情况修改

写入/home/hadoop/.bashrc

export JAVA_HOME=/jdk

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export HADOOP_HOME=/home/hadoop/hadoop

export HADOOP_BIN=$HADOOP_HOME/bin

export HADOOP_SBIN=$HADOOP_HOME/sbin

export PATH=$PATH:$HADOOP_BIN:$HADOOP_SBIN

export HADOOP_CMD=$HADOOP_HOME/bin/hadoop

export HADOOP_STREAMING=$HADOOP_HOME/share/hadoop/tools/lib/hadoop-streaming-2.6.0.jar

4 之后下载最新版本的rhdfs插件包到本地

https://github.com/RevolutionAnalytics/RHadoop/wiki/Downloads

5 在本地安装rhdfs并加载

bash-3.2$ R CMD INSTALL /root/rhdfs_1.0.8.tar

6 好了,我们来构造一些简单数据测试吧

bash> seq 1 100 > average_100.txt

bash> hadoop dfs -mkdir /tmp

bash> hadoop dfs -copyFromLocal average_100.txt /tmp

7 在R语言环境中,执行下面的命令

library(rhdfs)

hdfs.init()

hdfs.cat("/tmp/average_100.txt")

[1] "0" "1" "2" .... "100"

8 通过简单的插件就可以进行统计和计算了,如计算平均值

mean(as.numerica(hdfs.cat("/tmp/average_100.txt")))

0 人点赞