HIVE的安装与配置实验

安装此实验需要准备能够安装在Linux的mysql的安装包以及hive的安装包,这里推荐区官网下载,

整个实验的安装都是在root模式下进行的

su root  #进入root模式,然后输入自己的root模式的密码

MySQL的安装

卸载mariadb

linux系统会自动携带一个数据库,我们需要把它给卸载掉
通过以下代码可以查看mariadb

rpm -qa | grep mariadb

卸载mariadb

yum remove mariadb-libs-5.5.52-1.el7.x86_64 -y

再次查看是否卸载成功

rpm -qa | grep mariadb
上传mysql并解压

这里可以使用xshell或者ftp或者MobaXterm_Portable_v22.2上传到自己的安装路径下,不会上传的自己去csdn里搜索相关的教程,这里不做过多的讲解,
1.创建mysql目录到/usr/local目录下

cd /usr/local 
mkdir mysql

2.上传安装包到/usr/local/mysql中,进行解压

tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar

3.安装mysql

注意:按照依赖关系依次安装rpm包 依赖关系依次为common→libs→client→server
按照顺序依次输入下列命令

rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
yum install -y net-tools
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm

4.查看版本

mysql --version

mysql Ver 14.14 Distrib 5.7.28, for Linux (x86_64) using EditLine wrapper,如果出现该提示,则证明mysql已经安装成功了。

5.启动mysql服务

== 每次开机都要手动启动mysql ==
systemctl start mysqld

== 开机时自动开启mysql ==
systemctl enable mysqld

== 停止mysql服务器==
service mysqld stop

==启动mysql服务器==

service mysqld start

== 查看mysql是否启动==
service mysqld status

6.登录mysql

mysql -uroot -proot

ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

提示错误,是因为第一次登录mysql需要使用mysql的临时密码,该密码存放在mysql日志文件中。在 /var/log/mysqld.log 文件中

cd  /var/log

查询临时密码

grep -n password mysqld.log

[Note] A temporary password is generated for root@localhost: 0x(g<n074&7W
0x(g<n074&7W 就是mysql自动生成的临时密码

重新登录mysql,隐式登录

mysql -uroot -p

把临时密码粘贴
如果出现 mysql>则登录成功

7.设置免密登录

vim /etc/my.cnf

进入到 mysqld.cnf 这个配置文件,然后在这个配置文件中的 [mysqld] 这一块中加入 **skip-grant-tables **这句话,
重启 MySQL 服务

service mysql restart

二、 Hive 安装

1.使用上传工具上传hive的安装包到/usr/local中,然后解压

tar -zxvf apache-hive-3.1.2-bin.tar.gz

2.将文件夹名改为hive

mv apache-hive-3.1.2-bin hive  #apache-hive-3.1.2-bin是解压出来的hive文件,要改为自己解压出来的hive文件
  1. 修改文件权限
chown -R hadoop:hadoop hive # 修改文件权限
  1. 配置hive
cd /usr/local/hive/conf

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

5.在这个目录下修改 hive-site.xml

vim hive-site.xml

configuration添加如下:

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/usr/local/hive/warehouse</value>
</property>

6.更改guava的版本
如果目录不同的改为自己的目录,特别是其中的Hadoop的安装目录和hive的安装目录

mv /usr/local/hive/lib/guava-19.0.jar /usr/local/hive/lib/guava-19.0.jar.bak
cp /usr/local/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /usr/local/hive/lib/

7.初始化数据库

start-dfs.sh
./schematool -initSchema -dbType derby

注意:如果出错

如果出错就把/usr/local/hive/bin/metastore_db删掉
rm -r /usr/local/hive/bin/metastore_db
重新初始化:

cd /usr/local/hive/bin/
./schematool -initSchema -dbType derby

8.使用数据库

cd /usr/local/hive/bin/
输入命令: ./hive
退出 hive> exit;

9.Hive命令行的使用

(2)显示数据库

hive> show databases;
(3)使用default数据库

hive> use default;
(4)显示default数据库中的表

hive> show tables;
 (5)创建student表, 并声明文件分隔符’\t’

hive> create table student(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED  BY '\t';
(6)加载/opt/student.txt 文件到student数据库表中。
###完成此步骤需要提前在opt目中创建student.txt中输入
22      33
1001    hyt
1002    zhangsan
1003    lisi

hive> load data local inpath '/opt/student.txt' into table student;
(7)Hive查询结果

hive> select * from student;

OK
22      33
1001    hyt
1002    zhangsan
1003    lisi
Time taken: 0.408 seconds, Fetched: 4 row(s)