hive搭建,
1.简单启动
hive下载官方包解压进入bin目录可以直接使用./hive进入客户端
2.元数据
这时创建数据库与表,(没有配置元数据,元数据使用默认的derby内嵌的方式),会在当前目录下创建metastore_db目录作为元数据目录,退出hive之后进入另一个目录再一次启动hive,会生成新的元数据目录,之前创建的数据库与表不能被正常读取(即不显示这张表)
一般生产环境使用mysql作为元数据,就可以解决元数据不一致问题
3.标准配置
(1)修改备份文件得到hive-evn.sh 在程序中添加HADOOP_HOME目录配置
(2)编辑文件hive-size.xml配置mysql元数据,不过不编辑,将使用hive-default.xml文件作为配置
配置内容
<configuration>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://mvlocal:3306/db?createDatabaseIfNotExist=true&serverTimezone=UTC&useSSL=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
</configuration>
4.将mysql驱动放在lib目录下(启动失败请检查mysql驱动与mysql版本是否匹配)
5.启动
Hive 启动的方式
(1).hive交互shell bin/hive
(2).hive jdbc 服务,参考java jdbc连接mysql
(3).hive启动为一个服务
启动服务bin/hiveserver2
或者 nohup bin.hiveserver2 1>./hiveserver.log 2>hiveserver.err &
~~~~
启动成功后,在别的节点上用beeline去连接
bin/beeline
! connect jdbc:hive2://mini1:10000
(4).使用hive命令
hive -e 'sql语句'
bin/hive -e "select * from t_test"
6.启动异常
( User: root is not allowed to impersonate root ) 解决方式
修改hadoop核心配置文件 core-site.xml
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
重启hadoop