1. 资源规划
| 组件 | bigdata-hk-node1 | bigdata-hk-node2 | bigdata-hk-node3 |
|---|---|---|---|
| OS | centos7.6 | centos7.6 | centos7.6 |
| HDFS | NN/DN | DN | 2NN/DN |
| YARN | NM | RM/NM/JobHistoryServer | NM |
| MySQL | N.A | N.A | mysqld |
| Hive | HiveServer2/CLI/Beeline | N.A | N.A |
2. 安装介质
版本:apache-hive-3.1.2-bin.tar.gz
下载:http://archive.apache.org/dist/hive
3. 环境准备
- 安装Hadoop
- 安装MySQL
4. 安装Hive
4.1. 解压缩
# 登录bigdata-hk-node1节点cd /sharetar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/module/
4.2. 创建相关目录
cd /opt/module/apache-hive-3.1.2-bin/confcp hive-env.sh.template hive-env.shcp hive-default.xml.template hive-site.xmlcp hive-log4j2.properties.template hive-log4j2.propertiesmkdir -p /opt/module/apache-hive-3.1.2-bin/logsmkdir -p /opt/module/apache-hive-3.1.2-bin/tmpdir
4.3. 配置Hive
配置hive-log4j2.properties。
vi /opt/module/apache-hive-3.1.2-bin/conf/hive-log4j2.properties
配置如下(修改):
# 日志目录需要提前创建property.hive.log.dir=/opt/module/apache-hive-3.1.2-bin/logs
配置hive-env.sh。
vi /opt/module/apache-hive-3.1.2-bin/conf/hive-env.sh
配置如下(新增):
# 末尾添加export HADOOP_HOME=/opt/module/hadoop-3.1.3export HIVE_CONF_DIR=/opt/module/apache-hive-3.1.2-bin/confexport HIVE_AUX_JARS_PATH=/opt/module/apache-hive-3.1.2-bin/lib
配置hive-site.xml。
rm -rf /opt/module/apache-hive-3.1.2-bin/conf/hive-site.xmlvi /opt/module/apache-hive-3.1.2-bin/conf/hive-site.xml
服务端配置:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>system:java.io.tmpdir</name><value>/opt/module/apache-hive-3.1.2-bin/tmpdir</value></property><property><name>system:user.name</name><value>vagrant</value></property><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><!-- Hive服务端配置 --><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://bigdata-hk-node3:3306/hive2_metadata?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>hive2</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>hive2</value></property></configuration>
5. 配置Hadoop
配置core-site.xml。
vi /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
配置如下:
<!-- hiveserver2增加了权限控制,需要在hadoop的配置 --><property><name>hadoop.proxyuser.vagrant.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.vagrant.groups</name><value>*</value></property>
配置hdfs-site.xml。
vi /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
配置如下:
<property><name>dfs.webhdfs.enabled</name><value>true</value></property>
修改完配置文件后注意分发到集群其他节点。
scp -r /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml vagrant@bigdata-hk-node2:/opt/module/hadoop-3.1.3/etc/hadoop/scp -r /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml vagrant@bigdata-hk-node3:/opt/module/hadoop-3.1.3/etc/hadoop/scp -r /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml vagrant@bigdata-hk-node2:/opt/module/hadoop-3.1.3/etc/hadoop/scp -r /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml vagrant@bigdata-hk-node3:/opt/module/hadoop-3.1.3/etc/hadoop/
之后在HDFS上创建Hive仓库存储目录。 ```bash
启动HDFS并创建Hive相关目录
cd /opt/module/hadoop-3.1.3/
创建Hive相关路径并赋权
bin/hdfs dfs -mkdir -p /user/hive/warehouse bin/hdfs dfs -mkdir -p /user/hive/tmp bin/hdfs dfs -mkdir -p /user/hive/log bin/hdfs dfs -chmod -R 777 /user/hive/warehouse bin/hdfs dfs -chmod -R 777 /user/hive/tmp bin/hdfs dfs -chmod -R 777 /user/hive/log
<a name="NN09n"></a># 6. 环境变量设置```bashsudo vi /etc/profile.d/bigdata_env.sh # :$(或G:`shift+g`)到达行尾添加
配置如下:
# HIVE_HOMEexport HIVE_HOME=/opt/module/apache-hive-3.1.2-binexport PATH=$HIVE_HOME/bin:$PATH
环境变量生效:
source /etc/profile
7. 依赖冲突解决
# 使用官方介质安装需要执行如下操作,使用兼容版本则不需执行(已替换为:guava-27.0-jre.jar)rm -rf /opt/module/apache-hive-3.1.2-bin/lib/guava-19.0.jarcp /opt/module/hadoop-3.1.3/share/hadoop/common/lib/guava-27.0-jre.jar /opt/module/apache-hive-3.1.2-bin/lib/
8. 集成MySQL
上传MySQL驱动包至${HIVE_HOME}/lib,推荐mysql-connector-java-5.1.40.jar以上版本。(下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java)
cp /share/mysql-connector-java-5.1.47.jar /opt/module/apache-hive-3.1.2-bin/lib/
创建元数据库用户。
# bigdata-hk-node3(MySQL安装节点,root)sudo susource /etc/profilemysql -uroot -p123456
操作如下:
-- 创建Hive用户CREATE USER 'hive2'@'%' IDENTIFIED BY 'hive2';GRANT ALL PRIVILEGES ON *.* TO 'hive2'@'%' WITH GRANT OPTION;flush privileges;quit
初始化元数据,看到“schemaTool completed” ,即初始化成功!
cd /opt/module/apache-hive-3.1.2-binschematool -initSchema -dbType mysql -verbose
元数据库授权。
# bigdata-hk-node3(MySQL安装节点,root)sudo susource /etc/profilemysql -uroot -p123456
操作如下:
-- 对元数据库赋权限use mysql;select User, Host from user;update user set host='%' where host='localhost';-- delete from user where host='localhost' and User='hive2';-- 删除root用户的其他host(%之外)use hive2_metadata;grant all on hive2_metadata.* to hive2@'%' identified by 'hive2';ALTER DATABASE hive2_metadata CHARACTER SET latin1;flush privileges;quit
9. 验证
# 需提前启动HDFS和Yarn服务# 创建数据文件vi /datas/stu.txt
内容如下:
00001,zhangsan00002,lisi00003,wangwu00004,zhaoliu
创建库表并加载数据到Hive表: ```bash cd /opt/module/apache-hive-3.1.2-bin/bin
方式1:普通CLI
./hive
方式2:打开debug模式
./hive -hiveconf hive.root.logger=DEBUG,console
创建表
hive> CREATE TABLE stu(id INT,name STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’ ;
加载数据
hive> load data local inpath ‘/datas/stu.txt’ into table stu;
查看库表(不走MR,fetch抓取)
hive> select * from stu;
查看库表(调用MR)
hive> select count(*) from stu; ```
