HIV接口,hive连接端口
储备的访问接口艾伦的世界
储备的访问接口储备提供了三种客户端访问接口:
1)配置单元CLI(配置单元命令行,配置单元命令行),客户端可以直接在命令行模式下进行操作。
2)hwi(蜂巢网接口,蜂巢网接口),蜂巢提供了更直观的网界面
3)hiveserver,Hive提供了节约服务,节俭客户端目前支持C /Java/PHP/Python/Ruby。
下面我们来分别尝试下这三种接口访问方式:
一、Hive CLI
直接键入储备命令即可进入硬币指示器(硬币水平指示器的缩写)命令行界面(批处理脚本的命令行界面)模式:
[cloud@cloud01 lib]$ hive
储备历史文件=/tmp/cloud/hive _ job _ log _ cloud _ 201110311056 _ 1009535967。文本文件(textfile)
蜂巢gt显示表格;
testhivedrivertable
耗时:3.038秒
配置单元gt select * from testhivedrivertable;
耗时:0.905秒
蜂巢gt退出;
[cloud@cloud01 lib]$更多的命令选项,参见官方wiki,Hive Cli
二、蜂巢硬件中断
Hive hwi提供了一个更直观的网界面,使用起来更方便。
1)启动hive hwi
[cloud@cloud01 ~]$ hive -服务硬件中断
11/10/31 10:14:11信息高速公路106 . HWI开始了
11/10/31 10:14:11信息莫特湾。日志:通过org.mortbay.log.Slf4jLog登录org。SLF 4 jlog
信息mortbay.log: jetty-6.1.14
11/10/31 10:14:11信息死亡湾。日志:提取jar:file:/data/cloud/hive-0。7 .1/lib/hive-hwi-0。7 .1 .战争!/to/tmp/Jetty _ 0 _ 0 _ 0 _ 0 _ 9999 _ hive。惠。0 .7 .1 .战争_ _ hwi _ _。HF 8 ccz/web应用程序
11/10/31 10:14:12信息莫特湾。日志:已启动套接字连接器@ 0。0 .0 .0:99992)通过硬件中断方式访问储备
我的储备部署在10.46.169.101机器上,蜂巢默认硬件中断端口为9999。我们在浏览器中键入http://10.46.169.101:9999/hwi/就可以访问了。如图:
更多硬件中断的信息,访问官方维基,hwi
三、hiveserver
储备以节约方式作为服务对客户端提供,目前储备的节约绑定了多种语言,C /Java/PHP/Python/Ruby,可在储备发行版本的src/服务/src目录下找到这些语言的节约绑定蜂巢。还提供了数据库编程和开放式数据库连接性的驱动,大大方面了基于储备的应用开发。我利用官方的例子对数据库编程驱动进行了测试。
1)启动hiveserver
[cloud @ cloud 01 ~]$ hive-服务hive服务器
正在启动配置单元节约服务器2)在黯然失色中新建一个爪哇工程配置单元0。7 .一测试
3)将$HIVE_HOME/lib目录下的冲突包加到工程的方法里
4)蜂巢的表是存储在分布式文件系统上,所以,需要加载大数据的核心冲突包。我的大数据版本是0.20.1。
5)新建一个类,用官方维基网提供的代码,如下:
导入Java。SQL。SQL异常;
导入Java。SQL。连接;
导入Java。SQL。结果集;
导入Java。SQL。声明;
导入Java。SQL。司机经理;
公共类HiveJdbcClient {
私有静态字符串驱动程序名称= org。阿帕奇。Hadoop。蜂巢。JDBC。“配置单元驱动程序”;
* @param args
* @抛出处理
公共静态void main(String[] args)引发SQLException {
尝试{
班级。对于名称(驱动程序名称);
} catch(ClassNotFoundException e){
//TODO自动生成的捕捉块
e。printstacktrace();
系统。出口(1);
驱动程序管理器。获取连接(
JDBC:蜂巢://10。46 .169 .101:10000/默认,, );
语句stmt=con . create语句();
string tableName= testHiveDriverTable ;
stmt。执行查询( drop table tableName);
结果集RES=stmt。执行查询( create table 表名
(key int,value string));
//显示表格
string SQL= show tables tableName ;
系统。出去。println( Running: SQL );
RES=stmt。执行查询(SQL);
if (res.next()) {
系统。出去。println(RES . getstring(1));
//描述表格
sql= describe 表名
系统。出去。println( Running: SQL );
RES=stmt。执行查询(SQL);
while (res.next()) {
系统。出去。println(RES . getstring(1) \ t RES . getstring(2));
//将数据加载到表中
//注意:文件路径必须是配置单元服务器的本地路径
//注意:/tmp/a.txt是一个向下配平一个每行有两个字段的分隔文件
字符串文件路径=/tmp/a . txt ;
sql=将路径 文件路径 中的本地数据加载到表中
表结构
系统。出去。println( Running: SQL );
RES=stmt。执行查询(SQL);
//选择*查询
sql= select * from 表名
系统。出去。println( Running: SQL );
RES=stmt。执行查询(SQL);
while (res.next()) {
系统。出去。println(字符串。(RES . getint(1))的值 \ t
RES . getstring(2));
//常规配置单元查询
SQL= select count(1 from tableName;
系统。出去。println( Running: SQL );
RES=stmt。执行查询(SQL);
while (res.next()) {
系统。出去。println(RES . getstring(1));
}6)编译运行,控制台如下:div 2011-10-31121:31703 WARN[main]conf .配置(175):已弃用:在类路径中找到hadoop-site.xml .不推荐使用hadoop-site.xml .请使用core-site.xml、mapredsite . XML和hdfs-site.xml分别覆盖core-default.xml、mapreddefault . XML和hdfs-default.xml的属性/div
差异运行:显示表testHiveDriverTable /div
div testhivedrivertable /div
差异运行:描述testHiveDriverTable /div
差异密钥/div
差异值字符串/div
差异运行:将数据本地路径/tmp/a.txt 加载到表testHiveDriverTable /div中
线程“主”Java。SQL。处理中的差异异常:查询返回非零代码:10,原因:失败:语义分析中的错误:第一行:23无效路径/tmp/a.txt :没有与路径匹配的文件file:/tmp/a.txt /div
组织处的部门。阿帕奇。Hadoop。蜂巢。JDBC。hivestatement。执行查询(hivestatement。Java:192)/div
div at com。中兴。艾伦。蜂巢。hivejdbcclient。main(hivejdbcclient。Java:53)/div报了一个例外,是因为加载源是找不到/tmp/a.txt。这个不影响,但可以从硬件中断里看到已经新建了一个表testhivedrivertable。更多关于hiveserver的内容,参见官方储备正在设置配置单元服务器,还有这里介绍了各种客户端(cli、Java、PHP、Python、ODBC、Thrift方式等)如何访问蜂巢。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。