设置 源数据 保存到MySQL数据库问题
1.加载 MySQL 驱动包到 hive 的 lib 目录下
2.在 hive 的conf 目录下新建 hive-site.xml 文件
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop-5:3306/hive?createDatabaseIfNotExist=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>mysql</value>
</property>
</configuration>
3.启动 hive 后使用 databases 命令报错
hive> show databases;
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
解决方法:
[hadoop@hadoop-1 bin]$ ./hive --service metastore &
[2] 6074
4.启动 hive 报错 —> 连接远程 MySQL 数据库
java.sql.SQLException: null, message from server: "Host 'hadoop-1' is not allowed to connect to this MySQL server"
解决方法:
1.登陆到MySQL,输入 ----> 查看是否有 user表
use mysql;
show tables;
2.输入 -----> 修改远程连接权限
select host from user; ----> 查看哪些地方可以连接数据局
update user set host ='%' where user ='root'; ----> 任何地方 root 用户都可以连接数据库
3. 重启mysql 服务
systemctl restart mysqld;