Hive:初见
Hive 远程连接:
Hive安装:可以部署到任意一个节点,不一定在集群上,因为Hive是客户端
安装Mysql以作为Hive存储元数据的数据库,来替代Hive内置的dubby数据库,为了方便,将mysql安装在windows上,以供远程连接
创建metastore数据库
安装mysql-connector-java驱动到/opt/module/hive/lib/
创建Hive配置文件hive-site.xml配置hive
初始化Hive
schematool -initSchema -dbType mysql
对hive的元数据库进行初始化
此处出现两次错误,第一次由于MysqlConnectorjava版本错误导致的,第二次是未配置时区导致的
<value>jdbc:mysql://192.168.153.1:3306/metastore?useSSL=false&serverTimezone=UTC</value>
配置core-site.xml中的hdfs代理用户
配置hive-site.xml中的hiveserver端口号和用户
配置metastore的独立服务模式
只在一个节点配置metastore的文件信息,在其他节点配置metastore的客户端连接信息,一旦配置客户端连接信息,该节点优先选择此种连接hive的方式
启动hive
先启动hive metastore
nohup hive –-service metastore &
再启动hiveserver2
nohup hive --service hiveserver2 &
至此hive可以被外界进行访问
Hive on Spark搭建:
1.安装Hadoop
2.安装Hive,且根据使用的spark版本对官方源码进行预编译
3.安装spark
4.更改/opt/module/hive/conf/hive-site.xml和/opt/module/hive/conf/spark-default.conf
5.上传纯净版spark的jar包到hdfs的指定目录上
6.启动hadoop,启动hive(无需额外启动spark)
遇到问题:datanode是镜像复制出的,导致其uuid一致,造成了同时只能存活同一个节点且不停切换,造成了hive on spark 无法加载jar包和搜索数据的问题(显示can not obtain block),原因是节点的不同切换导致无法访问hdfs的数据副本(但使用hdfs的webui仍能正常下载数据)