Crontab 及 Hive 概述 & 安装

发布时间:2025-06-24 16:40:10  作者:北方职教升学中心  阅读量:808


目录

一、Crontab 知识板块

1.基本介绍

Crontab 命令的用途:在 Linux 系统中设置定期执行的任务。

任务执行进程:由 crond 进程负责执行定时任务,且该进程开机自启动。

2.示例操作

手动命令演示:如 echo “hello crond” >> /root/crontab_test.txt 命令介绍。

定时任务设置步骤

Crontab 定时任务示例代码(统计指定文件单词数量)

1.编写统计单词数量的 Java 程序(简单示例,仅示意思路,实际可能更复杂)以下是一个简单的基于 Java 的单词统计示例代码,将其保存为 WordCount.java 文件(假设你已经有合适的开发环境以及相关依赖库引入等准备工作):

2.设置 crontab 定时任务

执行 crontab -e 命令打开定时任务编辑文件,添加如下一行内容(假设要统计的文件路径是 /home/user/data.txt,可根据实际情况替换):

3.查看定时任务执行日志及状态

二、hive知识板块

1.Hive 基本概念

1.定义与作用:基于 Hadoop 的数据仓库工具,使熟悉 SQL 者可处理 HDFS 结构化数据,将 Hive SQL 转 MapReduce 任务处理海量数据。

2.数据处理原理:解析 Hive SQL 为 MapReduce 任务,利用 Hadoop 分布式计算能力。

3.数据存储格式:支持 TextFile、Parquet、ORC 等。TextFile 简单易读但效率低;Parquet 和 ORC 列存储、压缩比高,适合分析场景。

2、Hive 安装相关代码示例(主要是命令示例)

1.下载并解压 Hive 安装包(假设在 Centos7 环境下操作)以下是下载(示例了使用 wget 命令从假设的对应网址下载,实际可能从网盘等不同渠道获取,需自行调整)以及解压 Hive 安装包到 /usr/local 路径的命令示例:

2. 设置 HIVE_HOME 及 PATH 环境变量(添加到 ~/.bashrc 文件示例,可根据实际习惯添加到其他配置文件)

3.创建 hive-site.xml 配置文件及相关配置(示例配置文件内容前面有详细介绍,这里展示创建及编辑命令示例,可使用 vi 等编辑器)

4.上传 mysql 驱动到 hive 安装目录的 lib 路径下(示例使用 scp 命令从本地拷贝到远程服务器的 Hive 安装目录的 lib 路径,实际可根据获取驱动的不同方式调整)

5.更新 Guava 库版本(删除旧版本并拷贝新版本)

6.在 mysql 上创建数据库(登录 mysql 并执行建表语句)

7.启动 Hadoop(如果已经运行则无需启动,这里示例启动命令,根据实际 Hadoop 版本及配置情况调整)

8.Hive 初始化(仅需执行一次)

9.验证 Hive 安装成功

执行 hive 命令,如果出现 Hive 的命令行提示符(类似 hive> ),并且可以执行一些简单的 Hive SQL 语句(例如 show databases; ),能正常显示结果,则说明 Hive 安装成功,示例如下:

希望通过本篇文章,能给您带来收获! 


一、Crontab 知识板块

1.基本介绍

Crontab 命令的用途:在 Linux 系统中设置定期执行的任务。

任务执行进程:由 crond 进程负责执行定时任务,且该进程开机自启动。

2.示例操作

手动命令演示:如 echo “hello crond” >> /root/crontab_test.txt 命令介绍。

 

定时任务设置步骤

crontab -e 命令使用:打开编辑定时任务文件,默认使用 vi 编辑器。

任务设置格式:在打开文件中按特定格式输入字符串设置定时任务并保存退出。


任务文件路径:介绍保存后的定时任务文件默认路径(/var/spool/cron/[用户名])及查看方法。

Crontab 定时任务示例代码(统计指定文件单词数量)

假设你已经有一个用于统计单词数量的 Java 程序(打包成了 WordCount.jar 示例),并且该程序接收一个文件路径作为参数来统计该文件中的单词数量,以下是设置定时任务的步骤以及相关代码示例:

1.编写统计单词数量的 Java 程序(简单示例,仅示意思路,实际可能更复杂)以下是一个简单的基于 Java 的单词统计示例代码,将其保存为 WordCount.java 文件(假设你已经有合适的开发环境以及相关依赖库引入等准备工作):
import java.io.BufferedReader;import java.io.FileReader;import java.util.HashMap;import java.util.Map;public class WordCount {    public static void main(String[] args) {        if (args.length < 1) {            System.out.println("请指定要统计单词数量的文件路径");            return;        }        String filePath = args[0];        Map<String, Integer> wordCountMap = new HashMap<>();        try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {            String line;            while ((line = br.readLine())!= null) {                String[] words = line.split(" ");                for (String word : words) {                    word = word.trim().toLowerCase();                    if (wordCountMap.containsKey(word)) {                        wordCountMap.put(word, wordCountMap.get(word) + 1);                    } else {                        wordCountMap.put(word, 1);                    }                }            }            for (Map.Entry<String, Integer> entry : wordCountMap.entrySet()) {                System.out.println(entry.getKey() + ": " + entry.getValue());            }        } catch (Exception e) {            e.printStackTrace();        }    }}

将上述代码编译打包成 WordCount.jar(使用 javac WordCount.java 编译,jar cvf WordCount.jar WordCount.class 打包等常规操作,具体根据实际环境调整)。

2.设置 crontab 定时任务
执行 crontab -e 命令打开定时任务编辑文件,添加如下一行内容(假设要统计的文件路径是 /home/user/data.txt,可根据实际情况替换):
*/2 * * * * java -jar /path/to/WordCount.jar /home/user/data.txt > /home/user/wordcount_result.log 2>&1

 

上述代码中:

  • */2 * * * * 表示每隔两分钟执行一次任务。
  • java -jar /path/to/WordCount.jar /home/user/data.txt 是执行的命令,调用 Java 程序并传入要统计的文件路径作为参数。
  • > /home/user/wordcount_result.log 2>&1 表示将标准输出和标准错误输出都重定向到 wordcount_result.log 文件中,方便后续查看任务执行情况(记录成功的统计结果以及可能出现的错误信息)。
3.查看定时任务执行日志及状态

可以通过查看 /var/log/cron 文件来查看定时任务的执行日志(即 crond 进程的输出日志),看是否有执行报错等相关信息。同时可以查看 wordcount_result.log 文件来确认每次单词统计的结果以及是否正常执行完成等情况。

 

二、hive知识板块

1.Hive 基本概念

1.定义与作用:基于 Hadoop 的数据仓库工具,使熟悉 SQL 者可处理 HDFS 结构化数据,将 Hive SQL 转 MapReduce 任务处理海量数据。
2.数据处理原理:解析 Hive SQL 为 MapReduce 任务,利用 Hadoop 分布式计算能力。
3.​​​​​​​数据存储格式:支持 TextFile、Parquet、ORC 等。TextFile 简单易读但效率低;Parquet 和 ORC 列存储、压缩比高,适合分析场景。

2、Hive 安装相关代码示例(主要是命令示例)

1.下载并解压 Hive 安装包(假设在 Centos7 环境下操作)
以下是下载(示例了使用 wget 命令从假设的对应网址下载,实际可能从网盘等不同渠道获取,需自行调整)以及解压 Hive 安装包到 /usr/local 路径的命令示例:
# 下载Hive安装包(示例网址需替换为实际下载地址)wget https://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz# 解压安装包到 /usr/local 路径tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /usr/local
2. 设置 HIVE_HOME 及 PATH 环境变量(添加到 ~/.bashrc 文件示例,可根据实际习惯添加到其他配置文件)

编辑 ~/.bashrc 文件(使用 vi ~/.bashrc 等编辑器打开),添加如下两行内容(假设 Hive 解压到了 /usr/local/apache-hive-3.1.3-bin 路径,根据实际解压路径调整):

export HIVE_HOME=/usr/local/apache-hive-3.1.3-binexport PATH=$PATH:$HIVE_HOME/bin

添加完成后,执行 source ~/.bashrc 使环境变量生效。

3.创建 hive-site.xml 配置文件及相关配置(示例配置文件内容前面有详细介绍,这里展示创建及编辑命令示例,可使用 vi 等编辑器)

在 $HIVE_HOME/conf 路径下创建 hive-site.xml 文件并编辑添加如下内容(按照实际情况修改 mysql 相关配置信息,这里以示例中的配置为例):

cd $HIVE_HOME/confvi hive-site.xml

然后在 vi 编辑器中按 i 进入插入模式,添加以下内容:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration>  <!-- mysql jdbc驱动 -->  <property>    <name>javax.jdo.option.ConnectionDriverName</name>    <value>com.mysql.cj.jdbc.Driver</value>  </property>  <!-- mysql 地址 -->  <property>    <name>javax.jdo.option.ConnectionURL</name>    <value>jdbc:mysql://192.168.159.128:3306/hive_metadata?serverTimezone=UTC&amp;characterEncoding=UTF-8&amp;useSSL=false</value>  </property>  <!-- mysql 用户名 -->  <property>    <name>javax.jdo.option.ConnectionUserName</name>    <value>root</value>  </property>  <!-- mysql 密码 -->  <property>    <name>javax.jdo.option.ConnectionPassword</name>    <value>Lzzy@2022</value>  </property>  <property>    <name>datanucleus.schema.autoCreateAll</name>    <value>true</value>  </property>  <property>    <name>hive.metastore.schema.verification</name>    <value>false</value>  </property></configuration>

编辑完成后,按 Esc 键退出插入模式,输入 :wq 保存并退出编辑器。

4.上传 mysql 驱动到 hive 安装目录的 lib 路径下(示例使用 scp 命令从本地拷贝到远程服务器的 Hive 安装目录的 lib 路径,实际可根据获取驱动的不同方式调整)


假设本地已经有 mysql-connector-java-8.0.15.jar 文件,且远程服务器 IP 是 192.168.1.100(根据实际情况替换),执行如下命令:

scp mysql-connector-java-8.0.15.jar root@192.168.1.100:/usr/local/apache-hive-3.1.3-bin/lib
5.更新 Guava 库版本(删除旧版本并拷贝新版本)

执行如下命令(前面介绍的拷贝命令示例,假设 HADOOP_HOME 等环境变量已经正确设置): 

rm $HIVE_HOME/lib/guava-19.0.jarcp $HADOOP_HOME/share/hadoop/common/lib/guava-27.0-jre.jar $HIVE_HOME/lib
6.在 mysql 上创建数据库(登录 mysql 并执行建表语句)


登录 mysql(假设 mysql 已经安装并配置好,且密码是示例中的 Lzzy@2022,根据实际情况修改登录命令及密码等信息):

mysql -u root -p

输入密码登录成功后,执行创建数据库的语句:

CREATE DATABASE hive_metadata DEFAULT CHARACTER SET UTF8;

然后输入 exit 退出 mysql 命令行界面。

7.启动 Hadoop(如果已经运行则无需启动,这里示例启动命令,根据实际 Hadoop 版本及配置情况调整)

如果是 Hadoop 2.x 及以上版本,执行如下命令启动:

start-all.sh
8.Hive 初始化(仅需执行一次)

执行如下命令进行初始化:

schematool -initSchema -dbType mysql

 

9.验证 Hive 安装成功
执行 hive 命令,如果出现 Hive 的命令行提示符(类似 hive> ),并且可以执行一些简单的 Hive SQL 语句(例如 show databases; ),能正常显示结果,则说明 Hive 安装成功,示例如下:
hivehive> show databases;

 

 

希望通过本篇文章,能给您带来收获!