CentOS 7 下 Hive安装指南 及 WordCount Hive实现

(默认装好jdk hadoop)

首先,安装MySQL

在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/

下载mysql源安装包

shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

安装mysql源

yum localinstall mysql57-community-release-el7-8.noarch.rpm

检查mysql源是否安装成功

yum repolist enabled | grep "mysql.*-community.*"

开始安装MySQL
yum install mysql-community-server

启动MySQL
systemctl start mysqld

配置开机启动

systemctl enable mysqld
systemctl daemon-reload

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:

grep 'temporary password' /var/log/mysqld.log

使用密码登录

mysql -uroot -p

然后修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

或者

set password for 'root'@'localhost'=password('MyNewPass4!');

注意密码需要有大小写数字和标点

Hive安装

  • 首先下载hive安装包 Hive下载
    下载你需要的版本(下载有文件名中有bin的,没有bin字段的是源码)
  • 解压并重命名为 hive,复制到 /usr/local 文件夹下
tar -xzf apache-hive-2.3.2-bin.tar.gz
mv apache-hive-2.3.2-bin /usr/local/hive

修改Hive的配置文件

vim /usr/local/hive/conf/hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
<!-- 这里根据你数据库实际连接地址设置-->
</property>


<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
</property>

<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>root</value><!-- 这边要写你自己设置的数据库用户名 -->
</property>

<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>root</value><!-- 这边要写你自己设置的数据库密码 -->
</property>

<property>
  <name>datanucleus.autoCreateSchema</name>
  <value>true</value>
</property>

<property>
  <name>datanucleus.fixedDatastore</name>
  <value>true</value>
</property>

<property>
 <name>datanucleus.autoCreateTables</name>
 <value>True</value>
 </property>

</configuration>

下载jdbc驱动放到 /usr/local/hive/lib 文件夹中
jdbc驱动下载
解压并将里面的jdbc驱动复制到相应文件夹下

tar -xzf mysql-connector-java-5.1.45.tar.gz
cp mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jar /usr/local/hive/lib/

设置hive环境变量

vim ~/.bashrc
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:/usr/local/Hadoop/lib/*:.
export CLASSPATH=$CLASSPATH:/usr/local/hive/lib/*:.

将这一段复制到文件最下方,保存之后刷新
source ~/.bashrc

然后初始化Hive元数据库
schematool -dbType mysql -initSchema

最后就可以在终端输入hive命令开启
hive

随便建一个表

create table test_table(id int);

《CentOS 7 下 Hive安装指南 及 WordCount Hive实现》 建test_table表

到此,安装结束.

Hive 实现 WordCount

打开hive

首先创建一个数据库用于存储相关数据,并切换到该数据库

create database wordcount;
use wordcount;

《CentOS 7 下 Hive安装指南 及 WordCount Hive实现》 创建并应用数据库

创建一张表,并导入数据

create table text(line string);
load data inpath "/input/allLog" overwrite into table text;

注意 /input/allLog 是我自己在HDFS中保存文件的位置,根据自己保存的位置替换

《CentOS 7 下 Hive安装指南 及 WordCount Hive实现》 导入数据

拆分单词
导入新的表

create table words(word string);
insert into table words select explode(split(line, " ")) as word from text;

《CentOS 7 下 Hive安装指南 及 WordCount Hive实现》 分割单词导入新的表

根据控制台输出可以发现,仍然是调用了MapReduce。Hive其本质就是对MapReduce的一层封装。

最后查询统计,并且按词频降序(为便于展示只输出十条)

select word, count(*) as c from words group by word order by c desc limit 10;

最后输出

《CentOS 7 下 Hive安装指南 及 WordCount Hive实现》 输出

    原文作者:TreviD
    原文地址: https://www.jianshu.com/p/fd6165a3d423
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞