任务描述
任务内容为安装并配置在Hadoop集群中使用Hive。
任务指导
Hive是一个基于Hadoop的数据仓库框架,在实际使用时需要将元数据存储在数据库中
具体安装步骤如下:
-
安装MySQL数据库(已安装)
-
解压缩Hive的压缩包
-
配置Hive的环境变量
-
拷贝MySQL的驱动包到Hive的lib目录下
-
修改Hive的配置文件,Hive的配置文件存放在Hive安装目录下的conf中
-
初始化Hive的元数据
-
Hive只需要安装在需要执行Hive操作的节点上(master1)。
任务实现
1. 安装MySQL数据库
已在master1安装可以直接使用
用户名:root
密码:Qst@123456
2. 安装Hive。在master1服务器解压并配置。
下载"apache-hive-2.3.4-bin.tar.gz",已经放到/opt/software目录下;
输入【cd /opt/software】命令转到/opt/software目录下;
输入【tar -xzvf apache-hive-2.3.4-bin.tar.gz -C /opt/app/】命令解压。
3. 配置Hive环境变量,修改系统配置文件/etc/profile。
输入【vi /etc/profile】命令,编辑/etc/profile文件。
/etc/profile文件修改为如下内容:
export HIVE_HOME=/opt/app/apache-hive-2.3.4-bin
export PATH=$PATH:$HIVE_HOME/bin
刷新环境变量让配置生效
[root@master1 ~]# source /etc/profile
4. 将MySQL驱动包导入Hive的lib目录中
将/opt/software目录中的MySQL驱动包拷贝到$HIVE_HOME/lib目录中中
[root@master1 ~]# cp /opt/software/mysql-connector-java-5.1.47-bin.jar $HIVE_HOME/lib
5. 配置hive-site.xml文件
进入Hive配置目录【$HIVE/conf】编辑【hive-site.xml】文件
[root@master1 ~]# cd $HIVE_HOME/conf
[root@master1 conf]# vim hive-site.xml
hive-site.xml文件配置内容如下:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master1:3306/hive?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false</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>Qst@123456</value>
</property>
<property>
<name>datanucleus.readOnlyDatastore</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>false</value>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>true</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateTables</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateColumns</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
</configuration>
配置hive-env.sh文件,通过hive-env.sh.template模版文件创建hive-env.sh文件并进行配置
[root@master1 conf]# cp hive-env.sh.template hive-env.sh
[root@master1 conf]# vi hive-env.sh
在文件末尾添加如下配置
HADOOP_HOME=/opt/app/hadoop-2.10.1
export HIVE_CONF_DIR=/opt/app/apache-hive-2.3.4-bin/conf
export HIVE_AUX_JARS_PATH=/opt/app/apache-hive-2.3.4-bin/conf/lib
6. 初始化Hive的元数据
执行如下命令初始化Hive的元数据,初始化前应确保MySQL数据已经启动,MySQL的启动命令【systemctl start mysqld.service】
[root@master1 ~]# schematool -dbType mysql -initSchema
7. 进入Hive命令行
[root@master1 ~]# hive
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/app/apache-hive-2.3.4-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/app/hadoop-2.8.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Logging initialized using configuration in jar:file:/opt/app/apache-hive-2.3.4-bin/lib/hive-common-2.3.4.jar!/hive-log4j2.properties Async: true
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>