hive安装
hive内置元数据库Derby,但一般采用自有的元数据库,这里用mysql
hive集群分配:
软件 | warehouse101 | warehouse102 | warehouse103 |
---|---|---|---|
hadoop | √ | √ | √ |
hive | √ | √ | √ |
mysql | √ |
元数据(metastore)采用远程模式配置,配置规划:
服务 | warehouse101 | warehouse102 | warehouse103 |
---|---|---|---|
metastore | √ | √ | |
HiveServer2 | √ |
mysql安装
1.检查是否已安装mysql或mariadb,并安装相关依赖
-
分别执行命令:
rpm -qa|grep mysql、rpm -qa|grep mariadb
查询结果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vXjvUj3p-1636966295041)(C:\Users\38734\AppData\Roaming\Typora\typora-user-images\image-20211110104600265.png)]
-
删除系统自带mariadb。-e 删除指定的套件;–nodeps 不验证套件的相互关联性
rpm -e --nodeps mariadb-libs
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GCJDtUjO-1636966295044)(C:\Users\38734\AppData\Roaming\Typora\typora-user-images\image-20211110104637673.png)]
-
安装相关依赖 。命令:
yum -y install perl net-tools
2.上传mysql安装包进行安装,本项目采用5.7.26版本
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yHvLM90U-1636966295047)(C:\Users\38734\AppData\Roaming\Typora\typora-user-images\image-20211110104920652.png)]
-
解压缩
tar vxf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar -C /opt/lwp/servers/
-
在解压缩目录依次运行以下命令:
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm ## 安装公共模块 rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm ## 安装相关包 rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm ##安装客户端 rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm ##安装服务端
-
启动数据库。 命令:
systemctl start mysqld
-
查找root密码并用密码登录数据库。 命令:
grep password /var/log/mysqld.log
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V3hN7fRy-1636966295051)(C:\Users\38734\AppData\Roaming\Typora\typora-user-images\image-20211110105838885.png)]
3.修改root密码,并创建hive用户
-
设置用户密码策略:
set global validate_password_policy=0;
- 注:validate_password_policy 密码策略(默认是1),可配置的值有以下:
- 0 or LOW 仅需需符合密码长度(由参数validate_password_length【默认为8】
指定) - 1 or MEDIUM 满足LOW策略,同时还需满足至少有1个数字,小写字母,大写
字母和特殊字符 - 2 or STRONG 满足MEDIUM策略,同时密码不能存在字典文件(dictionary
file)中 - 个人开发环境,出于方便的目的设比较简单的密码;生产环境一定要设复杂密
码!
- 0 or LOW 仅需需符合密码长度(由参数validate_password_length【默认为8】
- 注:validate_password_policy 密码策略(默认是1),可配置的值有以下:
-
设置root用户密码:
set password for 'root'@'localhost' =password('12345678'); flush privileges;
-
创建hive用户
CREATE USER 'hive'@'%' IDENTIFIED BY '12345678'; GRANT ALL ON *.* TO 'hive'@'%'; FLUSH PRIVILEGES;
hive安装测试
1.上传软件包,并安装
- 上传软件包
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YCrm5wT4-1636966295053)(C:\Users\38734\AppData\Roaming\Typora\typora-user-images\image-20211110092441687.png)]
-
解压文件到软件安装文件夹。命令:
tar zvxf apache-hive-2.3.7-bin.tar.gz -C /opt/lwp/servers/
-
修改文件夹名称。命令:
mv apache-hive-2.3.7-bin/ hive-2.3.7
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cwcmlLLj-1636966295056)(C:\Users\38734\AppData\Roaming\Typora\typora-user-images\image-20211110111130150.png)]
2.修改环境变量
-
在/etc/profile文件里增加环境变量
export HIVE_HOME=/opt/lagou/servers/hive-2.3.7 export PATH=$PATH:$HIVE_HOME/bin
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MBh0wca0-1636966295059)(C:\Users\38734\AppData\Roaming\Typora\typora-user-images\image-20211110111717712.png)]
-
使环境变量生效。命令:
source /etc/profile
3.修改hive元数据库相关配置
- 新建hive-site.xml文件,将配置复制进文件:vi $HIVE_HOME/conf/hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- hive元数据的存储位置 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://warehouse103:3306/hivemetadata?createDatabaseIfNotExist=true&useSSL=false</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<!-- 指定驱动程序 -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<!-- 连接数据库的用户名 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username to use against metastore database</description>
</property>
<!-- 连接数据库的口令 -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>12345678</value>
<description>password to use against metastore database</description>
</property>
</configuration>
4.上传mysql jdbc驱动程序到$HIVE_HOME/lib文件夹
5.初始化元数据库
命令:
schematool -dbType mysql -initSchema
6.启动hive,测试单节点安装是否成功
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wJLxMKBx-1636966295065)(C:\Users\38734\AppData\Roaming\Typora\typora-user-images\image-20211111172752236.png)]
以上执行hive进入命令行模式,然后执行show functions命令查看hive自带方法,命令成功执行即安装成功。
7.修改配置文件,将以下内容加入hive-site.xml文件
<property>
<!-- 数据默认的存储位置(HDFS) -->
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<property>
<!-- 在命令行中,显示当前操作的数据库 -->
<name>hive.cli.print.current.db</name>
<value>true</value>
<description>Whether to include the current database in the Hive prompt.</description>
</property>
<property>
<!-- 在命令行中,显示数据的表头 -->
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<!-- 操作小规模数据时,使用本地模式,提高效率 -->
<name>hive.exec.mode.local.auto</name>
<value>true</value>
<description>Let Hive determine whether to run in localmode automatically</description>
</property>
<!-- hive metastore 服务地址,见元数据配置规划 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://warehouse101:9083,thrift://warehouse103:9083</value>
</property>
8.修改日志文件目录
cd $HIVE_HOME/conf
mv hive-log4j2.properties.template hive-log4j2.properties
vi $HIVE_HOME/conf/hive-log4j2.properties
#注释掉 property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name}
# 添加以下内容:
property.hive.log.dir = /opt/lagou/servers/hive-2.3.7/logs
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j56KesZC-1636966295067)(C:\Users\38734\AppData\Roaming\Typora\typora-user-images\image-20211111174753208.png)]
9.配置HiveServer2:
修改core-site.xml文件,加入以下内容,并分发给其他服务器
<!-- HiveServer2 连不上10000;hadoop为安装用户 -->
<!-- root用户可以代理所有主机上的所有用户 -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
修改hdfs-site.xml文件,增加以下内容,并分发给其他服务器
<!-- HiveServer2 连不上10000;启用 webhdfs 服务 -->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
10.分发hive-2.3.7文件夹给其他服务器构建hive集群
11.在warehouse101和warehouse103上开启元数据服务
命令:
# 启动 metastore 服务
nohup hive --service metastore &
# 安装lsof
yum install lsof
# 查询9083端口(metastore服务占用的端口)
lsof -i:9083
12.到此hive基本部署完成
flume安装
1.将安装包上传并解压
2.修改/etc/profile配置文件,加入以下内容
#add FLUME_HOME
export FLUME_HOME=/opt/lwp/servers/flume-1.9.0
export PATH=$PATH:$FLUME_HOME/bin
3.使环境变量生效
source /etc/profile
4.修改flume配置文件
cd $FLUME_HOME/conf
mv flume-env.sh.template flume-env.sh
vi flume-env.sh
export JAVA_HOME=/opt/lwp/servers/jdk1.8.0_231