CentOS7 安装 Hive 2.3.4 (远程 Metastore 模式)

本贴最后更新于 1410 天前,其中的信息可能已经天翻地覆

分布式环境

CentOS7 安装 HA 模式 HDFS 集群准备分布式环境,同时增加节点 node09 用于部署 metastore server。

node01 node02 node03 node04 node05 node06 node07 node08 node09
1c 1c 1c 1c 1c 1c 1c 1c 1c
2G 2G 1G 1G 1G 1G 1G 1G 1G
10.4.96.4 10.4.96.5 10.4.96.6 10.4.96.7 10.4.96.8 10.4.96.9 10.4.96.10 10.4.96.11 10.4.96.12
hive mysql

1. 安装 MySQL 服务端和客户端

1.1 添加 mysql5.7 仓库

[root@node09 ~]# rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
[root@node09 ~]# yum makecache fast

1.2 安装 MySQL

[root@node09 ~]# yum -y install mysql-community-server

1.3 启动

[root@node09 ~]# systemctl start mysqld

1.4 安全访问设置

  • 查看默认 root 密码:

    [root@node09 ~]# cat /var/log/mysqld.log | grep -i 'temporary password'
    
  • 更改 root 密码,移除匿名用户:

    [root@node09 ~]# mysql_secure_installation
    
  • 移除 root 用户远程登录限制

    [root@node09 ~]# mysql -hlocalhost -pAz123456_ -e "UPDATE mysql.user SET host='10.4.96.%' WHERE user='root';FLUSH PRIVILEGES;"
    

2. 安装 Hive (远程 Metastore 模式)

https://archive.apache.org/dist/hive/hive-2.3.4/apache-hive-2.3.4-bin.tar.gz
https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.48/mysql-connector-java-5.1.48.jar

2.1 安装应用

创建安装目录

[root@node01 ~]# mkdir -p /opt/bigdata

下载解压到安装目录

[root@node01 ~]# curl https://archive.apache.org/dist/hive/hive-2.3.4/apache-hive-2.3.4-bin.tar.gz | tar -C /opt/bigdata -zxf -
[root@node01 ~]# mv /opt/bigdata/apache-hive-2.3.4-bin /opt/bigdata/hive-2.3.4

更改应用文件属主属组

[root@node01 ~]# chown -R god:root /opt/bigdata/hive-2.3.4

配置环境变量

[root@node01 ~]# tail -n3 /etc/profile
#Hive Environment variables
export HIVE_HOME=/opt/bigdata/hive-2.3.4
export PATH=$PATH:$HIVE_HOME/bin
[root@node01 ~]# source /etc/profile

2.2 配置应用

配置 hive-site.xml 文件

[root@node01 conf]# pwd
/opt/bigdata/hive-2.3.4/conf
[root@node01 conf]# cp hive-default.xml.template hive-site.xml
[root@node01 conf]# vim hive-site.xml
...
<configuration>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://node09:3306/hive?createDatabaseIfNotExist=true</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>Az123456_</value>
    </property>
</configuration>

mysql-connector-java-5.1.48.jar 拷贝到 hive home 的 lib 目录下,以支持 hive 对 mysql 的连接操作。

[root@node01 lib]# pwd
/opt/bigdata/hive-2.3.4/lib
[root@node01 lib]# wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.48/mysql-connector-java-5.1.48.jar

Hive 2.1 之后版本要执行的初始命令

[root@node01 ~]# schematool -dbType mysql -initSchema
[root@node09 ~]# mysql -h10.4.96.12 -pAz123456_ -e "show databases;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hive               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

测试 hive

注意切换到 god 用户了,因为 hdfs 是用 god 用户启动的,参照前面的文章。 真烦,默认用 root 不就得了~
Hive-on-MR 在 Hive 2 中已弃用,在以后的版本中可能不可用。 考虑使用其他执行引擎(例如 spark,tez)或使用 Hive 1.X 版本。

[god@node01 ~]# hive
...
Logging initialized using configuration in jar:file:/opt/bigdata/hive-2.3.4/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>

3. 简单操作

  • 创建表
hive> create EXTERNAL TABLE w_a
    > (
    > id INT,
    > age INT,
    > sex INT
    > )
    > ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    > LINES TERMINATED BY '\n';
OK
Time taken: 1.33 seconds
hive> show tables;
OK
w_a
Time taken: 0.082 seconds, Fetched: 1 row(s)

此时 hive 会在 hdfs 中创建对应目录

[god@node01 ~]$ hadoop fs -ls /user/hive/warehouse
Found 1 items
drwxr-xr-x   - god supergroup          0 2020-05-18 18:49 /user/hive/warehouse/w_a
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    81 引用 • 122 回帖 • 614 关注
  • Hive
    22 引用 • 7 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...