Hive和Mysql的安装
基于centos7且已安装hdfs
Hive
下载
前往hive.apache.org/download.html界面下载hive
解压
使用tar -zxvf 压缩包
- bin 二进制文件目录
- conf 配置文件目录(主要操作)
- scripts脚本文件目录
配置环境变量
在/etc/profile文件中添加如下代码(文件末尾)
vi /etc/profile
#HIVE_HOME指向安装目录
export HIVE_HOME=/usr/soft/hive
export PATH=$PATH:$HIVE_HOME/bin
更新环境变量
. /etc/profile
编写配置文件
cd /usr/soft/hive/conf
vi hive-site.xml
添加如下代码
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://master:9000/hive/data</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>hdfs://master:9000/hive/tmp</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>hdfs://master:9000/hive/log</value>
</property>
</configuration>
创建工作目录
在hdfs开启的基础上执行
hdfs dfs -mkdir /hive
hdfs dfs -mkdir /hive/data
hdfs dfs -mkdir /hive/log
hdfs dfs -mkdir /hive/tmp
- /hive/data 存放数据
- /hive/log 存放日志
- /hive/tmp 存放临时文件
为hive的工作目录文件授权
hdfs dfs -chown 777 /hive/*
初始化元数据
把元数据存储到hive自带的小型关系型数据库derby中
schematoool -dbType derby --initSchema
若出现java.long.NoSuchMethodError且末尾daiV的错误提示
则需要将hadoop下的share/hadoop/common/lib/guava-**.jar放到hive/lib下,并将原先的旧的jar包删除
使用hive
hive
进入hive命令窗口
Mysql
yum方式安装
找到yum文件地址
在mysql官网找到要安装的文件的地址
如:https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
安装
执行如下命令安装yum文件
yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
执行如下命令安装mysql
yum install mysql-server
注:网络状态不好,安装较慢
RPM安装
删除遗留文件
如果安装过mysql,需要先卸载,并删除所有配置文件
找到配置文件
find / -name mysql
使用rm -rf 删除
安装mysql
解压准备好的文件
按次序安装common–>libs–>client–>server如下
rpm -ivh mysql-community-common-8.0.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.21-1.el7.x86_64.rpm
第一次安装common会出现错误
错误:依赖检测失败:
mariadb-libs 被 mysql-community-libs-8.0.21-1.el7.x86_64 取代
使用yum remove mysql.libs即可解决
安装server会报错,少依赖
错误:依赖检测失败:
/usr/bin/perl 被 mysql-community-server-8.0.21-1.el7.x86_64 需要
libaio.so.1()(64bit) 被 mysql-community-server-8.0.21-1.el7.x86_64 需要
libaio.so.1(LIBAIO_0.1)(64bit) 被 mysql-community-server-8.0.21-1.el7.x86_64 需要
libaio.so.1(LIBAIO_0.4)(64bit) 被 mysql-community-server-8.0.21-1.el7.x86_64 需要
perl(Getopt::Long) 被 mysql-community-server-8.0.21-1.el7.x86_64 需要
perl(strict) 被 mysql-community-server-8.0.21-1.el7.x86_64 需要
其中带so的可以用如下命令jiejue
yum install net-tools.x86_64 libaio -y
带perl的可用如下ml
yum install perl-JSON.noarch -y
查看是否完全安装
使用命令查看是否是4个
rpm -qa | grep mysql
初始化
指定用户
mysqld --initlized --user=root
文件目录授权
chown mysql:mysql /var/lib/mysql -R
启动服务
service mysqld start
查看状态
service mysqld status
若启动错误,可查看/var/log/mysqld.log日志文件
如若出现 --initialize specified but the data directory has files in it. Aborting.
则需要在/var/lib/mysql下新建了一个data文件夹,且修改/etc/my.cnf文件中的datadir=/var/lib/mysql/data
登录
mysql安装是会自动生成临时密码,放在/var/log/mysqld.log中,使用如下密码找到临时密码
cat /var/log/mysqld.log | grep password
拿到临时密码后登录mysql
mysql -uroot -p
输入临时密码
修改root密码
登入mysql后
alter user root@localhost identified by'新密码'
新密码必须要有大小写字母、数字、特殊符号
hive使用mysql存储元数据
配置
-
将mysql的驱动mysql-connector-java-8.0.21.jar放到hive/lib目录下
-
在hive-site.xml中指定mysql的参数
<property> <name>hive.metastore.warehouse.dir</name> <value>hdfs://master:9000/hive/data</value> </property> <property> <name>hive.exec.scratchdir</name> <value>hdfs://master:9000/hive/tmp</value> </property> <property> <name>hive.querylog.location</name> <value>hdfs://master:9000/hive/log</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master:3306/hive?useSSL=false&allowPublicKeyRetrieval=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>Root111!</value> </property> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> <property> <name>datanucleus.metadata.validate</name> <value>false</value> </property> <property> <name>datanucleus.schema.autoCreateAll</name> <value>true</value> </property>
初始化
schematool -dbType mysql --initSchema
启动hdfs
>start-hdfs.sh
>hdfs dfsadmin -safemode leave
访问hive
>hive