目录
- 1. 完成hadoop安装配置
- 2. 安装配置MySql
- 安装
- 配置
- 3. 安装Hive
- 4. 配置元数据到MySQL
- 5. hiveserver2服务
- 配置文件
- 测试
1. 完成hadoop安装配置
在Linux操作系统的ECS实例上安装hadoop
- 以上已安装并配置完jdk、hadoop
- 也搭建了伪分布集群
2. 安装配置MySql
安装
下下一步初始化Hive元数据库时,遇到报错前一天两三小时没解决,问题定位在mysql,次日打算重装
linux卸载mysql8重装5
配置
- 登录mysql
- 设置root远程连接
use mysql
select user, host from user;
update user set host="%" where user="root";
select user, host from user;
flush privileges;
create database metastore; # 准备下一步配置元数据到MySQL
exit
3. 安装Hive
- hive阿里云镜像:https://mirrors.aliyun.com/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
- 用wget 下载
wget https://mirrors.aliyun.com/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
- 我解压hive安装包至/opt/hive
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/
mv /opt/apache-hive-3.1.2-bin /opt/hive
- 加上hive环境变量
echo 'export HIVE_HOME=/opt/hive/' >> /etc/profile
echo 'export PATH=$PATH:$HIVE_HOME/bin' >> /etc/profile
source /etc/profile
hive --version
- 初始化 Hive 的元数据存储结构
schematool -dbType derby -initSchema
先测试下,后面改完hive与mysql的相关配置后再-dbType mysql
4. 配置元数据到MySQL
- 拷贝JDBC
cp mysql-connector-java-5.1.49.jar $HIVE_HOME/lib
- 添加hive配置文件
vi $HIVE_HOME/conf/hive-site.xml
<!--指定Hive元数据存储的JDBC连接URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/metastore?useSSL=false</value>
</property>
<!--指定JDBC驱动程序的名称,mysql5这么写-->
<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>
<!--指定Hive数据仓库的默认位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<!--指定连接MySQL数据库的密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>sql密码</value>
</property>
- 采用MySQL存储元数据
schematool -dbType mysql -initSchema -verbose
这步真的遇到很多问题,就到处看帖子把和我报错信息一样的都拿来试试…实在不行就重装咯毕竟不懂什么底层逻辑…
- 使用hive
hive> show databases;
hive> show tables;
hive> create table stu(id int, name string);
hive> insert into stu values(1,"ss");
hive> select * from stu;
5. hiveserver2服务
作用:开启用户模拟访问Hadoop集群数据
配置文件
配置访问hadoop的权限
vi $HADOOP_HOME/etc/hadoop/core-site.xml
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.users</name>
<value>*</value>
</property>
hiveserver2连接的ip
vi $HIVE_HOME/conf/hive-site.xml
<!-- 指定hiveserver2连接的host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>主机名</value>
</property>
<!-- 指定hiveserver2连接的端口号 -->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
测试
- 启动hiveserver2
hive --service hiveserver2
- 再打开个ssh连接窗口
beeline -u jdbc:hive2://主机名:10000 -n root
- DataGrip连接
创建hive连接
输入服务器ip、端口号、数据库用户名、数据库密码,第一次连提示缺少JDBC驱动,直接点击下载
连接成功:
ps:连接失败有可能因为ECS安全组没加10000