配置RHadoop与运行WordCount例子
1、安装R语言环境
su -c 'rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm'
su -c 'yum install foo'
yum list R-\*
yum install R
2、安装RStudio Desktop和Server
Desktop是rpm包,双击执行
Server安装命令:
yum install openssl098e # Required only for RedHat/CentOS 6 and 7
wget http://download2.rstudio.org/rstudio-server-0.98.1091-x86_64.rpm
yum install --nogpgcheck rstudio-server-0.98.1091-x86_64.rpm
添加r-user用户
3、安装gcc、git、pkg-config
yum install gcc git pkg-config
4、安装thrift0.9.0
yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel
编译安装步骤:
Update the System
yum -y update
Install the Platform Development Tools
yum -y groupinstall "Development Tools"
Upgrade autoconf/automake/bison
yum install -y wget
Upgrade autoconf
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
tar xvf autoconf-2.69.tar.gz
cd autoconf-2.69
./configure --prefix=/usr
make
make install
Upgrade automake
wget http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz
tar xvf automake-1.14.tar.gz
cd automake-1.14
./configure --prefix=/usr
make
make install
Upgrade bison
wget http://ftp.gnu.org/gnu/bison/bison-2.5.1.tar.gz
tar xvf bison-2.5.1.tar.gz
cd bison-2.5.1
./configure --prefix=/usr
make
make install
Install C++ Lib Dependencies
yum -y install libevent-devel zlib-devel openssl-devel
Upgrade Boost
wget http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz
tar xvf boost_1_55_0.tar.gz
cd boost_1_55_0
./bootstrap.sh
./b2 install
Build and Install the Apache Thrift IDL Compiler
git clone https://git-wip-us.apache.org/repos/asf/thrift.git
cd thrift
./bootstrap.sh
./configure --with-lua=no
修改/thrift-0.9.1/lib/cpp/thrift.pc的includedir=${prefix}/include/thrift
make
make install
Update PKG_CONFIG_PATH:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/
Verifiy pkg-config path is correct:
pkg-config --cflags thrift
returns:
-I /usr/local/include/thrift
拷贝文件到lib文件夹
cp /usr/local/lib/libthrift-1.0.0-dev.so /usr/lib/
5、设置Linux环境变量
export HADOOP_PREFIX=/usr/lib/hadoop
export HADOOP_CMD=/usr/lib/hadoop/bin/hadoop
export HADOOP_STREAMING=/usr/lib/hadoop-mapreduce/hadoop-streaming.jar
6、root用户下开启R环境安装依赖包
install.packages(c("rJava", "Rcpp", "RJSONIO", "bitops", "digest",
"functional", "stringr", "plyr", "reshape2", "dplyr",
"R.methodsS3", "caTools", "Hmisc", "data.table", "memoise"))
7、root用户下开启R环境安装RHadoop包
install.packages("/root/RHadoop/rhdfs_1.0.8.tar.gz", repos=NULL, type="source")
install.packages("/root/RHadoop/rmr2_3.3.0.tar.gz", repos=NULL, type="source")
install.packages("/root/RHadoop/plyrmr_0.5.0.tar.gz", repos=NULL, type="source")
install.packages("/root/RHadoop/rhbase_1.2.1.tar.gz", repos=NULL, type="source")
8、配置ant 和 maven
export MAVEN_HOME=/root/apache-maven-3.2.5
export PATH=/root/apache-maven-3.2.5/bin:$PATH
export ANT_HOME=/root/apache-ant-1.9.4
export PATH=$ANT_HOME/bin:$PATH
9、测试RHadoop
Sys.setenv("HADOOP_PREFIX"="/usr/lib/hadoop")
Sys.setenv("HADOOP_CMD"="/usr/lib/hadoop/bin/hadoop")
Sys.setenv("HADOOP_STREAMING"="/usr/lib/hadoop-mapreduce/hadoop-streaming.jar")
library(rmr2)
bp = rmr.options("backend.parameters")
trans <- list(D="mapreduce.map.java.opts=-Xmx400M",
D="mapreduce.reduce.java.opts=-Xmx400M",
D="mapreduce.map.memory.mb=4096",
D="mapreduce.reduce.memory.mb=4096",
D="mapreduce.task.io.sort.mb=100")
bp <- list(hadoop=trans)
#### 没有使用的代码 开始 #######################
bp$hadoop[1]="mapreduce.map.java.opts=-Xmx400M"
bp$hadoop[2]="mapreduce.reduce.java.opts=-Xmx400M"
bp$hadoop[3]="mapreduce.map.memory.mb=1024"
bp$hadoop[4]="mapreduce.reduce.memory.mb=2048"
bp$hadoop[5]="mapreduce.task.io.sort.mb=100"
#### 没有使用的代码 结束 #######################
rmr.options(backend.parameters = bp)
rmr.options("backend.parameters")
## map function
map <- function(k,lines) {
words.list <- strsplit(lines, '\\s')
words <- unlist(words.list)
return( keyval(words, 1) )
}
## reduce function
reduce <- function(word, counts) {
keyval(word, sum(counts))
}
wordcount <- function (input, output=NULL) {
mapreduce(input=input, output=output, input.format="text",
map=map, reduce=reduce)
}
## delete previous result if any
system("/usr/lib/hadoop/bin/hadoop fs -rm -r /tmp/zhengcong/out")
## Submit job
hdfs.root <- '/tmp/zhengcong'
hdfs.data <- file.path(hdfs.root, 'hp')
hdfs.out <- file.path(hdfs.root, 'out')
out <- wordcount(hdfs.data, hdfs.out)
## Fetch results from HDFS
results <- from.dfs(out)
## check top 30 frequent words
results.df <- as.data.frame(results, stringsAsFactors=F)
colnames(results.df) <- c('word', 'count')
head(results.df[order(results.df$count, decreasing=T), ], 30)
10、错误解决
rJava无法加载,root用户下运行 R CMD javareconf -e
添加 export LD_LIBRARY_PATH=$JAVA_HOME/lib/amd64:$JAVA_HOME/jre/lib/amd64/server
配置RHadoop与运行WordCount例子的更多相关文章
- (四)伪分布式下jdk1.6+Hadoop1.2.1+HBase0.94+Eclipse下运行wordCount例子
本篇先介绍HBase在伪分布式环境下的安装方式,然后将MapReduce编程和HBase结合起来使用,完成WordCount这个例子. HBase在伪分布环境下安装 一. 前提条件 已经成功地安装 ...
- RedHat 安装Hadoop并运行wordcount例子
1.安装 Red Hat 环境 2.安装JDK 3.下载hadoop2.8.0 http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/had ...
- [Linux][Hadoop] 运行WordCount例子
紧接上篇,完成Hadoop的安装并跑起来之后,是该运行相关例子的时候了,而最简单最直接的例子就是HelloWorld式的WordCount例子. 参照博客进行运行:http://xiejiangl ...
- CDH quick start VM 中运行wordcount例子
需要注意的事情: 1. 对于wordcount1.0 ,按照http://www.cloudera.com/content/cloudera/en/documentation/HadoopTutori ...
- Hadoop2.8.2 运行wordcount
1 例子jar位置 [hadoop@hadoop02 mapreduce]$ pwd /hadoop/hadoop-2.8.2/share/hadoop/mapreduce [hadoop@hadoo ...
- (二)Hadoop例子——运行example中的wordCount例子
Hadoop例子——运行example中的wordCount例子 一. 需求说明 单词计数是最简单也是最能体现MapReduce思想的程序之一,可以称为 MapReduce版"Hello ...
- debian下 Hadoop 1.0.4 集群配置及运行WordCount
说明:我用的是压缩包安装,不是安装包 官网安装说明:http://hadoop.apache.org/docs/r1.1.2/cluster_setup.html,繁冗,看的眼花...大部分人应该都不 ...
- (三)配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序
配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序 一. 需求部分 在ubuntu上用Eclipse IDE进行hadoop相关的开发,需要在Eclip ...
- 【hadoop】看懂WordCount例子
前言:今天刚开始看到map和reduce类里面的内容时,说实话一片迷茫,who are you?,最后实在没办法,上B站看别人的解说视频,再加上自己去网上查java的包的解释,终于把WordCount ...
随机推荐
- (转)MyEclipse +Servlet
来自:http://www.cnblogs.com/sunada2005/p/3520788.html 在Win7系统下运行自己的第一个Servlet程序,因为有时候配置不当或系统原因可能会运行不成功 ...
- [leetcode] Path sum路径之和
要求给定树,与路径和,判断是否存在从跟到叶子之和为给定值的路径.比如下图中,给定路径之和为22,存在路径<5,4,11,2>,因此返回true;否则返回false. 5 / \ 4 8 / ...
- Java API —— Pattern类
正则表达式 写一个功能实现QQ号码的校验. import java.util.Scanner; public class RegexDemo01 { public static void ma ...
- 海明距离hamming distance
仔细阅读ORB的代码,发现有很多细节不是很明白,其中就有用暴力方式测试Keypoints的距离,用的是HammingLUT,上网查了才知道,hamming距离是相差位数.这样就好理解了. 我理解的Ha ...
- cas单点登出
由于项目需求要实现单点登出需要在网上找了N久终于实现单点登出. 使用cas-server-core-3.3.3.jar(CAS Server 3.3.3) 使用cas-client-core-3.1. ...
- 转载:C++ STL set学习
声明:本文转载自Penguin的博客 http://blog.sina.com.cn/s/blog_779cf3410101389s.html 1,set的含义是集合,它是一个有序的容器,里面的元素都 ...
- noi2002银河英雄传说(并查集)
首先表示对C++读入读出问题复杂程度的敬畏,看了好多没讲明白的,本题用cin竟然过不了评测,搞scanf的读入搞了好久.... 本题确实是一道经典的并查集题型,不多讲,拿来练练手用的(其中经历很惨) ...
- uva1638Pole Arrangement
递推. 用f[n][l][r]表示n个柱子,从左面能看到l个,从右面能看到r个. 如果我们按照从小到大的顺序放置的话,放置最高的柱子后,大量状态都能递推到当前状态,很难写出递推式. 但是我们如果从小到 ...
- BZOJ2337: [HNOI2011]XOR和路径
题解: 异或操作是每一位独立的,所以我们可以考虑每一位分开做. 假设当前正在处理第k位 那令f[i]表示从i到n 为1的概率.因为不是有向无环图(绿豆蛙的归宿),所以我们要用到高斯消元. 若有边i-& ...
- Jquery 弹出提示框输入插件 apprise 修改中文按钮以及使用说明
apprise的使用非常简单,引入js脚本和css <script type="text/javascript" src="/js/apprise-1.5.fu ...