Hive - 介绍 - Hive教程 | 编程字典 (codingdict.com)
Hive: 它是一个用来开发SQL类型脚本来执行MapReduce操作的平台。
Hive查询语言(HiveQL或HQL)用于MapReduce使用Hive处理结构化数据。
什么是Hive
Hive是一个数据仓库基础设施工具,用于处理Hadoop中的结构化数据。它位于Hadoop的顶部,用于汇总大数据,并使查询和分析变得轻松。
最初,Hive是由Facebook开发的,随后Apache软件基金会接手并开发了Apache Hive名下的开源软件。它被不同的公司使用。例如,Amazon在Amazon Elastic MapReduce中使用它。
Hive
Hive的特点
添加:Hive的安装(超详细)_不秃头小陈同学的博客-CSDN博客_hive安装模式教程
Hive安装教程 - 简书 (jianshu.com)
1、验证JAVA安装
在安装Hive之前,必须在您的系统上安装Java。让我们使用以下命令验证java安装:
$ java -version
2、验证Hadoop安装
在安装Hive之前,Hadoop必须安装在您的系统上。让我们使用以下命令验证Hadoop安装:
$ hadoop version
3、下载 hive-2.3.9 安装包
Index of /dist/hive (apache.org)
Index of /dist/hive/hive-2.1.0 (apache.org)
推荐: Index of /hive/hive-2.3.9 (apache.org)
4、上传后解压
$ tar -zxvf apache-hive-2.3.9-bin.tar.gz -C /opt/module/
$ cd /opt/module/
$ mv apache-hive-2.3.9-bin hive
5、编写环境变量
[root@hadoop102 apache-hive-2.3.9-bin]$ vim /etc/profile.d/my_env.sh
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbi
#HIVE_HOME
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin
$ source /etc/profile.d/my_env.sh
6、启动hadoop
[root@hadoop102 lib]$ myhadoop.sh start
7、启动hive
$ hive
# 或
$ cd $HIVE_HOME
$ bin/hive
启动报错 java.lang.NoSuchMethodError: com.google.common.base…
$ cp /opt/module/hadoop-3.1.3/share/hadoop/common/lib/guava-27.0-jre.jar /opt/module/hive/lib
$ mv guava-14.0.1.jar /opt/tmp
[root@hadoop102 lib]$ find guava*
guava-27.0-jre.jar
[root@hadoop102 software]$ tar -zxvf apache-hive-1.2.2-bin.tar.gz -C /opt/module/
[root@hadoop102 module]$ mv apache-hive-1.2.2-bin/ hive-1.2.2
6、配置Hive
为了用Hadoop配置Hive,你需要编辑 hive-env.sh 文件,该文件被放置在 $ HIVE_HOME/conf 目录。以下命令将重定向到Hive config 文件夹并复制模板文件:
$ cd $HIVE_HOME/conf
$ cp hive-env.sh.template hive-env.sh
$ vim hive-env.sh
通过追加以下行来编辑 hive-env.sh 文件:
export HADOOP_HOME=/opt/module/hadoop-3.1.3
Hive安装已成功完成。现在您需要一个外部数据库服务器来配置Metastore。
配置hive-site.xml
cd /opt/module/hive/conf/
[root@hadoop102 conf]$ vim hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURLname>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=truevalue>
<description>MySQL连接协议 description>
property>
<property>
<name>javax.jdo.option.ConnectionDriverNamename>
<value>com.mysql.jdbc.Drivervalue>
<description>JDBC连接驱动description>
property>
<property>
<name>javax.jdo.option.ConnectionUserNamename>
<value>rootvalue>
<description>用户名description>
property>
<property>
<name>javax.jdo.option.ConnectionPasswordname>
<value>123456value>
<description>密码description>
property>
configuration>
添加 mysql-connector-java-5.1.48.jar
1、解压
$ cd /opt/software/
$ tar -zxvf mysql-connector-java-5.1.48.tar.gz -C /opt/tmp
2、移动jar包
$ cd /opt/tmp/mysql-connector-java-5.1.48
$ mv mysql-connector-java-5.1.48-bin.jar mysql-connector-java-5.1.48.jar
$ cp mysql-connector-java-5.1.48.jar /opt/module/hive/lib/
(41条消息) Linux安装MySQL图文教程(详细)_一个考虑转行送外卖的程序员的博客-CSDN博客_linux安装mysql详细教程
MySQL :: Download MySQL Connector/J (Archived Versions)
MySQL :: Download MySQL Community Server (Archived Versions)
第一步:解压到usr/local/mysql
mkdir /usr/local/mysql
tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql
第二步:首先检查当前服务器上是否已经安装有mysql:
rpm -qa|grep -i mysql*
第三步:卸载centos7自带的数据库,因为centOS自带一个老版本的mariadb-libs与当前mysql包的冲突,故需要先卸载,再安装。
yum remove mariadb-libs
cd /usr/local/mysql
[root@hadoop102 mysql]$ ls
mysql-community-client-5.7.28-1.el7.x86_64.rpm mysql-community-embedded-devel-5.7.28-1.el7.x86_64.rpm
mysql-community-common-5.7.28-1.el7.x86_64.rpm mysql-community-libs-5.7.28-1.el7.x86_64.rpm
mysql-community-devel-5.7.28-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
mysql-community-embedded-5.7.28-1.el7.x86_64.rpm mysql-community-server-5.7.28-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.28-1.el7.x86_64.rpm mysql-community-test-5.7.28-1.el7.x86_64.rpm
第四步:安装mysql-community-common-5.7.28-1.el7.x86_64.rpm (解压的目录)
第五步:安装 mysql-community-libs-5.7.28-1.el7.x86_64.rpm
第六步:安装 mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
安装perl
第七步:安装mysql-community-client-5.7.28-1.el7.x86_64.rpm
第八步:安装mysql-community-server-5.7.28-1.el7.x86_64.rpm
# 第四步
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-libs-compat-5.7.28-1.el7.x86_64.rpm
# 注:此处最好使用该命令安装perl,perl依赖其他26个包,单个下载、 安装很麻烦.
yum install perl
# 第七步
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
# 第八步
yum install net-tools
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
第九步:启动mysql服务器才能正常使用
service mysqld restart
第十步:找到root用户的初始密码( U28dguBGG9*T),需要使用如下命令
[root@hadoop102 ~]$ cat /var/log/mysqld.log|grep temp
2022-04-05T05:11:52.507233Z 1 [Note] A temporary password is generated for root@localhost: U28dguBGG9*T
2022-04-05T05:11:54.945284Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
第十一步:使用root、密码链接到mysql
mysql -hlocalhost -uroot -pU28dguBGG9*T
其他
# 第十二步:降低密码复杂度限制:
mysql> set global validate_password_policy=0;
# 第十三步:降低密码长度限制
mysql> set global validate_password_length=4;
# 第十四步: 修改root用户的初始密码:
mysql> alter user 'root'@'localhost' identified by '123456';
# 第十五步:授权远程连接
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' identified by '123456';
# 第十六步: 刷新权限
mysql> flush privileges;
# 第十七步:打开navicate,新建连接
mysql> exit;
Bye
# 启动MySQL服务:
service mysqld restart
# 停止MySQL服务:
$ systemctl stop mysqld.service
# 设置mysql服务开机自启动:
$ systemctl enable mysqld.service
# 停止mysql服务开机自启动:
$ systemctl disable mysqld.service
[root@hadoop102 hive]$ cd /opt/module/hive/lib/
[server@hadoop102 lib]$ mv guava-27.0-jre.jar guava-27.0-jre.bak
[server@hadoop102 lib]$ cd /opt/module/hadoop-3.1.3/share/hadoop/common/lib
[server@hadoop102 lib]$ cp guava-27.0-jre.jar /opt/module/apache-hive-2.3.9-bin/lib/
$ cd /opt/module/hive/lib/
$ schematool -initSchema -dbType mysql -verbose
$ hive
hive> show databases;
2021-10-03T20:37:38,543 INFO [main] org.apache.hadoop.hive.conf.HiveConf - Using the default value passed in for log id: c55d738d-5d46-41bf-b069-c0cb0c4c0b08
2021-10-03T20:37:38,544 INFO [main] org.apache.hadoop.hive.ql.session.SessionState - Updating thread name to c55d738d-5d46-41bf-b069-c0cb0c4c0b08 main
OK
default
hive> create table test(id string);
hive> insert into test values ('stu01');
hive> select * from test;
hive> quit;