一、准备工作
1、打开VMware Workstation里的Hadoop1、Hadoop2、Hadoop3这三台虚拟机;
2、需要hive的压缩包,apache-hive-3.1.1-bin.tar.gz;
3、需要以下有关MySQL的压缩包,
mysql-community-common-5.7.36-1.el7.x86_64.rpm、
mysql-community-libs-5.7.36-1.el7.x86_64.rpm、
mysql-community-client-5.7.36-1.el7.x86_64.rpm 、
mysql-community-server-5.7.36-1.el7.x86_64.rpm
mysql-connector-java-5.1.46;
4、远程连接工具Xftp8,Xftp-8.0.0057p.exe;
5、保证主机网络通畅。
二、实验步骤
1、环境为Hadoop
如果有搭建HA-Hadoop,那么请回到刚搭建完Hadoop的快照那里。因为HA-Hadoop环境并不稳定,我们并不需要这个环境。
(以下为例子:)
2、安装Hive
(1)上传hive安装包
首先打开xftp8,其次将xftp8与Hadoop1相连接,然后将hive的安装包拖动到Hadoop1中。
(2)解压hive安装包
解压命令如下:
tar -zxvf /root/apache-hive-3.1.1-bin.tar.gz -C /export/servers/
重命名hive解压后的文件,命令如下:
- cd /export/servers/
- mv apache-hive-3.1.1-bin hive-3.1.1
(3)同步jar包
将 Hive 中的 guava-19.0.jar 替换为 Hadoop 中的 guava-27.0-jre.jar
A.切换到Hadoop 中的 guava-27.0-jre.jar所在的文件目录
cd /export/servers/hadoop-3.3.1/share/hadoop/common/lib/
B.复制guava-27.0-jre.jar到hive相应的文件目录
cp guava-27.0-jre.jar /export/servers/hive-3.1.1/lib/
C.然后删除guava-19.0.jar
rm /export/servers/hive-3.1.1/lib/guava-19.0.jar
(4)配置环境变量
vi /etc/profile
进入文件后shift+g到达文件底部,然后添加以下内容:
- export HIVE_HOME=/export/servers/hive-3.1.1
-
- export PATH=$PATH:$HIVE_HOME/bin
配置完毕后,初始化环境变量:
source /etc/profile
(5)初始化
命令如下,
schematool -initSchema -dbType derby
(出现如下图所示,即为初始化成功)
(6)连接hive服务
A.启动Hadoop集群
B.启动hive
- start-all.sh
- hive
(下图为启动成功的图片)
3、安装MySQL
(1)卸载 MariaDB
查看mariadb的版本号并卸载:
- rpm -qa | grep mariadb
- rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
(2)安装mysql
A.上传MySQL文件
B.使用 rpm 安装 mysql
- rpm -ivh mysql-community-common-5.7.36-1.el7.x86_64.rpm
- rpm -ivh mysql-community-libs-5.7.36-1.el7.x86_64.rpm
- rpm -ivh mysql-community-client-5.7.36-1.el7.x86_64.rpm
- rpm -ivh mysql-community-server-5.7.36-1.el7.x86_64.rpm
(下图为安装成功的图示)
C.添加中文支持
- vi /etc/my.cnf
- # 添加内容如下:
- default-storage-engine=innodb
- innodb_file_per_table
- collation-server=utf8_general_ci
- init-connect='SET NAMES utf8'
- character-set-server=utf8
(3)启动 mysql 服务
- # 启动 mysql 服务
- systemctl start mysqld
- # 查看状态
- systemctl status mysqld
(4)获取初始密码
cat /var/log/mysqld.log | grep password
(下图为获取初始密码的图示)
(5)登录MySQL
- mysql -uroot -p’--wRd+JB4oh-’
- # 修改密码:
- alter user 'root'@'localhost' identified by 'Password@123';
- Flush privileges;
(6)修改 hive-site.xml(直接创建 hive-site.xml文件就行)
A.切换目录:cd /export/servers/hive-3.1.1/conf/
B.vi编辑配置文件:vi hive-site.xml
C.添加内容如下:
- <configuration>
- <property>
- <name>javax.jdo.option.ConnectionURL</name>
- <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&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>Password@123</value>
- </property>
- </configuration>
(7)上传 connector
cp /root/mysql-connector-java-5.1.46.jar /export/servers/hive-3.1.1/lib/
(8)初始化数据库
schematool -initSchema -dbType mysql
4、Hive shell 命令行的使用
(1)连接 hive
hive
(2)创建/查看/使用数据库
- create database testDB; # 创建数据库
- show databases; # 查看数据库
- desc database testDB; # 使用数据库
- drop database testDB; # 删除数据库
(3)创建表
- # A.创建数据库itcast,
- create database itcast;
-
- # B.创建表managed_table,
- create table if not exists
- itcast.managed_table(
- dept_id INT comment "This is deptid",
- staff_id INT comment "This is staffid",
- staff_name STRING comment "This is staffname",
- staff_age INT comment "This is staffage",
- salary FLOAT comment "This is staff salary",
- hobby ARRAY<STRING> comment "This is staff hobby",
- base_info MAP<STRING, INT> comment "Record height and weight",
- person_info STRUCT<marry:STRING,children:STRING>)
- row format delimited
- fields terminated by ','
- collection items terminated by '_'
- map keys terminated by ':'
- lines terminated by '\n'
- tblproperties("comment"="This is a managed table");
(4)在HDFS文件系统中查看表的目录
(也就是在浏览器中搜索:http://192.168.1.132:9870)
评论记录:
回复评论: