一、Hive安装
1.1修改Hadoop相关参数
(1)修改core-site.xml
vim /opt/module/hadoop/etc/hadoop/core-site.xml
<!-- 配置该babycun(superUser)允许通过代理访问的主机节点 -->
<property>
<name>hadoop.proxyuser.babycun.hosts</name>
<value>*</value>
</property>
<!-- 配置该babycun(superUser)允许通过代理用户所属组 -->
<property>
<name>hadoop.proxyuser.babycun.groups</name>
<value>*</value>
</property>
<!-- 配置该babycun(superUser)允许通过代理的用户-->
<property>
<name>hadoop.proxyuser.babycun.users</name>
<value>*</value>
</property>
(2)配置yarn-site.xml
vim /opt/module/hadoop/etc/hadoop/yarn-site.xml
<!-- NodeManager使用内存数,默认8G,修改为4G内存 -->
<property>
<description>Amount of physical memory, in MB, that can be allocated
for containers. If set to -1 and
yarn.nodemanager.resource.detect-hardware-capabilities is true, it is
automatically calculated(in case of Windows and Linux).
In other cases, the default is 8192MB.
</description>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
<!-- 容器最小内存,默认512M -->
<property>
<description>The minimum allocation for every container request at the RM in MBs.
Memory requests lower than this will be set to the value of this property.
Additionally, a node manager that is configured to have less memory than this value
</description>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<!-- 容器最大内存,默认8G,修改为4G -->
<property>
<description>The maximum allocation for every container request at the RM in MBs.
Memory requests higher than this will throw an InvalidResourceRequestException.
</description>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>4096</value>
</property>
<!-- 虚拟内存检查,默认打开,修改为关闭 -->
<property>
<description>Whether virtual memory limits will be enforced for containers.</description>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
1.2 Hive解压安装
1)把apache-hive-3.1.2-bin.tar.gz上传到linux的/opt/software目录下
2)将/opt/software/目录下的apache-hive-3.1.2-bin.tar.gz解压到/opt/module/目录下面
tar -zxvf /opt/module/apache-hive3.1.2-bin.tar.gz -C /opt/module/
3)修改解压后的目录名称为hive
mv /opt/module/apache-hive-3.1.2-bin /opt/module/hive
4)修改/etc/profile.d/my_env.sh文件,将hive的/bin目录添加到环境变量
sudo vim /etc/profile.d/my_env.sh
#HIVE_HOME的变量声明
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin
断开xshell,重新连接
1.3 元数据库之Mysql--将数据库由derby改为mysql
1.Mysql安装
1)检查当前系统是否安装过Mysql,如果存在就是用下列命令移除,如果不存在则忽略。
2)将MySQL安装包上传到/opt/software目录下
3)解压MySQL安装包资源解压到/opt/software 下新创建的mysql_jars目录
mkdir /opt/software/mysql_jars
tar -xf /opt/soft/mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C /opt/module/software/mysql_jars
4)查看mysql_jars目录下解压后的文件如下:
5)在/opt/software/mysql_jars目录下执行rpm安装,严格按照如下顺序执行
6)如果在mysql的数据存储路径下有文件存在,需要将其全部删除,存储路径地址在/etc/my.cnf文件中datadir参数所对应的值:
vim my.cnf
datadir=/var/lib/mysql
·删除/var/lib/mysql目录下的所有内容:
sudo rm -rf /var/lib/mysql/*
7)初始化数据库,会创建mysql内部数据库和表
sudo mysqld --initialize --user=mysql
8)初始化完成后,查看临时生成的root用户的密码,也是首次登录msql的密码
sudo cat /var/log/lysqld.log
9)启动MySQL服务
sudo systemctl start mysqld
10)登录MySQL数据库
mysql -uroot -p -->输入临时密码
11)必须先修改root用户的密码,否则执行其他的操作会报错
12)修改mysql库下的user表中的root用户允许任意ip连接
13)刷新,使得修改生效
2.配置Hive元数据库位Mysql
1) 拷贝驱动
Hive需要将元数据信息存储到元数据库mysql中,需要使用JDBC的方式连接到MySQL,所以,将MySQL的JDBC驱动拷贝到Hive的lib目录下,供hive调用
cp /opt/software/mysql-connector-java.5.1.37.jar /opt/module/hive/lib
2)配置Metastore到MySql
在/opt/module/hive/conf目录下新建hive-site.xml文件(新建的配置文件中的配置会覆盖默认配置)
vim /opt/moudle/hive/conf/hive/site.xml
<configuration>
<!-- jdbc连接的URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value>
</property>
<!-- jdbc连接的Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- jdbc连接的username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- jdbc连接的password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>你的密码</value>
</property>
<!-- Hive默认在HDFS的工作目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<!-- Hive元数据存储的验证 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!-- 元数据存储授权 -->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
</configuration>
4.Hive初始化元数据库
在mysql中创建hive存储元数据的数据库metastore,再通过hive的初始化元数据库操作创建表
1)登陆MySQL
mysql -uroot -p 密码
2)新建Hive元数据库
create database metastore;
quit;
3)初始化Hive元数据库
cd /opt/module/hive
bin/schematool -initSchema -dbType mysql -verbose
5.启动Hive
1)启动Hive
cd /opt/module/hive
bin/hive
6.修改元数据库字符集
mysql -uroot -p密码
1)字段注释
alter table matastore.COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
2)表注释
alter table metastore.TABLE_PARAMS modify column PARAM_VALUE mediumtext character set utf8;
3)修改hive-site.xml中JDBC URL,如下
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false&useUnicode=true&characterEncoding=UTF-8</value>
</property>
1.3 HiveServer2模式
开启HiveServer2模式
1)在hive-site.xml文件中添加如下配置信息:
<!-- 指定hiveserver2连接的host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>hadoop102</value>
</property>
<!-- 指定hiveserver2连接的端口号 -->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
2)启动Hive服务
bin/hive --service hiveserver2
3)启动beeline客户端
bin/beeline -u jdbc:hive2://hadoop102:10000 -n 用户名