HADOOP+R+RHIPE安装
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/
问题解决。
- 上一篇: hadoop使用经验收集
- 下一篇: 某网hadoop视频全套