|
|
(未显示1个用户的5个中间版本) |
第1行: |
第1行: |
− | # 2.2 Hive 本地模式安装
| |
| | | |
− | ## 任务步骤
| + | == hive远程模式 == |
| | | |
− | #### 一,MySQL安装
| |
| | | |
− | 若是本地没有安装包则
| |
| | | |
− | 下载并安装MySQL官方的 Yum Repository
| + | ===slave2=== |
| | | |
− | ```
| + | '''01下载MySQL''' |
− | `[root@BrianZhu /]``# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm`
| |
− | ```
| |
| | | |
− | 使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
| + | 前提:修改本地源 |
| | | |
− | ```
| + | 安装MySQL: |
− | `[root@BrianZhu /]``# yum -y install mysql57-community-release-el7-10.noarch.rpm`
| + | <nowiki>yum -y install mysql-community-server</nowiki> |
− | ```
| |
| | | |
− | 使用yum安装MySQL了
| + | '''02启动MySQL服务''' |
| | | |
− | ```
| + | 重启所用修改过的配置文件: |
− | `[root@BrianZhu /]``# yum -y install mysql-community-server`
| |
− | ```
| |
| | | |
− | **若是有**
| |
− |
| |
− | MySQL安装包,存放在 /root/software 目录下,首先进入此目录下,进行解压
| |
− |
| |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
− | cd /root/software
| |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
− |
| |
− | ```shell
| |
− | tar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar
| |
− | ```
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/1.jpg)
| |
− |
| |
− | ##### 1.2 安装 MySQL 组件
| |
− |
| |
− | 在大多数情况下,我们需要安装 mysql-community-server、mysql-community-client、mysql-community- libs、mysql-community-common 和 mysql-community-libs-compat 包,才能实现功能标准的 MySQL 安装。要是不想安装功能标准的 MySQL,也可以只安装 mysql-community-server 和 mysql-community-client 即可。
| |
− |
| |
− | 使用 `rpm -ivh` 命令依次安装以下组件:
| |
− |
| |
− | (1)首先安装`mysql-community-common` (服务器和客户端库的公共文件),使用命令:
| |
− |
| |
− | ```shell
| |
− | rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
| |
− | ```
| |
− |
| |
− | - rpm:RPM软件包的管理工具。
| |
− | - -ivh:--install--verbose--hash,安装rpm包且显示安装进度。
| |
− |
| |
− | 若是出现“100%”,则表示安装成功:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/2.jpg)
| |
− |
| |
− | (2)其次安装`mysql-community-libs`(MySQL数据库客户端应用程序的共享库),使用命令:
| |
− |
| |
− | ```shell
| |
− | rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
| |
− | ```
| |
− |
| |
− | 若是出现“100%”,则表示安装成功:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/3.jpg)
| |
− |
| |
− | (3)之后安装 `mysql-community-libs-compat`(MySQL 之前版本的共享兼容库),使用命令:
| |
− |
| |
− | ```shell
| |
− | rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
| |
− | ```
| |
− |
| |
− | 若是出现“100%”,则表示安装成功:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/4.jpg)
| |
− |
| |
− | (4)之后安装 `mysql-community-client`(MySQL客户端应用程序和工具),使用命令:
| |
− |
| |
− | ```shell
| |
− | rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
| |
− | ```
| |
− |
| |
− | 若是出现“100%”,则表示安装成功:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/5.jpg)
| |
− |
| |
− | 图5
| |
− |
| |
− | (5)最后安装 `mysql-community-server`(数据库服务器和相关工具),使用命令:
| |
− |
| |
− | ```shell
| |
− | rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
| |
− | ```
| |
− |
| |
− | 若是出现“100%”,则表示安装成功:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/6.jpg)
| |
− |
| |
− | ##### 1.3 登录 MySQL
| |
− |
| |
− | **1. 初始化 MySQL 的数据库**
| |
− |
| |
− | 安装好 MySQL 后,我们需要初始化数据库,初始化和启动数据库时最好不要使用root用户,而是使用mysql用户启动。
| |
− |
| |
− | ```shell
| |
− | /usr/sbin/mysqld --initialize-insecure --user=mysql
| |
− | ```
| |
− |
| |
− | 对于MySQL 5.7.6以后的5.7系列版本,MySQL也可以使用 `mysqld --initialize` 初始化数据库,该命令会在 **/var/log/mysqld.log** 文件中生成一个登录 MySQL 的随机密码,而`mysqld --initialize-insecure `命令不会生成随机密码,而是设置 MySQL 的密码为空。
| |
− |
| |
− | **2. 启动 MySQL 服务**
| |
− |
| |
− | 使用如下命令开启 MySQL 服务,让其在后台运行:
| |
− |
| |
− | ```shell
| |
− | /usr/sbin/mysqld --user=mysql &
| |
− | ```
| |
− |
| |
− | 说明:一定要加“&”,才能脚本放到后台运行。
| |
− |
| |
− | 执行后,系统会打印出命令执行的PID,如下图所示:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/7.jpg)
| |
− |
| |
− | **3. 登录 MySQL**
| |
− |
| |
− | 使用root用户无密码登录 MySQL:
| |
− |
| |
− | ```shell
| |
− | mysql -uroot
| |
− | ```
| |
− |
| |
− | 若是出现下图效果,说明登录成功:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/8.jpg)
| |
− |
| |
− | **4. 重置 MySQL 密码**
| |
− |
| |
− | 在 5.7 版本后,我们可以使用 `alter user...identified by`命令把root用户的密码修改为“123456”,具体命令如下所示:
| |
− |
| |
− | ```mysql
| |
− | mysql> alter user 'root'@'localhost' identified by '123456';
| |
− | ```
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/9.jpg)
| |
− |
| |
− | 修改完成,使用`exit`或者`quit`命令退出 MySQL,重新登录验证密码是否修改成功:
| |
− |
| |
− | ```shell
| |
− | mysql -uroot -p123456
| |
− | ```
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/10.jpg)
| |
− |
| |
− | ##### 1.4 增加远程登录权限
| |
− |
| |
− | 当我们的帐号不允许从远程登录,只能在`localhost`连接时。这个时候只要在 MySQL 服务器上,更改mysql 数据库里的 `user` 表里的 `host` 项,从`localhost`改成`%`即可实现用户远程登录。
| |
− |
| |
− | **(1)查看 mysql 数据库下的 user表信息:**
| |
− |
| |
− | ```mysql
| |
− | mysql> use mysql; # 切换成mysql数据库
| |
− | mysql> select user,host from user; # 查询用户信息
| |
− | ```
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/11.jpg)
| |
− |
| |
− | 可以看到在user表中已创建的root用户。host字段表示登录的主机,其值可以用IP地址,也可用主机名。
| |
− |
| |
− | **(2)实现远程连接(授权法)**
| |
− |
| |
− | 将 host 字段的值改为%就表示在任何客户端机器上能以root用户登录到 MySQL 服务器,建议在开发时设为%。
| |
− |
| |
− | ```mysql
| |
− | # 设置远程登录权限
| |
− | mysql> update user set host='%' where host='localhost';
| |
− | # 刷新配置信息
| |
− | mysql> flush privileges;
| |
− | ```
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/18.jpg)
| |
− |
| |
− | ### 二,Hive 安装部署
| |
− |
| |
− | Hive是大数据生态圈中最常用的数据仓库,也是有 Hadoop 集群的公司的必备。所以 Hive 安装和使用也是大数据开发或运维人员都必须掌握的。Hive的安装很简单,而且 Hive1.0 和 Hive2.0 版本的安装非常类似,完全可以套用。**选择 hive2.3.4 作为教学版本!**
| |
− |
| |
− | ##### 2.1 解压安装包
| |
− |
| |
− | hive2.3.4 的安装包,存放在 /root/software 目录下,首先进入此目录下解压:
| |
− |
| |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
− | cd /root/software
| |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
− |
| |
− | ```shell
| |
− | tar -zxvf apache-hive-2.3.4-bin.tar.gz
| |
− | ```
| |
− |
| |
− | 将其**解压到当前目录下**,即 /root/software 中,效果图如下所示:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/12.jpg)
| |
− |
| |
− | ##### 2.2 配置环境变量
| |
− |
| |
− | (1)首先打开 /etc/profile 文件:
| |
− |
| |
− | ```shell
| |
− | vim /etc/profile
| |
− | ```
| |
− |
| |
− | (2)将以下内容添加到配置文件的底部,添加完成输入“:wq”保存退出:
| |
− |
| |
− | ```shell
| |
− | # 配置Hive的安装目录
| |
− | export HIVE_HOME=/root/software/apache-hive-2.3.4-bin
| |
− | # 在原PATH的基础上加入Hive的bin目录
| |
− | export PATH=$PATH:$HIVE_HOME/bin
| |
− | ```
| |
− |
| |
− | - export 是把这两个变量导出为全局变量。
| |
− | - 大小写必须严格区分。
| |
− |
| |
− | (3)让配置文件立即生效,使用如下命令:
| |
− |
| |
− | ```shell
| |
− | source /etc/profile
| |
− | ```
| |
− |
| |
− | (4)检测 Hive 环境变量是否设置成功,使用如下命令查看 Hive 版本:
| |
− |
| |
− | ```shell
| |
− | hive --version
| |
− | ```
| |
− |
| |
− | 执行此命令后,若是出现 Hive 版本信息说明配置成功:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/13.jpg)
| |
− |
| |
− | ##### 2.3 修改配置文件 hive-env.sh
| |
− |
| |
− | 切换到 ${HIVE_HOME}/conf 目录下,将 hive-env.sh.template 文件**复制一份并重命名**为 hive-env.sh:
| |
− |
| |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
− | cd ${HIVE_HOME}/conf
| |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
− |
| |
− | ```shell
| |
− | cp hive-env.sh.template hive-env.sh
| |
− | ```
| |
− |
| |
− | 修改完成,使用 **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=/root/software/apache-hive-2.3.4-bin/conf
| |
− | # 配置Hive运行资源库路径
| |
− | export HIVE_AUX_JARS_PATH=/root/software/apache-hive-2.3.4-bin/lib
| |
− | ```
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/14.jpg)
| |
− |
| |
− | 配置完成,输入“:wq”保存退出。
| |
− |
| |
− | ### 三:Hive元数据配置到MySQL
| |
− |
| |
− | #### 3.1 驱动拷贝
| |
− |
| |
− | 将/root/software目录下的 MySQL 驱动包 mysql-connector-java-5.1.47-bin.jar 拷贝到 ${HIVE_HOME}/lib 目录下。 apache-hive-2.3.4-bin/lib/
| |
− |
| |
− | ```shell
| |
− | cd /root/software/
| |
− | cp mysql-connector-java-5.1.47-bin.jar apache-hive-2.3.4-bin/lib/
| |
− | ```
| |
− |
| |
− | 进入 ${HIVE_HOME}/lib 目录下进行验证:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/15.jpg)
| |
− |
| |
− | #### 3.2 配置 Metastore到MySQL
| |
− |
| |
− | (1)在${HIVE_HOME}/conf目录下创建一个名为hive-site.xml的文件,并使用vi编辑器进行编辑:
| |
− |
| |
− | ```shell
| |
− | touch hive-site.xml
| |
− | vim hive-site.xml
| |
− | ```
| |
− |
| |
− | (2)根据官方文档配置参数(https://cwiki.apache.org/confluence/display/Hive/AdminManual+Metastore+Administration),拷贝数据到 hive-site.xml 文件中:
| |
− |
| |
− | ```xml
| |
− | <configuration>
| |
− | <!--连接元数据库的链接信息 -->
| |
− | <property>
| |
− | <name>javax.jdo.option.ConnectionURL</name>
| |
− | <value>jdbc:mysql://localhost:3306/hivedb?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>
| |
− | ```
| |
− |
| |
− | 在 `javax.jdo.option.ConnectionURL` 参数的 value 值中添加 `&useSSL=false`,主要是为了避免之后初始化产生警告信息。添加`&useUnicode=true&characterEncoding=UTF-8`用来指定字符的编码、解码格式。另外,在 XML 中,包括 HTML 中,要显示 & 这个字符,必须对其转义转义,使用 `&` 进行转义。
| |
− |
| |
− | #### 3.3 初始化元数据库
| |
− |
| |
− | 注意:当使用的 Hive 是 2.x 之前的版本时,不做初始化也是 OK 的。Hive 第一次启动时会自动进行初始化,只不过不会生成足够多的元数据库的表,其它的在使用过程中会慢慢生成。**如果使用的是 2.x 版本的 Hive,那么就必须手动初始化元数据库。** 使用 `schematool -dbType -initSchema` 命令进行初始化:
| |
− |
| |
− | ```shell
| |
− | schematool -dbType mysql -initSchema
| |
− | ```
| |
− |
| |
− | 若是出现“schemaTool completed”则初始化成功,如下图所示:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/16.jpg)
| |
− |
| |
− | #### 3.4 Hive 连接
| |
− |
| |
− | 在任意目录下使用 Hive 的三种连接方式之一:**CLI 启动 Hive**。由于已经在环境变量中配置了 HIVE_HOME ,所以这里直接在命令行执行如下命令即可:
| |
− |
| |
− | ```shell
| |
− | hive
| |
− | 或者
| |
− | hive --service cli
| |
− | ```
| |
− |
| |
− | 效果如下图所示:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/17.jpg)
| |
− |
| |
− | 可以使用如下命令退出 Hive 客户端:
| |
− |
| |
− | ```shell
| |
− | hive> exit;
| |
− | 或者
| |
− | hive> quit;
| |
− | ```
| |
− |
| |
− | ## 2.3 Hive 常见属性配置
| |
− |
| |
− | ### 1:Hive 数据仓库位置配置
| |
− |
| |
− | default 数据仓库的最原始位置是在 HDFS 上的:/user/hive/warehouse 路径下。
| |
− |
| |
− | 在仓库目录下,没有对默认的数据库 default 创建文件夹。如果某张表属于 default 数据库,直接在数据仓库 /user/hive/warehouse 目录下创建一个文件夹。
| |
− |
| |
− | 要想修改 default 数据仓库原始位置,方式是将 hive-default.xml.template 如下配置信息拷贝到 hive-site.xml 文件中,并将 value 值修改为自己想要的 HDFS 路径。
| |
− |
| |
− | ```xml
| |
− | <!--Hive默认数据库的位置 -->
| |
− | <property>
| |
− | <name>hive.metastore.warehouse.dir</name>
| |
− | <value>/user/hive/warehouse</value>
| |
− | <description>location of default database for the warehouse</description>
| |
− | </property>
| |
− | ```
| |
− |
| |
− | ### 2:查询后信息显示配置
| |
− |
| |
− | Hive 中默认是**不显示当前使用的数据库和查询表的头信息**的,我们可以在 hive-default.xml.template 配置文件中查询涉及这两项内容的默认配置:
| |
− |
| |
− | ```xml
| |
− | <!-- 客户端显示当前数据库名称信息 -->
| |
− | <property>
| |
− | <name>hive.cli.print.current.db</name>
| |
− | <value>false</value>
| |
− | <description>Whether to include the current database in the Hive prompt.</description>
| |
− | </property>
| |
− | <!-- 客户端显示当前查询表的头信息 -->
| |
− | <property>
| |
− | <name>hive.cli.print.header</name>
| |
− | <value>false</value>
| |
− | <description>Whether to print the names of the columns in query output.</description>
| |
− | </property>
| |
− | ```
| |
− |
| |
− | 为了让 Hive 使用起来更便捷,我们可以在 hive-site.xml 文件中添加如下配置信息,这样就可以实现**显示当前数据库**,以及**查询表的头信息配置**了。
| |
− |
| |
− | ```xml
| |
− | <!-- 客户端显示当前数据库名称信息,默认为false -->
| |
− | <property>
| |
− | <name>hive.cli.print.current.db</name>
| |
− | <value>true</value>
| |
− | <description>Whether to include the current database in the Hive prompt.</description>
| |
− | </property>
| |
− | <!-- 客户端显示当前查询表的头信息,默认为false -->
| |
− | <property>
| |
− | <name>hive.cli.print.header</name>
| |
− | <value>true</value>
| |
− | <description>Whether to print the names of the columns in query output.</description>
| |
− | </property>
| |
− | ```
| |
− |
| |
− | 在任意目录下使用 Hive 的三种连接方式之一:**CLI 启动 Hive**。对比配置前后差异。
| |
− |
| |
− | ```shell
| |
− | hive
| |
− | 或者
| |
− | hive --service cli
| |
− | ```
| |
− |
| |
− | 配置前,如下图所示:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_qau1ynpbcecO3bUvXMfK/1589443939kM/_image/1.png)
| |
− |
| |
− | 配置前
| |
− |
| |
− | 配置后,如下图所示:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_qau1ynpbcecO3bUvXMfK/1589443939kM/_image/2.png)
| |
− |
| |
− | 配置后
| |
− |
| |
− | ### 3:Hive 运行日志信息配置
| |
− |
| |
− | 在很多程序中,我们都可以通过输出日志的形式来得到程序运行情况,通过这些输出日志来调试程序,Hive也不例外。在Hive中,使用的是 Log4j 来输出日志,**默认情况下,CLI 是不能将日志信息输出到控制台的。** 在 Hive0.13.0 之前的版本,默认的日志级别是 WARN,在 Hive0.13.0 开始,默认的日志级别是 INFO。默认的日志存放在`/tmp/${user.name}`文件夹的`hive.log`文件中,全路径就是`/tmp/${user.name}/hive.log`。
| |
− |
| |
− | 在`${HIVE_HOME}/conf/hive-log4j2.properties.template` 文件中记录了Hive日志的存储情况,默认的存储情况如下所示:
| |
− |
| |
− | ```
| |
− | property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name} # 默认的存储位置
| |
− | property.hive.log.file = hive.log # 默认的文件名
| |
− | ```
| |
− |
| |
− | 我们可以通过修改以上两个参数的值来重新设置 Hive log 日志的存放地址。
| |
− |
| |
− | 首先,将 `${HIVE_HOME}/conf` 目录下的 hive-log4j2.properties.template 文件复制一份并重命名为 hive-log4j2.properties,具体命令如下所示:
| |
− |
| |
− | ```shell
| |
− | cp hive-log4j2.properties.template hive-log4j2.properties
| |
− | ```
| |
− |
| |
− | 效果图如下所示:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_qau1ynpbcecO3bUvXMfK/1589443939kM/_image/3.png)
| |
− |
| |
− | 之后使用 vi 编辑器进行编辑,将 Hive 日志配置到 /root/hivelog/hive.log 文件中。
| |
− |
| |
− | ```
| |
− | property.hive.log.dir = /root/hivelog
| |
− | property.hive.log.file = hive.log
| |
− | ```
| |
− |
| |
− | 重新启动 Hive,验证新的日志文件是否自动创建:
| |
− |
| |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_qau1ynpbcecO3bUvXMfK/1589443939kM/_image/4.png)
| |
− |
| |
− | 从上图可以看出,我们成功将 Hive 日志存放路径修改为 /root/hivelog/hive.log 。
| |
− |
| |
− | # hive远程模式
| |
− |
| |
− | 要生效的文件:看看映射文件
| |
− |
| |
− |
| |
− |
| |
− | ### slave2
| |
− |
| |
− | ##### 01下载MySQL
| |
− |
| |
− | **前提**:修改本地源
| |
− |
| |
− | **安装MySQL**:yum -y install mysql-community-server
| |
− |
| |
− | ##### 02启动MySQL服务
| |
− |
| |
− | **重启所用修改过的配置文件**:
| |
− |
| |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| systemctl daemon-reload; | | systemctl daemon-reload; |
| systemctl start mysqld;#开启服务 | | systemctl start mysqld;#开启服务 |
| systemctl enable mysqld;#开机自启 | | systemctl enable mysqld;#开机自启 |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| + | |
| | | |
| 若不免密则: | | 若不免密则: |
| | | |
− | ![](D:\学习\笔记\红亚杯\imgs\9.png)
| |
− |
| |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| grep "temporary password" /var/log/mysqld.log | | grep "temporary password" /var/log/mysqld.log |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| + | ''' |
− | | + | 04MySQL密码安全测试''' |
− | ##### 04MySQL密码安全测试
| |
| | | |
− | **设置密码强度为底级**:**设置密码长度**:**修改本地密码**:msyql
| + | 设置密码强度为底级:设置密码长度:修改本地密码: |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]mysql
| |
| set global validate_password_policy=0; | | set global validate_password_policy=0; |
| set global validate_password_length=4; | | set global validate_password_length=4; |
| alter user 'root'@'localhost' identified by '123456'; | | alter user 'root'@'localhost' identified by '123456'; |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | **退出**:\q
| |
| | | |
− | ##### 05授权及生效
| + | 退出:\q |
| | | |
| + | '''05授权及生效''' |
| | | |
| | | |
− | **新密码登录MySQL**:
| + | 新密码登录MySQL: |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| mysql -uroot -p123456 | | mysql -uroot -p123456 |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | **创建新用户**:
| |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]mysql
| + | '''创建新用户''': |
− | create user 'root'@'%' identified by'123456'; | + | mysql create user 'root'@'%' identified by'123456'; |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| + | |
| | | |
− | **允许远程链接**:
| + | '''允许远程链接''': |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]mysql
| + | mysql grant all privileges on *.*to 'root'@'%' with grant option; |
− | grant all privileges on *.*to 'root'@'%' with grant option; | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | ==1)查看 mysql 数据库下的 user表信息:==
| + | '''查看 mysql 数据库下的 user表信息:''' |
| | | |
− | ```mysql
| |
| use mysql; # 切换成mysql数据库 | | use mysql; # 切换成mysql数据库 |
| select user,host from user; # 查询用户信息 | | select user,host from user; # 查询用户信息 |
− | ```
| |
− |
| |
− | ```mysql
| |
| # 设置远程登录权限 | | # 设置远程登录权限 |
| update user set host='%' where host='localhost'; | | update user set host='%' where host='localhost'; |
| # 刷新配置信息 | | # 刷新配置信息 |
| flush privileges; | | flush privileges; |
− | ```
| |
| | | |
− | **刷新权限**:
| |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]mysql
| + | '''刷新权限''': |
| + | |
| flush privileges; | | flush privileges; |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | ![](D:\学习\笔记\红亚杯\imgs\10.png)
| + | '''可以创建数据库了''' |
| | | |
− | **可以创建数据库了**==重要==
| + | create database hongyaa; |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]mysql
| |
− | create database hongyaa;
| |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | ## 客户端服务器端都执行master和salve1
| + | ==客户端服务器端都执行master和salve1== |
| | | |
− | **01下载解压**
| + | '''01下载解压''' |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| mkdir -p /usr/hive | | mkdir -p /usr/hive |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
− |
| |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
− |
| |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| tar -zxvf apache-hive-2.3.4-bin.tar.gz -C /usr/hive | | tar -zxvf apache-hive-2.3.4-bin.tar.gz -C /usr/hive |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | **02配置环境变量**
| + | '''02配置环境变量''' |
| | | |
| (1)首先打开 /etc/profile 文件: | | (1)首先打开 /etc/profile 文件: |
| | | |
− | ```shell
| |
| vim /etc/profile | | vim /etc/profile |
− | ```
| |
| | | |
| (2)将以下内容添加到配置文件的底部,添加完成输入“:wq”保存退出: | | (2)将以下内容添加到配置文件的底部,添加完成输入“:wq”保存退出: |
| | | |
− | ```shell
| |
| # 配置Hive的安装目录 | | # 配置Hive的安装目录 |
| export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin | | export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin |
| # 在原PATH的基础上加入Hive的bin目录 | | # 在原PATH的基础上加入Hive的bin目录 |
| export PATH=$PATH:$HIVE_HOME/bin | | export PATH=$PATH:$HIVE_HOME/bin |
− | ```
| |
| | | |
− | (3)让配置文件立即生效,使用如下命令:
| |
| | | |
− | ```shell
| + | (3)让配置文件立即生效,使用如下命令: |
| + | |
| source /etc/profile | | source /etc/profile |
− | ```
| |
| | | |
− | (4)检测 Hive 环境变量是否设置成
| |
| | | |
− | ```shell
| + | (4)检测 Hive 环境变量是否设置成 |
| + | |
| hive --version | | hive --version |
− | ```
| |
| | | |
− | **03hive-env.sh配置**
| |
| | | |
− | 2.3 修改配置文件 hive-env.sh | + | '''03hive-env.sh配置''' |
| + | |
| + | |
| + | == 2.3 修改配置文件 hive-env.sh == |
| | | |
− | 切换到 ${HIVE_HOME}/conf 目录下,将 hive-env.sh.template 文件**复制一份并重命名**为 hive-env.sh:
| + | 切换到 ${HIVE_HOME}/conf 目录下,将 hive-env.sh.template 文件复制一份并重命名为 hive-env.sh: |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| cd ${HIVE_HOME}/conf;cp hive-env.sh.template hive-env.sh | | cd ${HIVE_HOME}/conf;cp hive-env.sh.template hive-env.sh |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | 修改完成,使用 **vi 编辑器**进行编辑:
| |
| | | |
− | ```shell
| + | 修改完成,使用 vi 编辑器进行编辑: |
| + | |
| vim hive-env.sh | | vim hive-env.sh |
− | ```
| |
| | | |
− | 在文件中配置 **HADOOP_HOME**、**HIVE_CONF_DIR** 以及**HIVE_AUX_JARS_PATH** 参数:
| |
| | | |
− | ```shell
| + | 在文件中配置 **HADOOP_HOME**、**HIVE_CONF_DIR** 以及**HIVE_AUX_JARS_PATH** 参数: |
| + | |
| + | |
| # 配置Hadoop安装路径 | | # 配置Hadoop安装路径 |
| HADOOP_HOME=${HADOOP_HOME} | | HADOOP_HOME=${HADOOP_HOME} |
第639行: |
第128行: |
| # 配置Hive运行资源库路径 | | # 配置Hive运行资源库路径 |
| export HIVE_AUX_JARS_PATH=/usr/hive/apache-hive-2.1.1-bin/lib | | export HIVE_AUX_JARS_PATH=/usr/hive/apache-hive-2.1.1-bin/lib |
− | ```
| |
| | | |
− | ![Vditor](http://assets.qingjiaoclass.com/gdlzpoyzbkrj/20200514/jyqngavd_hPmegBR3vjd4wakbw7oH/1589443204u9/_image/14.jpg)
| |
| | | |
| 配置完成,输入“:wq”保存退出。 | | 配置完成,输入“:wq”保存退出。 |
| | | |
− | ## slave1
| |
| | | |
− | **元数据配置**
| + | == slave1元数据配置 == |
| + | |
| | | |
| 将/root/software目录下的 MySQL 驱动包 mysql-connector-java-5.1.47-bin.jar 拷贝到 ${HIVE_HOME}/lib 目录下 | | 将/root/software目录下的 MySQL 驱动包 mysql-connector-java-5.1.47-bin.jar 拷贝到 ${HIVE_HOME}/lib 目录下 |
| | | |
− | ![](D:\学习\笔记\红亚杯\imgs\11.png)
| |
− |
| |
− | [[特殊:用户贡献/58.56.20.138|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 | | 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]]
| |
− |
| |
− | [[特殊:用户贡献/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 | | cp /root/mysql-connector-java-5.1.47-bin.jar /usr/hive/apache-hive-2.1.1-bin/lib |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| + | 在${HIVE_HOME}/conf目录下创建一个名为hive-site.xml的文件,并使用vi编辑器进行编辑: |
| | | |
− | 在${HIVE_HOME}/conf目录下创建一个名为hive-site.xml的文件,并使用vi编辑器进行编辑:
| |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| cd ${HIVE_HOME}/conf; | | cd ${HIVE_HOME}/conf; |
| touch hive-site.xml; | | touch hive-site.xml; |
| vim hive-site.xml; | | vim hive-site.xml; |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| + | |
| | | |
| 元数据配置到msyql,有参考其他的自行设置 | | 元数据配置到msyql,有参考其他的自行设置 |
| | | |
− |
| |
− |
| |
− | <img src="D:\学习\笔记\红亚杯\imgs\12.png" style="zoom:150%;" />
| |
− |
| |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| <configuration> | | <configuration> |
| <property> | | <property> |
第705行: |
第179行: |
| </property> | | </property> |
| </configuration> | | </configuration> |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | ## 客户端设置master
| |
| | | |
− | **01解决版本冲突**,用高版本,低版本的可以直接删除
| |
| | | |
− | ![1594387051293](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\1594387051293.png)
| + | == 客户端设置master == |
| + | |
| + | |
| + | 01解决版本冲突,用高版本,低版本的可以直接删除 |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| cp $HIVE_HOME/lib/jline-2.12.jar $HADOOP_HOME/share/hadoop/yarn/lib | | cp $HIVE_HOME/lib/jline-2.12.jar $HADOOP_HOME/share/hadoop/yarn/lib |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | **02配置客户端**
| + | |
| + | 02配置客户端 |
| | | |
| 在${HIVE_HOME}/conf目录下创建一个名为hive-site.xml的文件,并使用vi编辑器进行编辑: | | 在${HIVE_HOME}/conf目录下创建一个名为hive-site.xml的文件,并使用vi编辑器进行编辑: |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| + | |
| cd ${HIVE_HOME}/conf; | | cd ${HIVE_HOME}/conf; |
| touch hive-site.xml; | | touch hive-site.xml; |
| vim hive-site.xml; | | vim hive-site.xml; |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | ![1594387138989](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\1594387138989.png)
| |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| + | |
| <configuration> | | <configuration> |
| <property> | | <property> |
第744行: |
第215行: |
| </property> | | </property> |
| </configuration> | | </configuration> |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | ### 启动hive
| + | |
| + | |
| + | == 启动hive == |
| + | |
| | | |
| cd $HADOOP_HOME/sbin; | | cd $HADOOP_HOME/sbin; |
第754行: |
第227行: |
| ./mr-jobhistory-daemon.sh start historyserver | | ./mr-jobhistory-daemon.sh start historyserver |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| + | |
| start-all.sh;stop-all.sh; | | start-all.sh;stop-all.sh; |
| 在所有子节点启动:zkServer.sh start; | | 在所有子节点启动:zkServer.sh start; |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | **01初始化数据库** 在slave1上执行
| + | 01初始化数据库 在slave1上执行 |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| schematool -dbType mysql -initSchema | | schematool -dbType mysql -initSchema |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | **02启动hive server** 在slave1上执行
| |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| + | |
| + | == 02启动hive server** 在slave1上执行 == |
| + | |
| + | |
| hive --service metastore & | | hive --service metastore & |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| | | |
− | **03启动客户端** 在master上执行,==找不到hadoop就在hive-env.sh中配==
| + | == 03启动客户端 == |
| + | |
| + | 在master上执行,找不到hadoop就在hive-env.sh中配 |
| | | |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
| hive | | hive |
− | [[特殊:用户贡献/58.56.20.138|58.56.20.138]]
| |
− |
| |
− | ##
| |
systemctl daemon-reload;
systemctl start mysqld;#开启服务
systemctl enable mysqld;#开机自启
set global validate_password_policy=0;
set global validate_password_length=4;
alter user 'root'@'localhost' identified by '123456';
将/root/software目录下的 MySQL 驱动包 mysql-connector-java-5.1.47-bin.jar 拷贝到 ${HIVE_HOME}/lib 目录下
<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>
<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>