首页 技术 正文
技术 2022年11月15日
0 收藏 555 点赞 3,045 浏览 7390 个字

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系列:

Hadoop第9周练习—Hive部署测试(含MySql部署)

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

Hadoop第9周练习—Hive部署测试(含MySql部署)

Hadoop第9周练习—Hive部署测试(含MySql部署)

Hadoop第9周练习—Hive部署测试(含MySql部署)

下载在本地目录如下图:

Hadoop第9周练习—Hive部署测试(含MySql部署)

2.2.1.2上传mysql安装文件

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

Hadoop第9周练习—Hive部署测试(含MySql部署)

2.2.1.3卸载旧的mysql

(1)  查找以前是否安装有mysql

使用命令查看是否已经安装过mysql:

rpm -qa | grep -i mysql

可以看到如下图的所示:

Hadoop第9周练习—Hive部署测试(含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

Hadoop第9周练习—Hive部署测试(含MySql部署)

如果存在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

Hadoop第9周练习—Hive部署测试(含MySql部署)

删除对应的mysql目录

sudo rm -rf /usr/lib64/mysql

sudo rm -rf /var/lib/mysql

Hadoop第9周练习—Hive部署测试(含MySql部署)

(4)  再次查找机器是否安装mysql

sudo rpm -qa | grep -i mysql

无结果,说明已经卸载彻底、接下来直接安装mysql即可

Hadoop第9周练习—Hive部署测试(含MySql部署)

2.2.1.4安装mysql

进入安装文件的目录,安装mysql服务端

cd /home/hadoop/Downloads

sudo rpm -ivh MySQL-server-5.6.21-1.el6.x86_64.rpm

Hadoop第9周练习—Hive部署测试(含MySql部署)

安装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

Hadoop第9周练习—Hive部署测试(含MySql部署)

2.2.1.5设置root密码

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

Hadoop第9周练习—Hive部署测试(含MySql部署)

/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

Hadoop第9周练习—Hive部署测试(含MySql部署)

(2)  跳过验证启动mysql

使用如下命令验证启动mysql,由于&结尾是后台运行进程,运行该命令可以再打开命令窗口或者Ctr+C继续进行下步操作:

mysqld_safe –skip-grant-tables &

sudo service mysql status

Hadoop第9周练习—Hive部署测试(含MySql部署)

(3)  跳过验证启动MySQL

验证mysql服务已经在后台运行后,执行如下语句,其中后面三条命令是在mysql语句:

mysql -u root

mysql>use mysql;

mysql>update user set password = password(‘root’) where user = ‘root’;

mysql>flush privileges;

Hadoop第9周练习—Hive部署测试(含MySql部署)

(4)  跳过验证启动MySQL

重启mysql服务并查看状态

sudo service mysql stop

sudo service mysql start

sudo service mysql status

Hadoop第9周练习—Hive部署测试(含MySql部署)

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;

Hadoop第9周练习—Hive部署测试(含MySql部署)

(注意:如果是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;

Hadoop第9周练习—Hive部署测试(含MySql部署)

2.2.2安装Hive

2.2.2.1下载hive安装文件

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

Hadoop第9周练习—Hive部署测试(含MySql部署)

2.2.2.2下载mysql驱动

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

Hadoop第9周练习—Hive部署测试(含MySql部署)

2.2.2.3上传mysql安装文件和mysql驱动

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

Hadoop第9周练习—Hive部署测试(含MySql部署)

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

Hadoop第9周练习—Hive部署测试(含MySql部署)

2.2.2.5解压缩

到上传目录下,用如下命令解压缩hive安装文件:

cd /home/hadoop/Downloads

tar -zxvf hive-0.12.0-bin.tar.gz

Hadoop第9周练习—Hive部署测试(含MySql部署)

迁移到/usr/local目录下:

sudo mv hive-0.12.0-bin  /usr/local/hive-0.12.0

Hadoop第9周练习—Hive部署测试(含MySql部署)

2.2.2.6配置/etc/profile环境变量

使用如下命令打开/etc/profile文件:

sudo vi /etc/profile

Hadoop第9周练习—Hive部署测试(含MySql部署)

Hadoop第9周练习—Hive部署测试(含MySql部署)

使配置文件生效:

source /etc/profile

Hadoop第9周练习—Hive部署测试(含MySql部署)

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第9周练习—Hive部署测试(含MySql部署)

分别设置HADOOP_HOME和HIVE_CONF_DIR两个值:

Hadoop第9周练习—Hive部署测试(含MySql部署)

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

Hadoop第9周练习—Hive部署测试(含MySql部署)

(1)  加入配置项

默认metastore在本地,添加配置改为非本地

<property>

  <name>hive.metastore.local</name>

  <value>false</value>

</property>

Hadoop第9周练习—Hive部署测试(含MySql部署)

(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>

Hadoop第9周练习—Hive部署测试(含MySql部署)

Hadoop第9周练习—Hive部署测试(含MySql部署)

(3)  订正错误项

行左右配置项hive.server2.thrift.sasl.qop原来为<value>auth</auth>,按照如下进行修改:

<property>

  <name>hive.server2.thrift.sasl.qop</name>

  <value>auth</value>

  <des…..

</property>

Hadoop第9周练习—Hive部署测试(含MySql部署)

并把hive.metastore.schema.verification配置项值修改为false

<property>

  <name>hive.metastore.schema.verification</name>

  <value>false</value>

   <desc….>

</property>

Hadoop第9周练习—Hive部署测试(含MySql部署)

2.2.3验证部署

2.2.3.1启动metastore和hiveserver

在使用hive之前需要启动metastore和hiveserver服务,通过如下命令启用:

hive –service metastore &

hive –service hiveserver &

Hadoop第9周练习—Hive部署测试(含MySql部署)

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

Hadoop第9周练习—Hive部署测试(含MySql部署)

2.2.3.2在hive中操作

登录hive,在hive创建表并查看该表,命令如下:

hive

hive>create table test(a string, b int);

hive>show tables;

hive>desc test;

Hadoop第9周练习—Hive部署测试(含MySql部署)

登录mysql,在TBLS表中查看新增test表:

mysql -uhive -phive

mysql>use hive;

mysql>select TBL_ID, CREATE_TIME, DB_ID, OWNER, TBL_NAME,TBL_TYPE from TBLS;

Hadoop第9周练习—Hive部署测试(含MySql部署)

问题解决

3.1  设置mysql数据库root用户密码报错

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

Hadoop第9周练习—Hive部署测试(含MySql部署)

/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

Hadoop第9周练习—Hive部署测试(含MySql部署)

(6)  跳过验证启动mysql

使用如下命令验证启动mysql,由于&结尾是后台运行进程,运行该命令可以再打开命令窗口或者Ctr+C继续进行下步操作:

mysqld_safe –skip-grant-tables &

sudo service mysql status

Hadoop第9周练习—Hive部署测试(含MySql部署)

(7)  跳过验证启动MySQL

验证mysql服务已经在后台运行后,执行如下语句,其中后面三条命令是在mysql语句:

mysql -u root

mysql>use mysql;

mysql>update user set password = password(‘root’) where user = ‘root’;

mysql>flush privileges;

Hadoop第9周练习—Hive部署测试(含MySql部署)

(8)  跳过验证启动MySQL

重启mysql服务并查看状态

sudo service mysql stop

sudo service mysql start

sudo service mysql status

Hadoop第9周练习—Hive部署测试(含MySql部署)

3.2  hive启动,报CommandNeedRetryException异常

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

Hadoop第9周练习—Hive部署测试(含MySql部署)

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

Hadoop第9周练习—Hive部署测试(含MySql部署)

 

Hadoop第9周练习—Hive部署测试(含MySql部署)

3.3  在hive中使用操作语言

启动hive后,使用Hsql出现异常,需要启动metastore和hiveserver

Hadoop第9周练习—Hive部署测试(含MySql部署)

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 &

Hadoop第9周练习—Hive部署测试(含MySql部署)

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

Hadoop第9周练习—Hive部署测试(含MySql部署)

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,983
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,500
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,344
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,127
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,762
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,838