Hadoop2.7实战v1.0之Hive-2.0.0+MySQL本地模式安装

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 已有环境:Hadoop-2.7.2+zookeeper-3.4.6完全分布式环境搭建(HDFS、YARN HA) Active namenode:sht-sgmhadoopnn-01 Hive服务端客户端、元数据库mysql部署在 active namenode机器上 User:hive Database:hive_local_meta 1.
已有环境: Hadoop-2.7.2+zookeeper-3.4.6完全分布式环境搭建(HDFS、YARN HA)
Active namenode:sht-sgmhadoopnn-01
Hive服务端客户端、元数据库mysql部署在 active namenode机器上
User:hive
Database:hive_local_meta

1.Install MySQL5.6.23

2.Create db and user
sht-sgmhadoopnn-01:mysqladmin:/usr/local/mysql:>mysql -uroot -p
mysql> create database hive_local_meta;
Query OK, 1 row affected (0.04 sec)

mysql> create user 'hive' identified by 'hive';
Query OK, 0 rows affected (0.05 sec)

mysql> grant all privileges on hive_local_meta.* to 'hive'@'%';
Query OK, 0 rows affected (0.03 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

3.Install hive-2.0.0
[root@sht-sgmhadoopnn-01 tmp]# wget http://apache.communilink.net/hive/hive-2.0.0/apache-hive-2.0.0-bin.tar.gz

[root@sht-sgmhadoopnn-01 tmp]# tar zxvf apache-hive-2.0.0-bin.tar.gz
[root@sht-sgmhadoopnn-01 tmp]# mv apache-hive-2.0.0-bin /hadoop/hive
[root@sht-sgmhadoopnn-01 tmp]# cd /hadoop/hive 
[root@sht-sgmhadoopnn-01 hive]# ll
total 588
drwxr-xr-x 3 root root   4096 Mar 29 23:19 bin
drwxr-xr-x 2 root root   4096 Mar 29 23:19 conf
drwxr-xr-x 4 root root   4096 Mar 29 23:19 examples
drwxr-xr-x 7 root root   4096 Mar 29 23:19 hcatalog
drwxr-xr-x 4 root root  12288 Mar 29 23:19 lib
-rw-r--r-- 1 root root  26335 Jan 22 12:28 LICENSE
-rw-r--r-- 1 root root    513 Jan 22 12:28 NOTICE
-rw-r--r-- 1 root root   4348 Feb 10 09:50 README.txt
-rw-r--r-- 1 root root 527063 Feb 10 09:56 RELEASE_NOTES.txt
drwxr-xr-x 4 root root   4096 Mar 29 23:19 scripts
[root@sht-sgmhadoopnn-01 hive]#

4.Configure profile
[root@sht-sgmhadoopnn-01 ~]# vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
export HADOOP_HOME=/hadoop/hadoop-2.7.2
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export HBASE_HOME=/hadoop/hbase-1.2.0
export ZOOKEEPER_HOME=/hadoop/zookeeper
export HIVE_HOME=/hadoop/hive
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin:$PATH
[root@sht-sgmhadoopnn-01 ~]# source /etc/profile
[root@sht-sgmhadoopnn-01 ~]#

5.configure jdbc jar
[root@sht-sgmhadoopnn-01 tmp]# wget http://ftp.nchu.edu.tw/Unix/Database/MySQL/Downloads/Connector-J/mysql-connector-java-5.1.36.tar.gz
[root@sht-sgmhadoopnn-01 tmp]# tar zxvf  mysql-connector-java-5.1.36.tar.gz
[root@sht-sgmhadoopnn-01 tmp]# cd mysql-connector-java-5.1.36
[root@sht-sgmhadoopnn-01 mysql-connector-java-5.1.36]# ll
total 1428
-rw-r--r-- 1 root root  90430 Jun 20  2015 build.xml
-rw-r--r-- 1 root root 235082 Jun 20  2015 CHANGES
-rw-r--r-- 1 root root  18122 Jun 20  2015 COPYING
drwxr-xr-x 2 root root   4096 Mar 29 23:35 docs
-rw-r--r-- 1 root root 972009 Jun 20  2015 mysql-connector-java-5.1.36-bin.jar
-rw-r--r-- 1 root root  61423 Jun 20  2015 README
-rw-r--r-- 1 root root  63674 Jun 20  2015 README.txt
drwxr-xr-x 8 root root   4096 Jun 20  2015 src
[root@sht-sgmhadoopnn-01 mysql-connector-java-5.1.36]# cp mysql-connector-java-5.1.36-bin.jar $HIVE_HOME/lib/

6.Configure hive-site.xml

点击(此处)折叠或打开

  1. [root@sht-sgmhadoopnn-01 ~]# cd $HIVE_HOME/conf
  2. [root@sht-sgmhadoopnn-01 conf]# cp hive-default.xml.template hive-default.xml

  3. [root@sht-sgmhadoopnn-01 conf]# vi hive-site.xml
  4. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  5. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

  6. <configuration>
  7.      <property>
  8.      <name>hive.metastore.warehouse.dir</name>
  9.      <value>/user/hive_local/warehouse</value>
  10.       </property>

  11.       <property>
  12.      <name>hive.metastore.local</name>
  13.      <value>true</value>
  14.       </property>

  15.     <property>
  16.         <name>javax.jdo.option.ConnectionURL</name>
  17.         <value>jdbc:mysql://localhost:3306/hive_local_meta?createDatabaseIfNotExist=true</value>
  18.         <description>JDBC connect string for a JDBC metastore</description>
  19.     </property>
  20.     <property>
  21.         <name>javax.jdo.option.ConnectionDriverName</name>
  22.         <value>com.mysql.jdbc.Driver</value>
  23.         <description>Driver class name for a JDBC metastore</description>
  24.     </property>

  25.     <property>
  26.         <name>javax.jdo.option.ConnectionUserName</name>
  27.         <value>hive</value>
  28.         <description>username to use against metastore database</description>
  29.     </property>
  30.     <property>
  31.         <name>javax.jdo.option.ConnectionPassword</name>
  32.         <value>hive</value>
  33.         <description>password to use against metastore database</description>
  34.     </property>
  35. </configuration>

  36. "hive-site.xml" 26L, 1056C written
7.第一次运行  bin/hive 客户端
[root@sht-sgmhadoopnn-01 hive-2.0.0]# cd bin
[root@sht-sgmhadoopnn-01 bin]# hive
Logging initialized using configuration in jar:file:/hadoop/hive-2.0.0/lib/hive-common-2.0.0.jar!/hive-log4j2.properties
Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)

[root@sht-sgmhadoopnn-01 bin]# ll
total 64
-rwxr-xr-x 1 root root 1434 Feb 10 09:50 beeline
-rwxr-xr-x 1 root root 2553 Dec  1 05:54 beeline.cmd
drwxr-xr-x 3 root root 4096 Mar 29 23:19 ext
-rwxr-xr-x 1 root root 8494 Feb 10 09:56 hive
-rwxr-xr-x 1 root root 8713 Dec  1 05:54 hive.cmd
-rwxr-xr-x 1 root root 1584 Apr 23  2015 hive-config.cmd
-rwxr-xr-x 1 root root 1900 Apr 23  2015 hive-config.sh
-rwxr-xr-x 1 root root  885 Apr 23  2015 hiveserver2
-rwxr-xr-x 1 root root 1030 Jan 22 12:28 hplsql
-rwxr-xr-x 1 root root 2278 Jan 22 12:28 hplsql.cmd
-rwxr-xr-x 1 root root  832 Apr 23  2015 metatool
-rwxr-xr-x 1 root root  884 Apr 23  2015 schematool
You have mail in /var/spool/mail/root

8.初始化 db
[root@sht-sgmhadoopnn-01 bin]# schematool -initSchema -dbType mysql
Metastore connection URL:        jdbc:mysql://localhost/hive?createDatabaseIfNotExist=true
Metastore Connection Driver :    com.mysql.jdbc.Driver
Metastore connection User:       hive
Starting metastore schema initialization to 2.0.0
Initialization script hive-schema-2.0.0.mysql.sql
Initialization script completed
schemaTool completed
You have mail in /var/spool/mail/root
[root@sht-sgmhadoopnn-01 bin]#

9.查看MySQL元数据,show tables
sht-sgmhadoopnn-01.telenav.cn:mysqladmin:/usr/local/mysql:>mysql -uhive -p
mysql> use hive;
Database changed

mysql> show tables;
+---------------------------+
| Tables_in_hive            |
+---------------------------+
| aux_table                 |
| bucketing_cols            |
...............
...............

| tbls                      |
| txn_components            |
| txns                      |
| type_fields               |
| types                     |
| version                   |
+---------------------------+
55 rows in set (0.00 sec)

10.测试,创建表,插入数据
## "tab制表符"分隔
[root@sht-sgmhadoopnn-01 conf]# vi /tmp/studentInfo.txt
1       a       26      110
2       b       29      120
~

[root@sht-sgmhadoopnn-01 bin]# hive
Logging initialized using configuration in jar:file:/hadoop/hive-2.0.0/lib/hive-common-2.0.0.jar!/hive-log4j2.properties
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. tez, spark) or using Hive 1.X releases.
hive> create table studentinfo (id int,name string, age int,tel string)
   > row format delimited  fields terminated by '\t'
   > stored as textfile;
OK
Time taken: 2.347 seconds
hive> load data local inpath '/tmp/studentInfo.txt'  into table studentinfo;
Loading data to table default.studentinfo
OK
Time taken: 1.383 seconds
hive> select * from studentinfo;
OK
1       a       26      110
2       b       29      120
Time taken: 0.173 seconds, Fetched: 2 row(s)
hive> exit();

11.再次修改两个参数
# "hdfs://mycluster"是指$HADOOP_HOME/etc/hadoop/core-site.xml文件的fs.defaultFS的值(NameNode HA URI)

点击(此处)折叠或打开

  1. [root@sht-sgmhadoopnn-01 conf]# vi hive-site.xml
  2.       <property>
  3.      <name>hive.metastore.warehouse.dir</name>
  4.      <value>hdfs://mycluster/user/hive_local/warehouse</value>
  5.       </property>

  6.     <property>
  7.         <name>javax.jdo.option.ConnectionURL</name>
  8.         <value>jdbc:mysql://sht-sgmhadoopnn-01:3306/hive_local_meta?createDatabaseIfNotExist=true</value>
  9.         <description>JDBC connect string for a JDBC metastore</description>
  10.     </property>
11.再次验证修改的内容,是否成功创建classInfo
[root@sht-sgmhadoopnn-01 bin]# hive
Logging initialized using configuration in jar:file:/hadoop/hive-2.0.0/lib/hive-common-2.0.0.jar!/hive-log4j2.properties
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. tez, spark) or using Hive 1.X releases.
hive> create table classInfo(id int,classname string,stucount int) row format delimited  fields terminated by '\t'
   > stored as textfile;
OK
Time taken: 2.257 seconds
hive>
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
缓存 关系型数据库 MySQL
MySQL索引策略与查询性能调优实战
在实际应用中,需要根据具体的业务需求和查询模式,综合运用索引策略和查询性能调优方法,不断地测试和优化,以提高MySQL数据库的查询性能。
255 66
|
3月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
220 6
|
3月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
100 2
|
2月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
482 1
|
3月前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:优化百万数据查询的实战经验
【10月更文挑战第13天】 在处理大规模数据集时,传统的关系型数据库如MySQL可能会遇到性能瓶颈。为了提升数据处理的效率,我们可以结合使用MySQL和Redis,利用两者的优势来优化数据查询。本文将分享一次实战经验,探讨如何通过MySQL与Redis的协同工作来优化百万级数据统计。
153 5
|
3月前
|
架构师 关系型数据库 MySQL
MySQL最左前缀优化原则:深入解析与实战应用
【10月更文挑战第12天】在数据库架构设计与优化中,索引的使用是提升查询性能的关键手段之一。其中,MySQL的最左前缀优化原则(Leftmost Prefix Principle)是复合索引(Composite Index)应用中的核心策略。作为资深架构师,深入理解并掌握这一原则,对于平衡数据库性能与维护成本至关重要。本文将详细解读最左前缀优化原则的功能特点、业务场景、优缺点、底层原理,并通过Java示例展示其实现方式。
163 1
|
2月前
|
分布式计算 资源调度 Hadoop
【赵渝强老师】部署Hadoop的本地模式
本文介绍了Hadoop的目录结构及本地模式部署方法,包括解压安装、设置环境变量、配置Hadoop参数等步骤,并通过一个简单的WordCount程序示例,演示了如何在本地模式下运行MapReduce任务。
|
2月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
245 0
|
3月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
153 0
|
4天前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
54 0