hive压缩包解压
使用mysql存储元数据
创建 hive 账号 hive元数据库
create database hive_metadata;
create user 'hive'@'%' identified by 'hive'
账号授权
grand all privileges on hive_metadata.* to 'hive'@'%'
flush privileges
通过hive账号登陆mysql,验证成功
将所需依赖包mysql-connector-java.jar 复制到 hive/lib。
配置hive-site.xml
把所有的${system:java.io.tmpdir} 都替换为/usr/hive/tmp
把所有的${system:user.name}替换为${user.name}
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/usr/hive/warehouse</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>/usr/hive/scratchdir</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/usr/hive/logs</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive</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>root</value>
</property>
配置好后的文件 复制到其他slave节点。在slave节点hive-site.xml,javax.jdo.option.ConnectionURL 中localhost改为主节点名hadoopM (主节点要使用localhost)
并添加
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoopM:9083</value>
</property>
初始化 hive 数据库
主节点/.../apache-hive-2.*-bin/bin下执行
schematool -dbType mysql -initSchema
在使用客户端访问hive之前,先在主节点执行
hive --service metastore &
hive --service hiveserver2 &
来启动metastore Hive Thrift客户端服务
问题:
启动 metastore 时,发现hadoop、hive日志jar包冲突,删除其中一个
Loading class `com.mysql.jdbc.Driver'. This is deprecated.错误。
更改 hive-site.xml 中 DriverName 为 com.mysql.cj.jdbc.Driver
使用
先启动hdfs,后启动hive客户端
hive操作hdfs时,也需要关闭防火墙,否的找不到其他机器的datanode
集群正常使用要进行时间同步 ntp工具
网友评论