虚拟机上用HiveQL语句实现wordcount程序

    xiaoxiao2022-07-05  172

    一、MySQL安装与卸载

    1、MySQL安装

    ①官网下载mysql-server(yum安装)

    wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

    下载安装wget:yum -y install wget

    ②解压rpm -ivh mysql-community-release-el7-5.noarch.rpm

    ③安装yum install mysql-community-server

    ④重启mysql服务:service mysqld restart (以后开机不需启动mysql)

    ⑤进入mysql:mysql -u root

    为root用户设置密码root:mysql> set password for 'root'@'localhost' =password('root');

    以下步骤可选:

    配置文件/etc/my.cnf加上编码配置:[mysql]  default-character-set =utf8

    远程连接设置:

    把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户:

    mysql> grant all privileges on *.* to root@' %'identified by 'root';

    mysql>flush privileges; 刷新权限

    如果是新用户而不是root,则要先新建用户:

    mysql>create user 'username'@' %' identified by 'password'; 

    2、卸载MySQL

    重新安装mysql之前需彻底清除mysql。

    ①查看是否有安装的mysql:rpm -qa |grep -i mysql

    ②依次卸载mysql各安装包:rpm -e --nodeps 安装包名字

    ③查看残留的mysql目录或文件:find / -name mysql 、 whereis mysql。

    ④依次删除查询出的各目录:rm -rf 目录名

    ⑤删除mysql 配置文件:/usr/my.cnf、 /root/.mysql_sercret。

    二、Hive安装与配置

    ①下载压缩包

    官网下载地址:http://mirror.bit.edu.cn/apache/hive/

    选择apache-hive-2.3.4-bin.tar.gz,在Windows里面下载。

    ②将压缩包从Windows传输到Linux当前目录下

    上传文件:put 路径/apache-hive-2.3.4-bin.tar.gz

    ¬¬SecureCRT 【File】→【Connect SFTP Session】开启sftp操作

    ③解压

    解压安装到指定目录下/opt/module(/opt是系统自带目录,之下的/module是自己创建的)

    解压文件:tar  -zxvf  ~apache-hive-2.3.4-bin.tar.gz  -C  /opt/module  解压安装

    修改解压目录名为hive。

    ④修改环境变量

    修改etc/profile文件,添加HIVE_HOME安装路径。

    Source命令更新etc/profile文件,使其生效。

    ⑤配置hive-env.sh

    进入/opt/module/hive/conf目录,修改hive-env.sh.template的文件名为hive-env.sh。(可以使用cp或者mv命令)

    cp hive-env.sh.template  hive-env.sh

    修改Hadoop的安装路径

    HADOOP_HOME=/opt/module /hadoop-2.7.3

    修改Hive的conf目录的路径

    export HIVE_CONF_DIR=/opt/module/hive/conf

    ⑥配置hive-site.xml

    进入/opt/module/hive/conf目录,修改default.xml.template的文件名为hive-site.xml。(可以使用cp或者mv命令)

    cp hive- default.xml.template  hive-site.xml

    在最后添加以下属性:

    <property>

    <!-- 元数据库的链接地址 mysql -->

           <name>javax.jdo.option.ConnectionURL</name>        

    <value>jdbc:mysql://bigdata131:3306/hivedb?createDatabaseIfNotExist=true</value>

           <description>JDBC connect string for a JDBC metastore</description>

    </property>

    <property>

    <!-- 指定mysql驱动 -->

    <!-- mysql5的驱动是com.mysql.jdbc.Driver,mysql6以后的是com.mysql.cj.jdbc.Driver。 -->

            <name>javax.jdo.option.ConnectionDriverName</name>

            <value>com.mysql.jdbc.Driver</value>

            <description>Driver class name for a JDBC metastore</description>

    </property>

    <property>

    <!-- 指定mysql用户名 -->

            <name>javax.jdo.option.ConnectionUserName</name>

            <value>root</value>

            <description>username to use against metastore database</description>                   

    </property>

    <property>

    <!-- 指定mysql密码 请输入自己的MySQL连接密码 -->

            <name>javax.jdo.option.ConnectionPassword</name>

            <value>root</value>

            <description>password to use against metastore database</description>

    </property>

     

    注:

    查看Hive建库、建表默认的hdfs目录为/user/hive/warehouse

    <property>

    <name>hive.metastore.warehouse.dir</name>

    <value>/user/hive/warehouse</value>

    <description>location of default database for the warehouse</description>

    </property>

    三、MySQL Connector/J安装

    ①下载压缩包

    官网下载地址:http://ftp.ntu.edu.tw/MySQL/Downloads/Connector-J/  

    mysql-connector-java-5.1.47.tar.gz

    ②将压缩包从Windows传输到Linux当前目录下­­

    SecureCRT 【File】→【Connect SFTP Session】开启sftp操作

    ③解压

    解压到指定目录下/opt/module(/opt是系统自带目录,之下的/module是自己创建的)

    ④拷贝驱动包

    将驱动包mysql-connector-java-5.1.47-bin.jar复制到/opt/module/hive/lib目录中。

    启动hive

    ①启动Hadoop:start-all.sh

    ②初始化Metastore架构:schematool -dbType mysql -initSchema

    ③启动Hive:hive

    hive> 进入hive shell

    ④创建/删除/修改/查看 数据库、表、视图,向表中装载数据,查询数据等等。

    四、Hive应用实例:wordcount

    ①建数据源文件并上传到hdfs的/user/input目录下

    ②建数据源表t1:create table t1 (line string);

    ③装载数据:load data inpath '/user/input' overwrite into table t1;

    ④编写HiveQL语句实现wordcount算法,建表weixin保存计算结果:

    create table wct1 as select word, count(1) as count from (select explode (split (line, ' ')) as word from t1) w group by word order by word;

    ⑤查看wordcount计算结果:

    Select *from weixin

     

     

     

    最新回复(0)