天天看点

hive启动时拒绝连接_Hive的安装方式

hive启动时拒绝连接_Hive的安装方式

1、内嵌模式:采用hive自带的元数据管理

不需要额外的配置,但是需要进行初始化操作【将某个数据库生成相应的表结构数据】。

元数据管理是采用的是内置的一个数据库【derby】

解压、配置环境变量

直接输入:hive

Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

没有进行初始化操作

建议另起一个目录,执行初始化数据库的操作:schematool -initSchema -dbType derby

derby数据库的初始化是在当前目录下创建对应的存储数据的目录

在derby的数据目录下,执行hive

Exception in thread "main" java.lang.RuntimeException: java.net.ConnectException: Call From kd0601/192.168.200.20 to kd0601:9000 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: Apache Software Foundation

因为hive是强依赖于hadoop的,所以在启动的时候,需要启动hdfs。在执行sql的时候需要启动yarn

当出现:hive> 表示成功

内嵌模式只用于【学习】使用

1.1:在非初始化目录下执行hive

Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

derby数据库,只能在当前目录下使用,如果想多次使用,就需要多次初始化,那么就会产生多个元数据管理数据库【多个之间并不是同步的】

1.2当我们的目录被一个用户正在使用的时候,我们在次进去输入hive。

Caused by: java.sql.SQLException: Another instance of Derby may have already booted the database /bigdata/testhive/metastore_db.

at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)

derby数据库只支持单用户操作。

2、本地模式

元数据管理采用的是mysql。

2.1:在hive的主机当中安装mysql

建议采用5.7:mysql57-community-release-el7-11.noarch.rpm

rpm -Uvh mysql57-community-release-el7-11.noarch.rpm

yum install

在linux内部加上mysql的yum地址

yum install mysql-community-server -y

启动:

service mysqld start

查看初始密码

grep 'temporary password' /var/log/mysqld.log CvaesagKS9<i

2018-11-14T08:41:17.971383Z 1 [Note] A temporaryse'r password is generated for [email protected]: aUxp&KHj5AxJ

进入mysql的控制台:mysql -uroot -p 回车之后在输入密码【因为默认密码当中有特殊符号】

alter user 'root'@'localhost' identified by 'MyNewPass4.'

默认情况下,是不允许远程访问的,所以我们需要将mysql的远程访问打开

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyNewPass4.' WITH GRANT OPTION;

WITH GRANT OPTION:表示可以向下授权

生效:FLUSH PRIVILEGES

mysql与hive进行连接

修改配置文件:

mv hive-default.xml.template hive-site.xml

notepad++的插件

<configuration>

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://192.168.200.20:3306/hive_class?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>MyNewPass4!</value>

</property>

<property>

<name>hive.metastore.schema.verification</name>

<value>false</value>

</property>

</configuration>

初始化:schematool -initSchema -dbType mysql

异常:

Underlying cause: java.lang.ClassNotFoundException : com.mysql.jdbc.Driver

Use --verbose for detailed stacktrace.

缺少mysql的驱动包:将mysql的驱动包放到:/bigdata/hive/lib

再进行初始化的操作:

在任意目录下,输入ve

默认会在hdfs的/user/hive/warehouse目录创建对应的文件

3、远程模式