HIV接口,hive连接端口

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: