Hive的安装过程

it2022-06-24  82

Hive的安装

Hive有两种安装模式 1)使用默认的自带的元数据库 1.上传安装包 2.解压 tar -zxvf apache-hive-2.3.2-bin.tar.gz 3.配置环境变量 ln -s apache-hive-2.3.2-bin hive export HIVE_HOME=/home/hadoop01/apps/hive export PATH= P A T H : PATH: PATH:HIVE_HOME/bin source /etc/profile 4.元数据初始化 schematool -dbType derby -initSchema 初始化过程 创建元数据库的 默认创建的元数据库的名字 metastore_db jdbc:derby:;databaseName=metastore_db;create=true schemaTool completed 成功标志 初始化成功后 初始化的当前目录: derby.log 数据库的日志信息 metastore_db 元数据库 derby库中的数据存在这个目录下的 schemaTool failed 失败 5.启动 启动hive前,一定要保证Hadoop集群正常启动,否则会报错

Caused by: java.net.ConnectException: Connection refused 启动完如果日志信息如下 Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases. hive>

说明元数据没有初始化成功 格式化成功后,再格式化的目录下 启动hive 是可以正常运行的

换个目录启动就又会报错

FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient 元数据格式化问题

这就是默认数据库的缺点 只能再哪一个目录下初始化元数据就只能再这个目录下使用hive , 启动hive时候只会找当前目录下的元数据库,一旦启动的目录与格式化的目录不同,这个时候启动命令仍然会报元数据没有初始化 不同目录下的元数据不能共用 2)使用MySQL做原数据库

hive 依赖 hadoop zookeeper jdk mysql

1.上传安装包 2.解压安装 tar -zxvf apache-hive-2.3.2-bin.tar.gz 3.修改环境变量 和上面的一样 4.安装MySQL sudo yum install -y mysql-server sudo service mysqld start 修改MySQL的用户名密码 use mysql; delete from user where user=’’; update user set host=’%’ where host=‘localhost’; update user set password=PASSWORD(‘123456’) where user=‘root’; flush privileges; 5.修改Hive的配置文件

touch hive-site.xml vim hive-site,xml <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.2.101:3306/bd1901?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> <!-- hive连接mysql的连接url 如果 mysql 和 hive 在同一个服务器节点,连接的主机名最好为 localhost bd1901 hive的元数据库 --> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>root</value> <description>password to use against metastore database</description> </property> <property> <name>datanucleus.schema.autoCreateAll</name> <value>true</value> </property> </configuration>

6.将hadoop的 hdfs-site core-site 添加到hive的conf目录下

cp /home/hadoop01/apps/hadoop/etc/hadoop/core-site.xml /home/hadoop/apps/hadoop/etc/hadoop/hdfs-site.xml /home/hadoop/apps/hive/conf/

7.初始化Hive的元数据库 1)将mysql的驱动放在hive安装目录的lib下 2)格式化 生成mysql中hive对应的元数据库 bd1901 生成了一些列的表(存储元数据用的) schematool -dbType mysql -initSchema

8.启动Hive 使用过程中一般启动Hive的本地模式 , 在Hive的客户端执行

9.常用的Hive客户端设置

set hive.exec.mode.local.auto=true; set hive.cli.print.header=true; set hive.mapred.mode=nonstrict;

最新回复(0)