牛骨文教育服务平台(让学习变的简单)
博文笔记

HADOOP+R+RHIPE安装

创建时间:2015-11-19 投稿人: 浏览次数:2893

hadoop是现在很流行的大数据处理的平台,而R语言是统计分析数据挖掘的强大工具,而它在大数据处理方面有所欠缺,其解决方案有并行计算,RHADOOP,和RHIPE。尝试安装RHIPE。

安装环境

环境 版本
centos(64bit) 6.5
java jdk 1.6.0_45
R 3.1.2
Rhipe 0.73
Google protocol buffers 2.4.1
Hadoop CHH3u6伪分布

1. 安装JAVA JDK

wget http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin
chown u+x jdk-6u45-linux-x64.bin 
./jdk-6u45-linux-x64.bin
mv jdk-6u45-linux-x64 /usr/java/

配置环境变量

sudo vim ~/.bashrc
export JAVA_HOME=/usr/java 
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH
source ~/.bashrc
[hadoop1@localhost usr]$ java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

创建hadoop用户组和用户添加权限

sudo addgroup hadoop1
sudo adduser -ingroup hadoop1 hadoop1
sudo gedit /etc/sudoers  

在文本中写入
这里写图片描述

2 安装ssh

ubuntu下的问题

yum install openssh-server openssh openssh-client
ssh-keygen -t rsa(一路回车)
cat ./.ssh/id_rsa.pub >> ./.ssh/authorized_keys

配置好后ssh localhost 发现还需要密码,查阅资料后如下解决方案:
搭建Hadoop环境时关于配置无密码ssh的常见问题

1、用户目录755或700,不能使77*

2、.ssh目录755

3、.pub或authorized_key644

4、私钥600

注意地方
1、在master和slave的启动用户默认路径下建立.ssh文件夹。

2、在master上通过ssh-keygen -t rsa 。把.pub改名成authorized_key,分发到各个slave的.ssh下。

然后坑的地方就来了。对于.ssh目录,公钥、私钥的权限都有严格的要求。

1、用户目录755或700,不能使77*
2、.ssh目录755
3、.pub或authorized_key644
4、私钥600
如果权限不对可能不能无密码ssh(具体原因是遗留问题),如果经过上述步骤不能达到目的。调试的手段就很必要了。有两个。
1、ssh -v:ssh具体过程调试信息会打出
2、/var/log/secure:该日志中有失败原因

3. 安装HADOOP

wget http://archive.cloudera.com/cdh/3/hadoop-0.20.2-cdh3u6.tar.gz
tar -zxvf hadoop-0.20.2-cdh3u6.tar.gz

修改变量
hadoop-env.sh

vi hadoop-env.sh
修改java路径
# The java implementation to use.  Required.
export  JAVA_HOME=/usr/java

vi core-site.xml

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/hadoop/tmp</value>
        <description>.</description>
    </property>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

vi hdfs-site.xml

<property>        
  <name>dfs.replication</name>
  <value>1</value>
</property>

vi mapred-site.xml

<property>
  <name>mapred.job.tracker</name>     
  <value>http://localhost:9001</value>
</property>

格式化namenode

bin/hadoop namenode -format

启动并测试

bin/start-all.sh

[hadoop1@localhost usr]$ jps
3690 TaskTracker
18338 Jps
3402 DataNode
3296 NameNode
3589 JobTracker
3513 SecondaryNameNode

4. 安装R

centos上安装hadoop遇到困难,自己下载安装总是出错,找到以下解决方式:epel
0.安装yum优先级插件

yum install yum-priorities

1.epel简介

rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

以上URL请按实际情况修改

2.查看是否安装成功

rpm -q epel-release

3.导入key:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

4.修改/etc/yum.repos.d/epel.repo文件
在[epel]最后添加一条属性 priority=11

vi /etc/yum.repos.d/epel.repo

意思是yum先去官方源查,官方没有再去epel的源找

5.重建缓存

yum makecache

安装R语言

yum install -y R

5. 安装RHipe(参考网址)

预备设置,centos缺少各种库会造成安装失败,查阅资料解决办法
yum install gcc-gfortran #否则报”configure: error: No F77 compiler found”错误
yum install gcc gcc-c++ #否则报”configure: error: C++ preprocessor “/lib/cpp” fails sanity check”错误
yum install readline-devel #否则报”–with-readline=yes (default) and headers/libs are not available”错误
yum install libXt-devel #否则报”configure: error: –with-x=yes (default) and X11 headers/libs are not available”错误

从此处开始用root用户操作否则会有权限限制的错误
1.下载Google protocol buffers 2.4.1

wget http://protobuf.googlecode.com/files/protobuf-2.4.1.tar.gz
tar -zxvf protobuf-2.4.1.tar.gz
cd protobuf-2.4.1
./configure 
make && make install

安装后lib在 /usr/local/lib运行如下命令如果显示结果一样,代表已安装正确

pkg-config --modversion protobuf 2.4.1
pkg-config --libs protobuf-pthread -L/usr/local/lib -lprotobuf -lpthread  

2.修改系统环境

/etc/ld.so.conf.d
vi Protobuf-x86.conf

加入下面这行:

/usr/local/lib

保存

/sbin/ldconfig

增加以下环境变量

vi /etc/profile
export HADOOP_HOME=/home/hadoop1/hadoop-cdh3
export HADOOP_BIN=$HADOOP_HOME/bin
export HADOOP_CONF_DIR=$HADOOP_HOME/conf
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/:/usr/local/lib64/pkgconfig/

增加R语言自动初始化加载的环境变量
此处很关键,若不设置会导致library(Rhipe)时候报错

HADOOP_HOME missing
等错误

设置方法如下

sudo vim /usr/lib64/R/etc/Renviron

在最后加入

HADOOP_HOME=/home/hadoop1/hadoop-cdh3
HADOOP_BIN=$HADOOP_HOME/bin
HADOOP_CONF_DIR=$HADOOP_HOME/conf
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/:/usr/local/lib64/pkgconfig/
source /etc/profile

3.安装rJAVA

wget http://cran.r-project.org/src/contrib/rJava_0.9-6.tar.gz
R CMD javareconf #R的程序从系统变量中会读取Java配置
R CMD INSTALL rJava_0.9-6.tar.gz

4.安装RHipe

wget http://ml.stat.purdue.edu/rhipebin/Rhipe_0.73.5.tar.gz
R CMD INSTALL Rhipe_0.73.5.tar.gz

5.验证
切换回hadoop的用户(root也可以),确保hadoop运行正常,启动R程序:

[hadoop1@localhost usr]$ R
> library(Rhipe)
------------------------------------------------
| Please call rhinit() else RHIPE will not run |
------------------------------------------------
> rhinit()
Rhipe: Using Rhipe.jar file
Initializing Rhipe v0.73
Initializing mapfile caches

成功!

但是,之前我在library(Rhipe)这一步后遇到过如下问题:

HADOOP_HOME missing等提示

我已经设置过环境变量,遂直接export(如果提示其他环境变量missing)也如此法做

[hadoop1@localhost usr]$ export HADOOP_HOME=/home/hadoop1/hadoop-cdh3/

问题解决。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。