Hadoop第9周练习—Hive部署测试(含MySql部署)
1.1
2 :搭建Hive环境
内容
2.2
3
运行环境说明
1.1 硬软件环境
线程,主频2.2G,6G内存
l 虚拟软件:VMware® Workstation 9.0.0 build-812388
l 虚拟机操作系统:CentOS 64位,单核,1G内存
l JDK:1.7.0_55 64 bit
l Hadoop:1.1.2
1.2 机器网络环境
个namenode、2个datanode,其中节点之间可以相互ping通。节点IP地址和主机名分布如下:
|
序号 |
IP地址 |
机器名 |
类型 |
用户名 |
运行进程 |
|
10.88.147.221 |
hadoop1 |
名称节点 |
hadoop |
NN、SNN、JobTracer |
|
|
10.88.147.222 |
hadoop2 |
数据节点 |
hadoop |
DN、TaskTracer |
|
|
10.88.147.223 |
hadoop3 |
数据节点 |
hadoop |
DN、TaskTracer |
所有节点均是CentOS6.5 64bit系统,防火墙均禁用,所有节点上均创建了一个hadoop用户,用户主目录是/usr/hadoop。所有节点上均创建了一个目录/usr/local/hadoop,并且拥有者是hadoop用户。
书面作业1:搭建Hive环境
内容
安装Hive,有条件的同学按本地独立模式或远程模式安装,将安装过程和最后测试成功的界面抓图提交。
2.2 搭建过程
2.2.1安装MySql数据库
2.2.1.1下载mysql安装文件
下载地址:http://dev.mysql.com/downloads/mysql/#downloads,使用系统为CentOS选择 Red Hat Enterprise Linux/Oracle系列:

位,选择对应安装包进行下载:



下载在本地目录如下图:

2.2.1.2上传mysql安装文件
、2作业周2.1.3.1介绍)上传到/home/hadoop/Downloads 目录下,如下图所示:

2.2.1.3卸载旧的mysql
(1) 查找以前是否安装有mysql
使用命令查看是否已经安装过mysql:
rpm -qa | grep -i mysql
可以看到如下图的所示:

说明之前安装了:
MySQL-client-5.6.21-1.el6.x86_64
MySQL-server-5.6.21-1.el6.x86_64
MySQL-devel-5.6.21-1.el6.x86_64
如果没有结果,可以进行mysql数据库安装
(2) 停止mysql服务、删除之前安装的mysql
停止mysql服务、删除之前安装的mysql删除命令:rpm -e –nodeps 包名
sudo rpm -ev MySQL-server-5.6.21-1.el6.x86_64
sudo rpm -ev MySQL-devel-5.6.21-1.el6.x86_64
sudo rpm -ev MySQL-client-5.6.21-1.el6.x86_64

如果存在CentOS自带mysql-libs-5.6.21-1.el6.x86_64使用下面的命令卸载即可
sudo rpm -ev --nodeps mysql-libs-5.6.21-1.el6.x86_64
(3) 查找之前老版本mysql的目录并且删除老版本mysql的文件和库
sudo find / -name mysql

删除对应的mysql目录
sudo rm -rf /usr/lib64/mysql
sudo rm -rf /var/lib/mysql

(4) 再次查找机器是否安装mysql
sudo rpm -qa | grep -i mysql
无结果,说明已经卸载彻底、接下来直接安装mysql即可

2.2.1.4安装mysql
进入安装文件的目录,安装mysql服务端
cd /home/hadoop/Downloads
sudo rpm -ivh MySQL-server-5.6.21-1.el6.x86_64.rpm

安装mysql客户端、mysql-devel
sudo rpm -ivh MySQL-client-5.6.21-1.el6.x86_64.rpm
sudo rpm -ivh MySQL-devel-5.6.21-1.el6.x86_64.rpm

2.2.1.5设置root密码
在CentOS6.5下安装mysql设置root密码时,出现如下错误:

/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
可以进入安全模式进行设置root密码
(1) 停止mysql服务
使用如下命令停止mysql服务:
sudo service mysql stop
sudo service mysql status

(2) 跳过验证启动mysql
使用如下命令验证启动mysql,由于&结尾是后台运行进程,运行该命令可以再打开命令窗口或者Ctr+C继续进行下步操作:
mysqld_safe --skip-grant-tables &
sudo service mysql status

(3) 跳过验证启动MySQL
验证mysql服务已经在后台运行后,执行如下语句,其中后面三条命令是在mysql语句:
mysql -u root
mysql>use mysql;
mysql>update user set password = password('root') where user = 'root';
mysql>flush privileges;

(4) 跳过验证启动MySQL
重启mysql服务并查看状态
sudo service mysql stop
sudo service mysql start
sudo service mysql status

2.2.1.6设置hive用户
进入mysql命令行,创建hive用户并赋予所有权限:
mysql -uroot -proot
mysql>create user 'hive' identified by 'hive';
mysql>grant all on *.* TO 'hive'@'%' with grant option;
mysql>flush privileges;

(注意:如果是root第一次登录数据库,需要重新设置一下密码,所报异常信息如下:ERROR 1820 (HY000): You must SET PASSWORD before executing this statement)
2.2.1.7创建hive数据库
使用hive用户登录,创建hive数据库:
mysql -uhive -phive
mysql>create database hive;
mysql>show databases;

2.2.2安装Hive
2.2.2.1下载hive安装文件
可以到Apache基金hive官网http://hive.apache.org/downloads.html,选择镜像下载地址:http://mirrors.cnnic.cn/apache/hive/下载一个稳定版本,如下图所示:

2.2.2.2下载mysql驱动
到mysql官网进入下载页面:http://dev.mysql.com/downloads/connector/j/ ,选择所需要的版本进行下载,这里下载的zip格式的文件

2.2.2.3上传mysql安装文件和mysql驱动
、2作业周2.1.3.1介绍)上传到/home/hadoop/Downloads 目录下,如下图所示:

2.2.2.4把mysql驱动放到hive的lib目录下
把下载的hive安装包和mysql驱动包,使用
cd /home/hadoop/Downloads
cp mysql-connector-java-5.1.34-bin.jar /usr/local/hive-0.12.0/lib

2.2.2.5解压缩
到上传目录下,用如下命令解压缩hive安装文件:
cd /home/hadoop/Downloads
tar -zxvf hive-0.12.0-bin.tar.gz

迁移到/usr/local目录下:
sudo mv hive-0.12.0-bin /usr/local/hive-0.12.0

2.2.2.6配置/etc/profile环境变量
使用如下命令打开/etc/profile文件:
sudo vi /etc/profile


使配置文件生效:
source /etc/profile

2.2.2.7设置hive-env.sh配置文件
进入hive-0.12.0/conf目录,复制hive-env.sh.templaete为hive-env.sh:
cd /usr/local/hive-0.12.0/conf
cp hive-env.sh.template hive-env.sh
ls
vi hive-env.sh

分别设置HADOOP_HOME和HIVE_CONF_DIR两个值:

2.2.2.8设置hive-site.xml配置文件
复制hive-default.xml.templaete为hive-site.xml
cp hive-default.xml.template hive-site.xml
sudo vi hive-site.xml

(1) 加入配置项
默认metastore在本地,添加配置改为非本地
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>

(2) 修改配置项
hive默认为derby数据库,需要把相关信息调整为mysql数据库
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop1:9083</value>
<description>Thrift URI for the remote metastore. ...</description>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop1:3306/hive?=createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastore database</description>
</property>


(3) 订正错误项
行左右配置项hive.server2.thrift.sasl.qop原来为<value>auth</auth>,按照如下进行修改:
<property>
<name>hive.server2.thrift.sasl.qop</name>
<value>auth</value>
<des.....
</property>

并把hive.metastore.schema.verification配置项值修改为false
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
<desc....>
</property>

2.2.3验证部署
2.2.3.1启动metastore和hiveserver
在使用hive之前需要启动metastore和hiveserver服务,通过如下命令启用:
hive --service metastore &
hive --service hiveserver &

启动用通过jps命令可以看到两个进行运行在后台

2.2.3.2在hive中操作
登录hive,在hive创建表并查看该表,命令如下:
hive
hive>create table test(a string, b int);
hive>show tables;
hive>desc test;

登录mysql,在TBLS表中查看新增test表:
mysql -uhive -phive
mysql>use hive;
mysql>select TBL_ID, CREATE_TIME, DB_ID, OWNER, TBL_NAME,TBL_TYPE from TBLS;

问题解决
3.1 设置mysql数据库root用户密码报错
在CentOS6.5下安装mysql设置root密码时,出现如下错误:

/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
(5) 停止mysql服务
使用如下命令停止mysql服务:
sudo service mysql stop
sudo service mysql status

(6) 跳过验证启动mysql
使用如下命令验证启动mysql,由于&结尾是后台运行进程,运行该命令可以再打开命令窗口或者Ctr+C继续进行下步操作:
mysqld_safe --skip-grant-tables &
sudo service mysql status

(7) 跳过验证启动MySQL
验证mysql服务已经在后台运行后,执行如下语句,其中后面三条命令是在mysql语句:
mysql -u root
mysql>use mysql;
mysql>update user set password = password('root') where user = 'root';
mysql>flush privileges;

(8) 跳过验证启动MySQL
重启mysql服务并查看状态
sudo service mysql stop
sudo service mysql start
sudo service mysql status

3.2 hive启动,报CommandNeedRetryException异常
启动hive时,出现CommandNeedRetryException异常,具体信息如下:

Exception in thread "main" java.lang.NoClassDefFoundError:org/apache/hadoop/hive/ql/CommandNeedRetryException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
at org.apache.hadoop.util.RunJar.main(RunJar.java:149)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.ql.CommandNeedRetryException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
由于以前使用hadoop时,修改hadoop-env.sh的HADOOP_CLASSPATH配置项,由以前的:
export HADOOP_CLASSPATH=/usr/local/hadoop-1.1.2/myclass
修改为:
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/local/hadoop-1.1.2/myclass


3.3 在hive中使用操作语言
启动hive后,使用Hsql出现异常,需要启动metastore和hiveserver

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
在使用hive之前需要启动metastore和hiveserver服务,通过如下命令启用:
hive --service metastore &
hive --service hiveserver &

启动用通过jps命令可以看到两个进行运行在后台

Hadoop第9周练习—Hive部署测试(含MySql部署)的更多相关文章
- Hive Server 2 安装部署测试
Hive 0.11 包含了Hive Server 1 和 Hive Server 2,还包含1的原因是为了做到向下兼容性.从长远来看都会以Hive Server 2作为首选 1. 配置hive ser ...
- Hadoop入门第五篇:Hive简介以及部署
标签(空格分隔): Hadoop Hive hwi 1.Hive简介 之前我一直在Maxcompute上进行大数据开发,所以对数仓这块还算比较了解,在接受Hive的时候基本上没什么大的障碍.所以, ...
- 【Hadoop离线基础总结】Hive的安装部署以及使用方式
Hive的安装部署以及使用方式 安装部署 Derby版hive直接使用 cd /export/softwares 将上传的hive软件包解压:tar -zxvf hive-1.1.0-cdh5.14. ...
- Hadoop数据分析平台项目实战(基于CDH版本集群部署与安装)
1.Hadoop的主要应用场景: a.数据分析平台. b.推荐系统. c.业务系统的底层存储系统. d.业务监控系统. 2.开发环境:Linux集群(Centos64位)+Window开发模式(win ...
- 在Hadoop集群上的Hive配置
1. 系统环境Oracle VM VirtualBoxUbuntu 16.04Hadoop 2.7.4Java 1.8.0_111 hadoop集群master:192.168.19.128slave ...
- HDFS部署测试记录(2019/05)
目录 HDFS部署测试记录 0.HDFS基础知识 1.基本组成结构与文件访问过程 2.NameNode启动时如何维护元数据 3.HDFS文件上传流程 1.系统环境 1.安装大致记录: 2.磁盘分区 3 ...
- 【Hadoop离线基础总结】Hive的基本操作
Hive的基本操作 创建数据库与创建数据库表 创建数据库的相关操作 创建数据库:CREATE TABLE IF NOT EXISTS myhive hive创建表成功后的存放位置由hive-site. ...
- C++的性能C#的产能?! - .Net Native 系列《三》:.NET Native部署测试方案及样例
之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...
- 基于hadoop的数据仓库工具:Hive概述
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行.其优点是学习成本低,可以通过类 ...
随机推荐
- Java开源框架推荐(全)
Build Tool Tools which handle the buildcycle of an application. Apache Maven - Declarative build and ...
- 阿里云产品介绍(一):云服务器ECS
最近天南海北的跑客户,在沟通过程中,发现很多客户对于阿里云众多的产品颇有种挑花了眼不知如何入手的感觉,就想写一个系列来简单的介绍下. 云计算的概念刚出来的时候,吹的牛皮是可以将成千上万台物理服务器连接 ...
- django文件上传下载
views: def mgmt_files(request): #列出树形目录,上传文件页面 if request.method == 'POST': path_root = "D:\\py ...
- openCV_java Canny边缘检测
边缘检测的原理: 检测出图像中所有灰度值变化较大的点,而且这些点连起来构成若干线条,这些线条就称之为图像的边缘. 1986年,由John F. Canny 提出! // Canny(Mat image ...
- 最新的JavaScript核心语言标准——ES6,彻底改变你编写JS代码的方式!【转载+整理】
原文地址 本文内容 ECMAScript 发生了什么变化? 新标准 版本号6 兑现承诺 迭代器和for-of循环 生成器 Generators 模板字符串 不定参数和默认参数 解构 Destructu ...
- android studio svn不显示问题
今天更新android studio SDK 重启后发现SVN功能没有了,工具栏也没有了更新提交按钮,刚开始以后是SVN程序可以不行了(在我的电脑提交更新没问题)我在官网下了最新1.9.4 打开and ...
- eclipse android logcat 只显示自己应用程序信息的设置方法
1 elcipse 中往往会在logcat中显示 all message ,而这里面的信息太多,根本没有办法进行区分.如图: 2 我们想显示自己项目的 logcat .下面开始设置. 3 首先点击上面 ...
- H5页面设计器,仿有赞商城页面在线设计器,比富文本框更友好的内容编辑器
基本上每个web应用,都会牵扯到内容编辑,尤其是移动的web应用,微信开发之类的.页面内容自定义是最常用的功能了,之前大部分解决方案都是采用富文本框编辑器kindeditor,ueditor,cked ...
- How to set colors of HTML tables
There is a simple way to set the color of tables: use the bgcolor attribute of tag <table>. ...
- 《objective-c基础教程》学习笔记(十)—— 内存管理
本篇博文,将给大家介绍下再Objective-C中如何使用内存管理.一个程序运行的时候,如果不及时的释放没有用的空间内存.那么,程序会越来越臃肿,内存占用量会不断升高.我们在使用的时候,就会感觉很卡, ...