扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
因为hive是基于hadoop的,所以一定要有hadoop的平台支撑:
hadoop分布式集群搭建:https://blog.51cto.com/14048416/2341491
创新互联科技有限公司专业互联网基础服务商,为您提供多线BGP机房,高防服务器,成都IDC机房托管,成都主机托管等互联网服务。
安装步骤:
安装时的常见错误:
注意:使用Derby方式部署的hive,在哪个工作空间进入hive,就会在哪个工作空间创建一个derby.log metastore_db,元数据。即元数据跟着空间跑,如果下次不在这个工作空间进入,则无法访问上传存储的数据。因此这也是使用Derby方式部署的hive的弊端。
首先这里需要MySQL的服务,在集群的任意节点上配置MySQL。
安装步骤:
javax.jdo.option.ConnectionURL
jdbc:mysql://hadoop02:3306/hivedb?createDatabaseIfNotExist=true
JDBC connect string for a JDBC metastore
javax.jdo.option.ConnectionDriverName
Stay hungry Stay foolish -- http://blog.csdn.net/zhongqi2513
com.mysql.jdbc.Driver
Driver class name for a JDBC metastore
javax.jdo.option.ConnectionUserName
root
username to use against metastore database
javax.jdo.option.ConnectionPassword
root
password to use against metastore database
hive.metastore.warehouse.dir
/user/hive/warehouse
export HIVE_HOME=/home/hadoop/apps/apache-hive-1.2.1-bin
export PATH=$PATH:$HIVE_HOME/bin
TBLS:管理表的表
COLUMNS_V2:管理字段的表
Connecting to jdbc:hive2://hadoop01:10000
Enter username for jdbc:hive2://hadoop01:10000: hadoop
Enter password for jdbc:hive2://hadoop01:10000: ******
18/10/15 16:30:37 [main]: WARN jdbc.HiveConnection: Failed to connect to hadoop01:10000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop01:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to impersonate hadoop (state=08S01,code=0
报这个错误的原因不是hive本身,而是hive底层所依赖的hdfs的权限管理提高了,hadoop集群报出来的。必须做权限认证。
解决方法:
dfs.webhdfs.enabled
true
hadoop.proxyuser.hadoop.hosts
*
hadoop.proxyuser.hadoop.groups
*
hive的命令分成两大类:
- 进入hive客户端之后的操作:
- query:正常的操作语句(查询+库表的DDL操作)
- !linux命令:在hive客户端中执行Linux命令(只能执行部分)
- 在hive客户端中执行hadoop相关命令
hive>!hadoop fs -ls / ; (以Linux命令的形式执行) 慢
hive>dfs -ls /; 使用当前的hive客户端的jvm进程执行 快
常见操作有:
hive>quit; #退出hive的客户端
hive>set key=value; #设置hive的参数
hive>add jar xxx.jar #临时的向hive添加jar包
hive>add file #向hive中的classpath中添加file
hive>list jars #查看添加的jar
hive>source file #执行一个脚本(这个脚本时存储在linux上)
- 进入hive客户端之前的操作:
[hadoop hadoop01@~]$ hive -e 'hql' #在linux下执行hive语句
[hadoop hadoop01@~]$ hive -f linux中的hql脚本 #在Linux下执行hql脚本
[hadoop hadoop01@~]$ hive -h hiveconf key=value # 进入hive客户端,并初始化参数(只能设置一个)
[hadoop hadoop01@~]$ hive -i linux参数文件 #进入,hive并执行参数文件中的所有参数设置
[hadoop hadoop01@~]$ hive -v #输出结果打印到控制台
[hadoop hadoop01@~]$ hive -S #不打印日志,经常和-e参数使用
[hadoop hadoop01@~]$ hive -S -e 'hql' >> file #将查询到的结果输出到Linux文件中
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流