使用Hive客户端 本章节主要介绍使用Hive客户端 。 操作场景 该任务指导用户在运维场景或业务场景中使用Hive客户端 前提条件 已安装客户端,例如安装目录为“/opt/hadoopclient”,以下操作的客户端目录只是举例,请根据实际安装目录修改。 各组件业务用户由系统管理员根据业务需要创建。安全模式下,“机机”用户需要下载keytab文件。“人机”用户第一次登录时需修改密码。 使用Hive客户端(MRS 3.x之前版本) 1.以客户端安装用户,登录安装客户端的节点。 2.执行以下命令,切换到客户端安装目录。 cd /opt/hadoopclient 3.执行以下命令配置环境变量。 source bigdataenv 4.根据集群认证模式,完成Hive客户端登录。 安全模式,则执行以下命令,完成用户认证并登录Hive客户端。 kinit 组件业务用户 beeline 普通模式,则执行以下命令,登录Hive客户端,如果不指定组件业务用户,则会以当前操作系统用户登录。 beeline n 组件业务用户 说明 进行beeline连接后,可以编写并提交HQL语句执行相关任务。如需执行Catalog客户端命令,需要先执行!q命令退出beeline环境。 5. 使用以下命令,执行HCatalog的客户端命令。 hcat e "cmd" 其中 "cmd" 必须为Hive DDL语句,如 hcat e "show tables" 。 说明 若要使用HCatalog客户端,必须从“组件管理”页面单击“下载客户端”,下载全部服务的客户端。Beeline客户端不受此限制。 由于权限模型不兼容,使用HCatalog客户端创建的表,在HiveServer客户端中不能访问,但可以使用WebHCat客户端访问。 在普通模式下使用HCatalog客户端,系统将以当前登录操作系统用户来执行DDL命令。 退出beeline客户端时请使用!q命令,不要使用“Ctrl + c”。否则会导致连接生成的临时文件无法删除,长期会累积产生大量的垃圾文件。 在使用beeline客户端时,如果需要在一行中输入多条语句,语句之间以“;”分隔,需要将“entireLineAsCommand”的值设置为“false”。 设置方法:如果未启动beeline,则执行beelineentireLineAsCommandfalse命令;如果已启动beeline,则在beeline中执行!set entireLineAsCommand false命令。 设置完成后,如果语句中含有不是表示语句结束的“;”,需要进行转义,例如 select concatws(';',collectset(col1)) from tbl 。