分布式环境
继 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
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于