2020红亚杯:Hive搭建
hive远程模式
slave2
01下载MySQL
前提:修改本地源
安装MySQL:yum -y install mysql-community-server
02启动MySQL服务
重启所用修改过的配置文件:
systemctl daemon-reload; systemctl start mysqld;#开启服务 systemctl enable mysqld;#开机自启
若不免密则:
grep "temporary password" /var/log/mysqld.log 04MySQL密码安全测试
- 设置密码强度为底级**:**设置密码长度**:**修改本地密码**:msyql
58.56.20.138mysql set global validate_password_policy=0; set global validate_password_length=4; alter user 'root'@'localhost' identified by '123456';
- 退出**:\q
05授权及生效
- 新密码登录MySQL**:
mysql -uroot -p123456
- 创建新用户**:
mysql create user 'root'@'%' identified by'123456';
- 允许远程链接**:
mysql grant all privileges on *.*to 'root'@'%' with grant option;
1)查看 mysql 数据库下的 user表信息:
```mysql use mysql; # 切换成mysql数据库 select user,host from user; # 查询用户信息 ```
```mysql
- 设置远程登录权限
update user set host='%' where host='localhost';
- 刷新配置信息
flush privileges; ```
- 刷新权限**:
58.56.20.138mysql flush privileges; 58.56.20.138
![](D:\学习\笔记\红亚杯\imgs\10.png)
- 可以创建数据库了**==重要==
58.56.20.138mysql create database hongyaa; 58.56.20.138
- 客户端服务器端都执行master和salve1
- 01下载解压**
58.56.20.138 mkdir -p /usr/hive 58.56.20.138
58.56.20.138 tar -zxvf apache-hive-2.3.4-bin.tar.gz -C /usr/hive 58.56.20.138
- 02配置环境变量**
(1)首先打开 /etc/profile 文件:
```shell vim /etc/profile ```
(2)将以下内容添加到配置文件的底部,添加完成输入“:wq”保存退出:
```shell
- 配置Hive的安装目录
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
- 在原PATH的基础上加入Hive的bin目录
export PATH=$PATH:$HIVE_HOME/bin ```
(3)让配置文件立即生效,使用如下命令:
```shell source /etc/profile ```
(4)检测 Hive 环境变量是否设置成
```shell hive --version ```
- 03hive-env.sh配置**
2.3 修改配置文件 hive-env.sh
切换到 ${HIVE_HOME}/conf 目录下,将 hive-env.sh.template 文件**复制一份并重命名**为 hive-env.sh:
58.56.20.138 cd ${HIVE_HOME}/conf;cp hive-env.sh.template hive-env.sh 58.56.20.138
修改完成,使用 **vi 编辑器**进行编辑:
```shell vim hive-env.sh ```
在文件中配置 **HADOOP_HOME**、**HIVE_CONF_DIR** 以及**HIVE_AUX_JARS_PATH** 参数:
```shell
- 配置Hadoop安装路径
HADOOP_HOME=${HADOOP_HOME}
- 配置Hive配置文件存放路径
export HIVE_CONF_DIR=/usr/hive/apache-hive-2.1.1-bin/conf
- 配置Hive运行资源库路径
export HIVE_AUX_JARS_PATH=/usr/hive/apache-hive-2.1.1-bin/lib ```
配置完成,输入“:wq”保存退出。
- slave1
- 元数据配置**
将/root/software目录下的 MySQL 驱动包 mysql-connector-java-5.1.47-bin.jar 拷贝到 ${HIVE_HOME}/lib 目录下
![](D:\学习\笔记\红亚杯\imgs\11.png)
58.56.20.138 wget -P /root/apache-hive-2.1.1-bin/lib http://master:3306/mysql-connectot-java-5.1.47.bin.jar 58.56.20.138
58.56.20.138 cp /root/mysql-connector-java-5.1.47-bin.jar /usr/hive/apache-hive-2.1.1-bin/lib 58.56.20.138
在${HIVE_HOME}/conf目录下创建一个名为hive-site.xml的文件,并使用vi编辑器进行编辑:
58.56.20.138 cd ${HIVE_HOME}/conf; touch hive-site.xml; vim hive-site.xml; 58.56.20.138
元数据配置到msyql,有参考其他的自行设置
<img src="D:\学习\笔记\红亚杯\imgs\12.png" style="zoom:150%;" />
58.56.20.138 <configuration> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive_remote/warehouse</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</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>root</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> <description>password to use against metastore database</description> </property> </configuration> 58.56.20.138
- 客户端设置master
- 01解决版本冲突**,用高版本,低版本的可以直接删除
![1594387051293](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\1594387051293.png)
58.56.20.138 cp $HIVE_HOME/lib/jline-2.12.jar $HADOOP_HOME/share/hadoop/yarn/lib 58.56.20.138
- 02配置客户端**
在${HIVE_HOME}/conf目录下创建一个名为hive-site.xml的文件,并使用vi编辑器进行编辑:
58.56.20.138 cd ${HIVE_HOME}/conf; touch hive-site.xml; vim hive-site.xml; 58.56.20.138
![1594387138989](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\1594387138989.png)
58.56.20.138 <configuration> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive_remote/warehouse</value> </property> <property> <name>hive.metastore.local</name> <value>false</value> </property> <property> <name>hive.metastore.uris</name> <value>thrift://slave1:9083</value> </property> </configuration> 58.56.20.138
- 启动hive
cd $HADOOP_HOME/sbin;
./start-dfs.sh ./start-yarn.sh ./mr-jobhistory-daemon.sh start historyserver
58.56.20.138 start-all.sh;stop-all.sh; 在所有子节点启动:zkServer.sh start; 58.56.20.138
- 01初始化数据库** 在slave1上执行
58.56.20.138 schematool -dbType mysql -initSchema 58.56.20.138
- 02启动hive server** 在slave1上执行
58.56.20.138 hive --service metastore & 58.56.20.138
- 03启动客户端** 在master上执行,==找不到hadoop就在hive-env.sh中配==
58.56.20.138 hive 58.56.20.138