RHive的安装和用法
当前位置:以往代写 > 其他教程 >RHive的安装和用法
2019-06-14

RHive的安装和用法

RHive的安装和用法

RHive 是一种通过HIVE高机能查询来扩展R计较本领的包。它可以在R情况中很是容易的挪用HQL,
也答允在Hive中利用R的工具和函数。理论上数据处理惩罚量可以无限扩展的Hive平台,搭配上数据挖掘的利器R情况,
堪称是一个完美的大数据阐明挖掘的事情情况。

情况设置

(设置部门是同事搞定的,只记录一些细节)

RHive 依赖于Rserve,因此在安装R的时候有些变革:

./configure --disable-nls --enable-R-shlib
make
make install

enable-R-shlib 是将R作为动态库举办安装,这样像Rserve依赖于R动态库的包就可以安装了,但缺点是会有20%阁下的机能下降

Rserve的安装

正常的安装R包:

install.packages('rJava')
install.packages('Rserve')

在安装Rsever用户下,建设一目次,并建设Rserv.conf文件,写入“remote enable”生存并退出。

通过scp -r 呼吁将Master节点上安装好的Rserve包,以及Rserv.conf文件拷贝到所有slave节点下,

scp -r /data2/soft/R2.15/library/Rserve slave1:/data2/soft/R2.15/library/
scp -r /data2/soft/R2.15/library/Rserve slave2:/data2/soft/R2.15/library/
scp -r /data2/soft/R2.15/library/Rserve slave3:/data2/soft/R2.15/library/
scp -r /data2/soft/Rserv.conf slave1:/data2/soft/
scp -r /data2/soft/Rserv.conf slave2:/data2/soft/
scp -r /data2/soft/Rserv.conf slave3:/data2/soft/

在所有节点启动Rserve

Rserve --RS-conf /data2/soft/Rserv.conf
telnet slave1 6311

在Master节点telnet所有slave节点,显示 Rsrv0103QAP1 则暗示毗连乐成

RHive的安装

安装包,并在master节点和所有slave节点建设目次,并授读写权限

R CMD INSTALL RHive_0.0-7.tar.gz
cd /data2/soft/
mkdir -p rhive/data

在master节点和所有slave节点的Hadoop用户下设置情况变量

vi .bash_profile
export RHIVE_DATA=/data2/soft/R/rhive/data

通过scp -r 呼吁将Master节点上安装好的RHive包拷贝到所有slave节点下,

scp -r /data2/soft/R2.15/library/RHive slave1:/data2/soft/R2.15/library/
scp -r /data2/soft/R2.15/library/RHive slave2:/data2/soft/R2.15/library/
scp -r /data2/soft/R2.15/library/RHive slave3:/data2/soft/R2.15/library/

查察hdfs文件系统下的jar包是否有读写权限

hadoop fs -ls /rhive/lib

最后,启动hive长途处事:
rhive是通过thrift毗连hiveserver的,需要要启动靠山thrift处事,即:在hive客户端启动hive长途处事

nohup hive --service hiveserver  &

完毕。

RHive的利用

rhive-api

从HIVE中得到表信息的函数,好比

  • rhive.list.tables:得到表名列表,支持pattern参数(正则表达式),雷同于HIVE的show table
  • rhive.desc.table:表的描写,HIVE中的desc table
  • rhive.exist.table:
  • RHive 简朴应用

    载入Rhive包,并毗连HIVE,获取数据:

    library(RHive)
    rhive.connect(host = 'host_ip')
    d <- rhive.query('select * from emp limit 1000')
    class(d)
    m <- rhive.block.sample(data_sku, percent = 0.0001, seed = 0)
    rhive.close()

    一般在系统中已经设置了host,因此可以直接rhive.connect()举办毗连,记得最后要有rhive.close()操纵。
    通过HIVE查询语句,将HIVE中的方针数据加载至R情况下,返回的 d 是一个dataframe。

    实际上,rhive.query的实际用途有许多,一般HIVE操纵都可以利用,好比改观scheme等操纵:

    rhive.query('use scheme1')
    rhive.query('show tables')
    rhive.query('drop table emp')

    但需要留意的是,数据量较大的环境需要利用rhive.big.query,并配置memlimit参数。

    将R中的工具通过构建表的方法存储到HIVE中需要利用

    rhive.write.table(dat, tablename = 'usertable', sep = ',')

    尔后利用join等HIVE语句得到相关建模数据。其实写到这儿,有需求的看官就应该大白了,这几项 RHive 的成果就足够
    折腾些有趣的工作了。

  • 注1:其他关于在HIVE中挪用R函数,临时还没有应用,将来更新。
  • 注2:rhive.block.sample这个函数需要在HIVE 0.8版本以上才气执行。

  •  

     

     

     

    本文转载自:http://www.bjt.name/2012/12/RHive-install/

      关键字:

    在线提交作业