经管之家App
让优质教育人人可得
立即打开
全部版块
我的主页
›
论坛
›
数据科学与人工智能
›
数据分析与数据科学
›
R语言论坛
RHive的配置
楼主
xinguanxk
3975
2
收藏
2015-03-21
各位好,请问这里有搞hadoop,hive的高手吗?有没有尝试准确配置过rhive之类的?
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
全部回复
沙发
DM小菜鸟
2015-3-24 16:46:13
环境配置
(配置部分只记录一些细节)
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版本以上才能执行。
参考:RHive 的 github 项目
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
藤椅
xinguanxk
2015-12-27 18:28:51
DM小菜鸟 发表于 2015-3-24 16:46
环境配置
(配置部分只记录一些细节)
这个配置我看过,可惜我现在已经不在原来的公司做了,谢谢你。
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
相关推荐
求教hive
Hadoop学习之hive 编程
RHive: R and Hive
R语言和HIVE
hive的增量导入
用R通过Rhive连接hive时提示错误,请大神指教问题出在哪里,这个问题已经困扰了三天了
SAS连接hive问题
Hadoop_Hive
R连接Hive时出现问题
sas hive连接问题
栏目导航
R语言论坛
真实世界经济学(含财经时事)
经管文库(原现金交易版)
计量经济学与统计软件
经管高考
行业分析报告
热门文章
CDA 数据分析师:统计制图实战指南 —— 让 ...
视频媒体:AI漫剧爆发在即,重视产业链机遇
量子科技行业深度报告:量子革命:量子科技 ...
这简单的几句话,完成了对传统和现代经济学 ...
2025年度国产AI芯片产业白皮书
数生万物,转型之本:数据资产运营白皮书-毕 ...
十四五能源发展成就报告
2025 生成式人工智能应用发展报告
Machine-Learning-Tom-M.-Mitchell中文版.p ...
十四五能源发展成就报告
推荐文章
AI狂潮席卷学术圈,不会编程也能打造专属智 ...
10月重磅来袭|《打造Coze/Dify专属学术智能 ...
最快1年拿证,学费不足5W!热门美国人工智能 ...
关于如何利用文献的若干建议
关于学术研究和论文发表的一些建议
关于科研中如何学习基础知识的一些建议 (一 ...
一个自编的经济学建模小案例 --写给授课本科 ...
AI智能体赋能教学改革: 全国AI教育教学应用 ...
2025中国AIoT产业全景图谱报告-406页
关于文献求助的一些建议
说点什么
分享
微信
QQ空间
QQ
微博
扫码加好友,拉您进群
各岗位、行业、专业交流群