HIVE再次尝试 用 Mysql 环境搭建 以及 mysql中文乱码完美解决-阿里云开发者社区

开发者社区> jiacai2050> 正文

HIVE再次尝试 用 Mysql 环境搭建 以及 mysql中文乱码完美解决

简介: <p><a target="_blank" href="http://blog.csdn.net/jiacai2050/article/details/11738887">上文</a>说道hive用默认的Derby作为metadata的存放处,但是这个缺点比较多,只能同时让一个用户登陆,重启机器后建的表也没了,不能用于真正的集群,下面讲解用mysql作为数据的搭建方法。</p> <h2>
+关注继续查看

上文说道hive用默认的Derby作为metadata的存放处,但是这个缺点比较多,只能同时让一个用户登陆,重启机器后建的表也没了,不能用于真正的集群,下面讲解用mysql作为数据的搭建方法。

1. hive安装

第一步:安装mysql

因为我用的是ubuntu系统,安装比较简单,一行命令搞定

sudo apt-get install mysql-server

这里顺便说下mysql的数据文件放在/var/lib/mysql目录下,配置文件放在:/etc/mysql目录下

对于mysql5.5版本:可用sudo service mysql stop/start/restart 进行mysql开启与关闭

对于mysql5.5之前的版本,可用sudo /etc/init.d/mysql start|stop|restart|reload|force-reload|status 进行相关操作,最常用的就是stop、restart、start命令

第二步:配置hive

首先,我假设你已经能够用Derby作为数据正常运行hive了(参考文章:http://blog.csdn.net/jiacai2050/article/details/11738887),下面需要做一些配置:

把hive/conf文件夹中创建一个hive-site.xml的文件,内容为:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
 
<configuration>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/metastore_db?createDatabaseIfNotExist=true</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>root</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>mysql</value>
</property>
</configuration>
很明显,最后两项是配置mysql的连接用户名与密码,可根据实际情况更改。

这里还需要把mysql的连接jar把放到classpath下,注意:linux上CLASSPATH 必须为大写,我这里直接把mysql-connector-java-5.1.26-bin.jar放到hive的lib文件夹下,然后再在 .profile文件中添加这么一句:

export CLASSPATH=$HIVE_HOME/lib:$CLASSPATH

OK,这两步走完就完成配置任务了。


2.  ubuntu 安装mysql遇到的问题

我在安装mysql遇到这么一个问题,我把日志贴出来:

正在设置 mysql-server-5.5 (5.5.27-0ubuntu2) ...
start: Job failed to start
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing mysql-server-5.5 (--configure):
 子进程 已安装 post-installation 脚本 返回了错误号 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server 依赖于 mysql-server-5.5;然而:
  软件包 mysql-server-5.5 尚未配置。

dpkg: error processing mysql-server (--configure):
 依赖关系问题 - 仍未被配置
因为错误消息指示这是由于上一个问题导致的错误,没有写入 apport 报告。
                                                                    在处理时有错误发生:
 mysql-server-5.5
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
大约就是这么一个错误,这个问题让我很纠结了,后来在stackoverflow上找到一个方法:

sudo dpkg --remove mysql-server
sudo apt-get purge -f mysql-server mysql-common
sudo apt-get install mysql-server mysql-common
执行这三行命令后完美解决问题,但是原因我还没找到,先留一下。


修改mysql的root口令 :  sudo mysqladmin -u root -p password '你的新密码'



参考文章:

mysql安装:

http://wiki.ubuntu.org.cn/MySQL%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97

http://www.cnblogs.com/wuhou/archive/2008/09/28/1301071.html

http://stackoverflow.com/questions/9972611/not-able-to-install-mysql-on-ubuntu-11

mysql启动/停止:

http://blog.csdn.net/phpandjava/article/details/4636610

mysql中文乱码:
http://alanlhy.iteye.com/blog/1060320 

3. mysql中文乱码解决

这里简单明了地说下:

对于mysql5.5版本,需要在/etc/mysql/my.cnf做如下修改:

[client]下添加:default-character-set = utf8

[mysqld]下添加:character-set-server = utf8

对于mysql5.5之前的版本,做如下修改:

在[client] 和 [mysqld]下都添加一行

default-character-set = utf8

如果在mysql5.5 版本中也这么配置会导致mysql服务起不来。

最后上图,有图有真相呀。


图1. 上图是没有修改前的mysql编码情况


图2.上图没有修改后的mysql编码情况

对于已经存在的数据库,可以通过执行下面的命令更改字符集:

ALTER DATABASE <db-name> CHARACTER SET utf8 COLLATE utf8_general_ci;
参考:

http://stackoverflow.com/questions/22572558/how-to-set-character-set-database-and-collation-database-to-utf8-in-my-ini

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
记录阿里云服务器搭建JAVA环境流程(jdk+mysql+tomcat)
记录阿里云服务器搭建JAVA环境流程(jdk+mysql+tomcat)
2543 0
[喵咪大数据]Hive2搭建和基本操作
说的Hadoop生态有一个不得不提的组件那就是<Hive>,Hive是基于Hadoop结构化存储引擎,能够存储海量的数据,Hive提供了类SQL的方式对数据进行查询检索汇总,大大减少了早期需要使用MapReduce编程的烦扰,今天就和笔者一起来探索Hive的实际应用场景吧.
274 0
阿里云ECS CentOs7.3下搭建LAMP环境(Apache2.4 + Mysql5.7 + PHP5.6 + Laravel5.2)
硬件是阿里云服务器ECS,安装阿里云提供的系统Linux CentOs7.3。LAMP环境搭建,再安装Laravel5.2框架。 硬件没什么好说的,不是很懂,买就是了。 至于系统为什么选择CentOs? 因为CentOs是公认的,个人服务器最合适的系统。
3429 0
使用innobackupex基于从库搭建mysql主从架构
        MySQL的主从搭建大家有很多种方式,传统的mysqldump方式是很多人的选择之一。但对于较大的数据库则该方式并非理想的选择。使用Xtrabackup可以快速轻松的构建或修复mysql主从架构。
1167 0
Mac mysql 解决中文乱码
Mac mysql 解决中文乱码问题 出现“???”之类的无法识别的乱码 到/etc目录下自己建一个my.cnf文件(需要最高权限,使用sudo su),然后写入内容: [client] default-character-set=utf8 [mysqld] character-set-server=utf8 保存,修改。
966 0
E-MapReduce解决hive comment中文乱码问题
在最新版本的EMR-1.3.0已经解决了hive comment中文乱码问题。如果已经申请了包年包月的集群,用的是老版本,那么可以过下面介绍的步骤解决这个问题。
4074 0
百度架构师是怎样搭建MySQL分布式集群?
1、什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。
1605 0
centos搭建nginx+php+mysql环境(高于apeche10的服务器)
示意流程图: 官方中文wiki站:http://wiki.nginx.org/Chs 比较好的资源站点:www.s135.com 张宴的个人博客很牛逼 Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
765 0
mysql主从复制搭建
mysql主从复制搭建原理: MySQL主从复制涉及到三个线程,一个运行在主节点(log dump thread),其余两个(I/O thread, SQL thread)运行在从节点,如下图所示: l 主节点 binary log dump 线程 当从节点连接主节点时,主节点会创建一个log dump 线程,用于发送bin-log的内容。
953 0
+关注
jiacai2050
http://liujiacai.net/
83
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载