首先了解下Hive,Hive在大数据处理中是一个必不可少的工具, 它是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。本质上就是将SQL语句转换为MapReduce程序,一些简单的MapReduce完全没必要去写,直接使用Hive一条SQL就搞定,而且这也给一些不会Java的程序猿带来极大的方便,好了,废话不多说,开始搭建Hive开发环境。
Hive的开发环境必须搭建在Hadoop的集群基础之上,如果还没有Hadoop集群,请参考:
如何搭建一个高可用的Hadoop集群
选择一台datanode的机器作为Hive的安装机器,还需要准备一台机器作为MySql安装的机器,当然两个装在一个机器上也可以,下载Hive的安装包 apache-hive-1.2.0-bin.tar.gz,解压,进行配置。别看配置文件一大堆,其实只需要修改部分即可。
cp hive-default.xml.template hive-site.xml
修改hive-site.xml(删除所有内容,只留一个<property></property>)
添加如下内容:
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://node4: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>root</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>1234</value> <description>password to use against metastore database</description> </property>
配置完成后,下载mysql-connector-java-5.1.34-bin.jar这个jar包,并扔到Hive的lib目录下面。
在另一台机器(node4)上安装mysql,使用yum安装即可,不会的面壁去,安装后开启mysql服务
service mysqld start
在加入到开机启动
chkconfig mysqld on
执行命令
mysql_secure_installation
设置数据库用户名密码分别为root、1234并支持外部访问。
进入mysql,输入命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123123' WITH GRANT OPTION; FLUSH PRIVILEGES;
不懂grant命令的看以参考:
OK,mysql这边也搞定,启动Hadoop集群,然后进入node3(Hive安装的机器)配置环境变量后,执行hive命令,进入HiveShell。
其实不实用Mysql也可以,但是这样的话hive命令在同一个目录的情况下只能被一个人执行,而且新建的表也是保存在本地,不会被共享,如果使用mysql来保存元数据,那么可以实现多人同时访问hive并且数据共享。
未经允许不得转载:李阳博客 » 基于Hadoop集群搭建Hive开发环境