Hive集群和MySQL搭建及使用手册(Hadoop单节点集群)

打印 上一主题 下一主题

主题 858|帖子 858|积分 2574

这里的内容是按照我之前发布的Hadoop单节点集群搭建的文章往下继续操作的。

  Hadoop单节点集群搭建

一、系统情况

   os 版本: Ubuntu 22.04 LTS 64bit
jdk 版本: 1.8.0
hadoop 版本: 3.3.6
mysql 版本: 5.7.21
hive 版本: 3.1.3
  二、安装步骤

1、hive的安装与设置

(1)hive的安装:hive-3.1.3下载地址

下载hive 3.1.3,使用以下命令安装到/usr/local

  1. cd /home/hadoop/Downloads
  2. tar -zxvf apache-hive-3.1.3-bin.tar.gz
  3. sudo mv apache-hive-3.1.3-bin /usr/local/hive
  4. cd /usr/local
  5. sudo chown -R hduser hive
复制代码
(2)设置情况变量

  1. sudo nano ~/.bashrc
复制代码
添加以下代码:

  1. export HIVE_HOME=/usr/local/hive
  2. export HCAT_HOME=$HIVE_HOME/hcatalog
  3. export HIVE_CONF=$HIVE_HOME/conf
  4. export PATH=$PATH:$HIVE_HOME/bin
复制代码
应用新的情况变量

  1. source ~/.bashrc
复制代码
(3) 设置hive-site.xml

  1. cd /usr/local/hive
  2. cp conf/hive-default.xml.template conf/hive-site.xml
  3. cd /usr/local/hive/conf
  4. sudo nano hive-site.xml
复制代码
将对应的name修改成下面的value:(在nano编译器中使用Ctrl+w搜刮)

  1. <property>
  2.           <name>javax.jdo.option.ConnectionURL</name>
  3.         <value>jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8&amp;createDatabaseIfNotExist=true</value>
  4.           <description>JDBC connect string for a JDBC metastore.To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.</description>
  5. </property>
  6. <property>
  7.           <name>javax.jdo.option.ConnectionDriverName</name>
  8.           <value>com.mysql.jdbc.Driver</value>
  9.           <description>Driver class name for a JDBC metastore</description>
  10. </property>
  11. <property>
  12.           <name>javax.jdo.option.ConnectionUserName</name>
  13.           <value>hive</value>
  14.           <description>Username to use against metastore database</description>
  15. </property>
  16. <property>
  17.   <name>javax.jdo.option.ConnectionPassword</name>
  18.   <value>hive</value>
  19.   <description>password to use against metastore database</description>
  20. </property>
复制代码
  在hive-site.xml中的

  将 ${system:java.io.tmpdir}全部替换为/usr/local/hive/tmp,

  将 ${system:user.name}全部替换为 ${user.name}

  设置文件3215行有代码错误必要修改,将该行出现红色的三个字母删除,“;”生存;(这里使用Ctrl+/ 搜刮)

  (4) 设置hive-env.sh

  1. cd /usr/local/hive/conf
  2. sudo mv hive-env.sh.template hive-env.sh
  3. cd /usr/local/hive/conf
  4. vim hive-env.sh
复制代码
在hive-env.sh中输入如下设置信息:
  1. export HADOOP_HEAPSIZE=4096
复制代码
把HADOOP_HEAPSIZE设置为4096,表示把Java堆内存巨细设置为4GB。通过上面的设置,可以避免后续在使用Hive过程中产生内存溢出的标题。
2、安装并设置MySQL

2.1 安装MySQL

  1. sudo apt-get install mysql-server
  2. sudo apt-get install mysql-client
复制代码
2.2 重启MySQL

  1. service mysql restart
  2. sudo mysql -u root -p
复制代码
2.3 设置登录密码(密码为123456,已经填好了,不消自己另外再填)

  1. mysql>use mysql;
  2. mysql>update user set authentication_string='123456' where user = 'root';
  3. mysql>flush privileges;
  4. mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
  5. mysql>quit;
复制代码
2.4 重新打开MySQL

  1. mysql -u root -p
  2. quit;
复制代码
2.5 MySQL JDBC驱动程序安装

(1) 官网下载:mysql-connector-j-8.0.31.jar


(2) 将安装的驱动程序文件夹中的JAR文件“mysql-connector-j-8.0.31.jar”复制到Hive安装目录的lib文件夹中

  1. cd /home/hadoop/Downloads
  2. tar -zxvf mysql-connector-j-8.0.31.tar.gz
  3. cp mysql-connector-j-8.0.31/mysql-connector-j-8.0.31.jar /usr/local/hive/lib/
复制代码
2.6 设置mysql允许hive接入:

  1. mysql -u root -p
复制代码
  1. mysql>CREATE USER 'hive'@'localhost';
  2. mysql>ALTER USER 'hive'@'localhost' IDENTIFIED BY 'hive';
  3. mysql>GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost';
  4. mysql>FLUSH PRIVILEGES;
复制代码
2.7 新建hive数据库

  1. mysql>create database hive;
  2. mysql>quit;
复制代码
2.8 初始化数据库

  1. schematool -dbType mysql -initSchema
复制代码
3、启动hive

  1. start-all.sh  #先启动Hadoop
  2. hive
复制代码
4、测试hive

  1. hive>show databases;
  2. hive>show tables;
复制代码
结果如下:


三、Hive应用实例:WordCount

现在我们通过一个实例——词频统计,来深入学习一下Hive的具体使用。首先,必要创建一个必要分析的输入数据文件,然后编写HiveQL语句实现WordCount算法,在Unix下实现步骤如下:
1、创建input目录,其中input为输入目录。命令如下:
  1. cd /usr/local/hadoop
  2. mkdir input
复制代码
2、在input文件夹中创建两个测试文件file1.txt和file2.txt,命令如下:
  1. cd /usr/local/hadoop/input
  2. echo "hello world" > file1.txt
  3. echo "hello hadoop" > file2.txt
  4. cd /usr/local/hadoop
  5. ./bin/hdfs dfs -mkdir input #假设HDFS中已经存在/user/hadoop目录
  6. ./bin/hdfs dfs -put ./input/file1.txt /user/hadoop/input
  7. ./bin/hdfs dfs -put ./input/file2.txt /user/hadoop/input
复制代码
3、进入hive命令行界面,编写HiveQL语句实现WordCount算法,命令如下:
  1. hive
  2. hive> create table docs(line string);
  3. hive> load data inpath 'input' overwrite into table docs;
  4. hive>create table word_count as
  5.       select word, count(1) as count from
  6.       (select explode(split(line,' '))as word from docs) w
  7.       group by word
  8.       order by word;
  9. #最后的代码是一个整体,直接一起复制到终端中即可;
复制代码
实行完成后,用select语句查看运行结果如下:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

尚未崩坏

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表