cdh hive服务器shell脚本执行hiveshell

人气:2007934
访问用户量:2614
笔记经验:1309
总积分:1409
级别:普通会员
搜索本笔记
ta的交流分类
ta的全部笔记
浏览(30624)|(1)
&&交流分类:|笔记分类:
第一部分:搭建Hive JDBC开发环境
搭建:Steps
o新建工程hiveTest
o导入Hive依赖的包
oHive& 命令行启动Thrift服务
ohive --service hiveserver &
第二部分:基本操作对象的介绍
Connection
o说明:与Hive连接的Connection对象
oHive 的连接
ojdbc:hive://IP:10000/default“
o获取Connection的方法
oDriverManager.getConnection(&jdbc:hive://IP:10000/default&, &&, &&);
o说明: 用于执行语句
oStatement stmt = con.createStatement();
oexecuteQuery
o说明:用来存储结果集
ostmt.executeQuery 方法得到
ogetString()
特殊类型的处理
第三部分:简单示例
时代的到来,选择各种移动终端来上网的人越
来越多,如手机、平板等,这里面蕴含着巨大的商机
,因为终端可以直接精确到人。所以对用户上网日志
的分析,也成为一个新热点,这些在数据库时代是不
可想象的,因为数据规模超大,云计算解决了这个问
o分析用户的手机上网日志,得到
手机流量统计
信息与根据终端来获得流量的统计信息
&&&&&& 用户手机号码 ,终端类型 ,访问的URL ,访问开始时间 ,访问结束时间 ,访问流量
&&& phone string ,client_type& string ,url &string,visit_begintime timestamp,visit_endtime timestamp,traffic& bigint
o数据间以\t分隔,行之间以\n分隔
o数据示例:
&&&&& &&&& andorid &&
17:30:08&&&&
17:31:09&&&& 10
o数据文件位置:
&&& /home/test/log.txt
手机号归属地
phone_location
用户手机号码 ,归属地
phone string ,location stirng
数据间以\t分隔,行之间以\n分隔
数据示例: chaoyang
数据文件位置:
/home/test/phone_local.txt
手机流量统计信息
total_traffic_by_phone
手机号码 ,总流量(k) , 归属地, 访问总时长(秒)
&&&&&&&&&&&&&& phone string,totol_traffic bigint,area string,visit_total_time timestamp
分隔,行之间以
&&&& 数据示例:
&&&&&&&&&&
102 chaoyang& 123
终端类型统计信息
total_traffic_by_client_type
终端类型 ,访问总流量(k)
&&&&&& client_type string,totoal_traffic bigint
分隔,行之间以
&&&& 数据示例:
&andorid 1034
o初始化数据,表
o示例:create external table phone_location (phone string,area string) row format delimited fields terminated by '\t' lines terminated by '\n' stored as textfile
o编写处理逻辑
Java 代码示例
Class.forName(driverName);
Connection con = DriverManager.getConnection(&jdbc:hive://IP:10000/default&, &&, &&);
Statement stmt = con.createStatement();
String sql = &show tables &;
// show tables
System.out.println(&Running: & + sql);
ResultSet res = stmt.executeQuery(sql);
if (res.next()) {
System.out.println(res.getString(1));
第四部分:基于Hive的数据库连接池
基于Hive的数据库连接池的实现
o使用DataSource作为数据源的实现
oDBConnectionManager 采用单例模式
o提供获得连接,关闭连接的方法
osetupDataSource()
oDBConnectionManager getInstance()
oclose(Connection conn)
osynchronized Connection getConnection()
转载请注明【
相关笔记推荐
精品视频课程推荐
创建规范的XML文档,DTD的作用,并且可以根据要求创建私用的DTD,通过JavaScript解析XML DOM
本课程专注于数据结构和算法的内容,使用Java来进行代码示例,不空洞的讲解概念和理论,重点放在代码的实现和示例上。
从零开始、全面系统、成体系的讲解数据结构和基本算法,循序渐进的讲述构建软件系统所常见的数据结构和算法。
内容概述:Shiro是目前最热门、最易用、功能超强大的Java权限管理框架,强烈推荐,每个项目都必备的权限管理技术!通过本课程,你将从零开始直到彻底掌握Shiro的相关开发知识,达到可以进行实际项目开发的能力。包括:权限管理基础、Shiro入门、配置、身份认证、授权、Realms、Session管理、和Spring的集成、Web、Cache等众多开发细节技术
技术要点:源码级分析Shiro的授权过程、自定义开发Realm、多个Realms的开发配置、自定义开发AuthenticationStrategy、自定义开发自定义SessionDAO、和Struts2+Spring3的集成(包括修正struts2的bug)、Shiro和SpringMVC+Spring3的集成、包装使用其他的Cache框架、缓存数据同步更新的解决方案等等实际开发中常用的内容
数据校验、Javascript模拟多线程、下拉列表联动、操作XML、AJAX结合JSON的操作、Json-lib的使用
中国移动科技综合管理系统,对JDBC实现CRUD的抽象化和复用化;UUID自动生成;分层开发、综合示范Jsp+Servlet+JavaBean+TagLib+JSTL+JDBC的实现;Web分页、Web树、日期控件、真实值和表现值转换;众多杂项技术的实现,比如:tab、左右选择等等
浏览(30624)|(1)
&&交流分类:|笔记分类:
学习一下...
版权所有 Copyright(C) 私塾在线学习网急问,oozie执行hive脚本报错
[问题点数:100分,结帖人stefalee]
急问,oozie执行hive脚本报错
[问题点数:100分,结帖人stefalee]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年12月 高性能开发大版内专家分月排行榜第二
2014年12月 高性能开发大版内专家分月排行榜第二
2014年12月 高性能开发大版内专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。CDH5.0.2升级至CDH5.2.0 - 空中的鱼 - ITeye技术网站
博客分类:
升级需求
1.为支持spark kerberos安全机制
2.为满足impala trunc函数
3.为解决impala import时同时query导致impala hang问题
升级步骤
参考/content/cloudera/en/documentation/core/latest/topics/installation_upgrade.html
优先升级cloudera manager,再升级cdh
1.准备工作:
统一集群root密码,需要运维帮忙操作下
agent自动重启关闭
事先下载好parcals包
登录cmserver安装的主机,执行命令:
cat /etc/cloudera-scm-server/db.properties
备份CM数据:
& pg_dump -U scm -p 7432&& & scm_server_db_backup.bak
& 检查/tmp下是否有文件生成,期间保证tmp下文件不要被删除。
停止CM server :
& sudo service cloudera-scm-server stop
停止CM server依赖的数据库:
& sudo service cloudera-scm-server-db stop
如果这台CM server上有agent在运行也停止:
& sudo service cloudera-scm-agent stop
修改yum的 cloudera-manager.repo文件:
& sudo vim /etc/yum.repos.d/cloudera-manager.repo
&& [cloudera-manager]
&&&&&& # Packages for Cloudera Manager, Version 5, on RedHat or CentOS 6 x86_64
&&&&&& name=Cloudera Manager
&&&&&& baseurl=/cm5/redhat/6/x86_64/cm/5/
&&&&&& gpgkey = /cm5/redhat/6/x86_64/cm/RPM-GPG-KEY-cloudera
&&&&&& gpgcheck = 1
安装:
& sudo
&&&&& yum clean all
&&&&& sudo yum upgrade 'cloudera-*'
检查:
& rpm& -qa 'cloudera-manager-*'
启动CM server 数据库:
& sudo& service cloudera-scm-server-db start
启动CM server:
& sudo& service cloudera-scm-server start
登录http://172.20.0.83:7180/
& 安装agent(步骤略)
升级如果升级jdk,会改变java_home路径,导致java相关服务不可用,需要重新配置java_home
升级CM后需要重启CDH。
3.CDH升级
停止集群所有服务
备份namenode元数据:
& 进入namenode dir,执行:
&& tar -cvf /root/nn_backup_data.tar ./*
下载parcels
分发包-&激活包-&关闭(非重启)
开启zk服务
进入HDFS服务-&升级hdfs metadata
& namenode上启动元数据
& 启动剩余HDFS角色
& namenode响应RPC
& HDFS退出安全模式
备份hive metastore数据库
& mysqldump -h172.20.0.67 -ucdhhive -p111111 cdhhive & /tmp/database-backup.sql
进入hive服务-&更新hive metastore
&&&& database scheme
更新oozie sharelib:oozie-&install
&&&& oozie share lib
& 创建 oozie user
&&&&& sharelib
& 创建 oozie user
&&&&& Dir
更新sqoop:进入sqoop服务-&update
&&&& sqoop
& 更新sqoop2 server
更新spark(略,可先卸载原来版本,升级后直接安装新版本)
启动集群所有服务:zk-&hdfs-&spark-&flume-&hbase-&hive-&impala-&oozie-&sqoop2-&hue
分发客户端文件:deploy client
&&&& configuration
& deploy hdfs client configuration
& deploy spark client configuration
& deploy hbase client configuration
& deploy yarn client configuration
& deploy hive client configuration
删除老版本包:
& sudo& yum remove bigtop-utils bigtop-jsvc bigtop-tomcat hue-common sqoop2-client
启动agent:
& sudo service cloudera-scm-agent restart
HDFS
& metadata update
& hdfs server-&instance-&namenode=&action-&Finalize
&&&&& Metadata Upgrade
升级过程遇主要问题:
com.cloudera.server.cmf.FeatureUnavailableException: The feature Navigator Audit Server is not available.
&&&&&&& at com.cloudera.ponents.LicensedFeatureManager.check(LicensedFeatureManager.java:49)
&&&&&&& at com.cloudera.ponents.OperationsManagerImpl.setConfig(OperationsManagerImpl.java:1312)
&&&&&&& at com.cloudera.ponents.OperationsManagerImpl.setConfigUnsafe(OperationsManagerImpl.java:1352)
&&&&&&& at com.cloudera.api.dao.impl.ManagerDaoBase.updateConfigs(ManagerDaoBase.java:264)
&&&&&&& at com.cloudera.api.dao.impl.RoleConfigGroupManagerDaoImpl.updateConfigsHelper(RoleConfigGroupManagerDaoImpl.java:214)
&&&&&&& at com.cloudera.api.dao.impl.RoleConfigGroupManagerDaoImpl.updateRoleConfigGroup(RoleConfigGroupManagerDaoImpl.java:97)
&&&&&&& at com.cloudera.api.dao.impl.RoleConfigGroupManagerDaoImpl.updateRoleConfigGroup(RoleConfigGroupManagerDaoImpl.java:79)
&&&&&&& at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&&&&&&& at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
&&&&&&& at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
&&&&&&& at java.lang.reflect.Method.invoke(Method.java:606)
&&&&&&& at com.cloudera.api.dao.impl.ManagerDaoBase.invoke(ManagerDaoBase.java:208)
&&&&&&& at com.sun.proxy.$Proxy82.updateRoleConfigGroup(Unknown Source)
&&&&&&& at com.cloudera.api.v3.impl.RoleConfigGroupsResourceImpl.updateRoleConfigGroup(RoleConfigGroupsResourceImpl.java:69)
&&&&&&& at com.cloudera.api.v3.impl.MgmtServiceResourceV3Impl$RoleConfigGroupsResourceWrapper.updateRoleConfigGroup(MgmtServiceResourceV3Impl.java:54)
&&&&&&& at com.cloudera.cmf.service.upgrade.RemoveBetaFromRCG.upgrade(RemoveBetaFromRCG.java:80)
&&&&&&& at com.cloudera.cmf.service.upgrade.AbstractApiAutoUpgradeHandler.upgrade(AbstractApiAutoUpgradeHandler.java:36)
&&&&&&& at com.cloudera.cmf.service.upgrade.AutoUpgradeHandlerRegistry.performAutoUpgradesForOneVersion(AutoUpgradeHandlerRegistry.java:233)
&&&&&&& at com.cloudera.cmf.service.upgrade.AutoUpgradeHandlerRegistry.performAutoUpgrades(AutoUpgradeHandlerRegistry.java:167)
&&&&&&& at com.cloudera.cmf.service.upgrade.AutoUpgradeHandlerRegistry.performAutoUpgrades(AutoUpgradeHandlerRegistry.java:138)
&&&&&&& at com.cloudera.server.cmf.Main.run(Main.java:587)
&&&&&&& at com.cloudera.server.cmf.Main.main(Main.java:198)
03:17:42,891 INFO ParcelUpdateService:com.ponents.ParcelDownloade
原先版本使用了60天试用企业版本,该期限已经过期,升级时Navigator服务启动不了,导致整个cloduera manager server启动失败
升级后问题
a.升级后flume原先提供的第三方jar丢失,需要将包重新放在/opt....下
b.sqoop导入mysql的驱动包找不到,需要将包重新放在/opt....下
c.hbase服务异常
Unhandled exception. Starting shutdown.
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User hbase/ip-10-1-33-20.ec2. (auth:KERBEROS) is not authorized for protocol interface org.apache.hadoop.hdfs.protocol.ClientProtocol, expected client Kerberos principal is null
at org.apache.hadoop.ipc.Client.call(Client.java:1409)
at org.apache.hadoop.ipc.Client.call(Client.java:1362)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
at com.sun.proxy.$Proxy15.setSafeMode(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:186)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
at com.sun.proxy.$Proxy15.setSafeMode(Unknown Source)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.setSafeMode(ClientNamenodeProtocolTranslatorPB.java:594)
at org.apache.hadoop.hdfs.DFSClient.setSafeMode(DFSClient.java:2224)
at org.apache.hadoop.hdfs.DistributedFileSystem.setSafeMode(DistributedFileSystem.java:993)
at org.apache.hadoop.hdfs.DistributedFileSystem.setSafeMode(DistributedFileSystem.java:977)
at org.apache.hadoop.hbase.util.FSUtils.isInSafeMode(FSUtils.java:432)
at org.apache.hadoop.hbase.util.FSUtils.waitOnSafeMode(FSUtils.java:851)
at org.apache.hadoop.hbase.master.MasterFileSystem.checkRootDir(MasterFileSystem.java:435)
at org.apache.hadoop.hbase.master.MasterFileSystem.createInitialFileSystemLayout(MasterFileSystem.java:146)
at org.apache.hadoop.hbase.master.MasterFileSystem.&init&(MasterFileSystem.java:127)
at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:789)
at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:606)
at java.lang.Thread.run(Thread.java:744)
通过cm将safe配置文件里的hbase.rpc.engine org.apache.hadoop.hbase.ipc.SecureRpcEngine去掉后重启成功。
后来发现是cm server的问题,之前修改了一个hostname,cloudera manager server未重启,重启后,加入该配置重启hbase不会有问题。
d.service monitor,zookeeper也有警告,其他服务都有部分红色异常
Exception in scheduled runnable.
java.lang.IllegalStateException
at mon.base.Preconditions.checkState(Preconditions.java:133)
at com.cloudera.cmon.firehose.polling.CdhTask.checkClientConfigs(CdhTask.java:712)
at com.cloudera.cmon.firehose.polling.CdhTask.updateCacheIfNeeded(CdhTask.java:675)
at com.cloudera.cmon.firehose.polling.FirehoseServicesPoller.getDescriptorAndHandleChanges(FirehoseServicesPoller.java:615)
at com.cloudera.cmon.firehose.polling.FirehoseServicesPoller.run(FirehoseServicesPoller.java:179)
at com.cloudera.enterprise.PeriodicEnterpriseService$UnexceptionablePeriodicRunnable.run(PeriodicEnterpriseService.java:67)
at java.lang.Thread.run(Thread.java:745)
后来发现是cm server的问题,之前修改了一个hostname,cloudera manager server未重启,重启后,加入该配置重启hbase不会有问题。
e.mapreduce访问安全机制下的hbase失败
去除client hbase-site safe配置文件内容:hbase.rpc.protection privacy,旧版本中必须加此配置,而新版本文档中也提到需要加此配置,但经过测试加此配置后报如上异常。
14/11/27 12:38:26 INFO zookeeper.ClientCnxn: Socket connection established to ip-10-1-33-24.ec2.internal/10.1.33.24:2181, initiating session
14/11/27 12:38:26 INFO zookeeper.ClientCnxn: Session establishment complete on server ip-10-1-33-24.ec2.internal/10.1.33.24:2181, sessionid = 0x549ef, negotiated timeout = 60000
14/11/27 12:38:41 WARN ipc.RpcClient: Couldn't setup connection for hbase/ip-10-1-10-15.ec2. to hbase/ip-10-1-34-31.ec2.
14/11/27 12:38:55 WARN ipc.RpcClient: Couldn't setup connection for hbase/ip-10-1-10-15.ec2. to hbase/ip-10-1-34-31.ec2.
14/11/27 12:39:15 WARN ipc.RpcClient: Couldn't setup connection for hbase/ip-10-1-10-15.ec2. to hbase/ip-10-1-34-31.ec2.
14/11/27 12:39:34 WARN ipc.RpcClient: Couldn't setup connection for hbase/ip-10-1-10-15.ec2. to hbase/ip-10-1-34-31.ec2.
14/11/27 12:39:55 WARN ipc.RpcClient: Couldn't setup connection for hbase/ip-10-1-10-15.ec2. to hbase/ip-10-1-34-31.ec2.
14/11/27 12:40:19 WARN ipc.RpcClient: Couldn't setup connection for hbase/ip-10-1-10-15.ec2. to hbase/ip-10-1-34-31.ec2.
14/11/27 12:40:36 WARN ipc.RpcClient: Couldn't setup connection for hbase/ip-10-1-10-15.ec2. to hbase/ip-10-1-34-31.ec2.
Caused by: java.io.IOException: Couldn't setup connection for hbase/ip-10-1-33-20.ec2. to hbase/ip-10-1-34-32.ec2.
at org.apache.hadoop.hbase.ipc.RpcClient$Connection$1.run(RpcClient.java:821)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
at org.apache.hadoop.hbase.ipc.RpcClient$Connection.handleSaslConnectionFailure(RpcClient.java:796)
at org.apache.hadoop.hbase.ipc.RpcClient$Connection.setupIOstreams(RpcClient.java:898)
at org.apache.hadoop.hbase.ipc.RpcClient.getConnection(RpcClient.java:1543)
at org.apache.hadoop.hbase.ipc.RpcClient.call(RpcClient.java:1442)
at org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1661)
at org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1719)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.execService(ClientProtos.java:30014)
at org.apache.hadoop.hbase.protobuf.ProtobufUtil.execService(ProtobufUtil.java:1623)
at org.apache.hadoop.hbase.ipc.RegionCoprocessorRpcChannel$1.call(RegionCoprocessorRpcChannel.java:93)
at org.apache.hadoop.hbase.ipc.RegionCoprocessorRpcChannel$1.call(RegionCoprocessorRpcChannel.java:90)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:114)
... 31 more
Caused by: javax.security.sasl.SaslException: No common protection layer between client and server
at com.sun.security.sasl.gsskerb.GssKrb5Client.doFinalHandshake(GssKrb5Client.java:252)
at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:187)
at org.apache.hadoop.hbase.security.HBaseSaslRpcClient.saslConnect(HBaseSaslRpcClient.java:210)
at org.apache.hadoop.hbase.ipc.RpcClient$Connection.setupSaslConnection(RpcClient.java:770)
at org.apache.hadoop.hbase.ipc.RpcClient$Connection.access$600(RpcClient.java:357)
at org.apache.hadoop.hbase.ipc.RpcClient$Connection$2.run(RpcClient.java:891)
at org.apache.hadoop.hbase.ipc.RpcClient$Connection$2.run(RpcClient.java:888)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
at org.apache.hadoop.hbase.ipc.RpcClient$Connection.setupIOstreams(RpcClient.java:888)
... 40 more
&property&
&&&& &name&hbase.rpc.engine&/name&
&&&& &value&org.apache.hadoop.hbase.ipc.SecureRpcEngine&/value&
&/property&
mr中使用/content/cloudera/en/documentation/cdh5/v5-0-0/CDH5-Installation-Guide/cdh5ig_mapreduce_hbase.html& TableMapReduceUtil.addDependencyJars(job);方式加载。
并且使用user api加入例如:
hbase.master.kerberos.principal=hbase/ip-10-1-10-15.ec2.
hbase.keytab.path=/home/dev/1015q.keytab
f.升级后impala jdbc安全机制下不可用
java.sql.SQLException: Could not open connection to jdbc:hive2://ip-10-1-33-22.ec2.internal:21050/ym_principal=impala/ip-10-1-33-22.ec2.: GSS initiate failed
at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:187)
at org.apache.hive.jdbc.HiveConnection.&init&(HiveConnection.java:164)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:233)
at com.cloudera.example.ClouderaImpalaJdbcExample.main(ClouderaImpalaJdbcExample.java:37)
Caused by: org.apache.thrift.transport.TTransportException: GSS initiate failed
at org.apache.thrift.transport.TSaslTransport.sendAndThrowMessage(TSaslTransport.java:221)
at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:297)
at org.apache.thrift.transport.TSaslClientTransport.open(TSaslClientTransport.java:37)
at org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport$1.run(TUGIAssumingTransport.java:52)
at org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport$1.run(TUGIAssumingTransport.java:49)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548)
at org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport.open(TUGIAssumingTransport.java:49)
at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:185)
... 5 more
解决:
hadoop-auth-2.5.0-cdh5.2.0.jar
hive-shims-common-secure-0.13.1-cdh5.2.0.jar
两个包回退版本即可
浏览: 102037 次
来自: 上海
楼主你好,我用CM配置LDAP用户组映射,进入impala时, ...
版主:按你的步骤配置了,可是,执行 impala-shell
super_a 写道你好!找不到表这个问题是如何解决的,可以描 ...
你好!找不到表这个问题是如何解决的,可以描述清楚点吗?我刚也遇 ...
di1984HIT 写道谢谢,您写的很好啊,你的rowkey是 ...<link rel="stylesheet" href="/css/lightbox.css?v= echo filemtime(S_ROOT.'./css/lightbox.css');">
Hive CLI服务详解
编写人:胡旻&& 版本:V_0.5&& 修改时间:(HIVE版本CDH5.3组件V0.13)& 命令行界面,也就是CLI,是和Hive交互的最常用的方式。使用CLI,用户可以创建表,检查模式以及查询表,等等。&Hive中变量和属性命名空间如下表示:
用户自定义变量
&&--define key=value实际上和—hivevar key=value是等价的。二者都可以让用户在命令行定义用户自定义变量以便在Hive脚本中引用,来满足不同情况的执行。&当用户使用这个功能时,Hive会将这些键-值对放到hivevar命名空间,这样可以和其他3种内置命名空间(也就是hiveconf、system和env),进行区分。&Hive变量内部是以Java字符串的方式存储的。用户可以在查询中引用变量。Hive会先使用变量值替换掉查询的变量引用,然后才会将查询语句提交给查询处理器。&--hiveconf其用于配置Hive行为的所有属性。SEThive.cli.print.current.db=true,开启这个属性可以再CLI提示符前打印出当前所在的数据库名,默认的数据库名为default。这个属性的默认值是false。
hiveconf:hive.cli.print.current.db=
&对于system命名空间,Java系统对这个命名空间内容具有可读可写的权利,而env命名空间,对于环境变量只提供可读权限:
system:user.name=
和hivevar变量不同,用户必须使用system:或者env:前缀来指定系统属性和环境变量。Env命名空间可作为向Hive传递变量的一个可选的方式。
hive –e “SELECT * FROM mutable WHERE year=${env:YEAR}”;
查询处理器会在WHERE子句中查看到实际变量值2012。&Hive中“一次使用”命令我们可能有时期望执行一个或者多个查询(使用分号分隔),执行结束后hiveCLI立即退出。Hive提供了这样的功能,因为CLI可以接受-e命令这种形式。
“SELECT * FROM mytable LIMIT 3”;
&从文件中执行Hive查询Hive中可以使用-f文件名方式执行指定文件中的一个或者多个查询语句。一般把这些Hive查询文件保存为具有.q或者.hql后缀名的文件。
/path/to/file/withqueries.
&Hiverc文件讨论CLI选项是-i文件名。这个选项允许用户指定一个文件,当CLI启动时,在提示符出现前会先执行这个文件。Hive会自动在HOME目录下寻找名为.hiverc的文件,而且会自动执行这个文件中的命令。
JAR /path/to/custom_hive_extensions.
hive.cli.print.current.db=true
hive.exec.mode.local.auto=true
&自动补全功能如果用户在输入的过程中敲击Tab制表键,那么CLI会自动补全可能的关键字或者函数名。&查看操作命令历史用户可以使用上下箭头来滚动查看之前的命令。CLI不会把多行命令和查询作为一个单独的历史条目。Hive会将最近的10000行命令记录到文件$HOME/.hivehistory中。&执行Shell命令用户不需要退出hive CLI就可以执行简单的bashshell命令。只要在命令前加上!并且以分号结尾就可以:
/bin/echo “what is up”
&在hive内使用Hadoop的dfs命令用户可以在Hive CLI中执行Hadoop的dfs命令,只需要将hadoop命令中的关键字hadoop去掉,然后以分号结尾就可以:
dfs –ls /
&Hive脚本中如何进行注释用户可以以—开头的字符串来表示注释,例如:
-- Copyright
(c) 2012 humidy_corporation
&显示字段名称我们可以通过设置hiveconf配置项hive.cli.print.header为true来开启这个功能。
hive.cli.print.header=true
如果用户希望总是看到字段名称,那么只要将命令添加到$HOME/.hiverc文件中即可
信息分析/架构师,某公司}

我要回帖

更多关于 shell脚本执行hive 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信