Hive的配置
前言:hive作为Hadoop的数据仓库工具,将结构化的数据映射成一张表格,提供了类SQL查询语句,底层可以转化为MapReduce去执行。
一、hive体系
1、用户接口
a) CLI command Line
b) Java JDBC/CDBC
c) WEB UI 浏览器
2、metastore
a) hive将元数据存储在数据库中,比如MySQL,Derby。Hive中的元数据包括表的名称,表的列和分区及其属性,表的数据所在的目录。
3、驱动器 Driver
包括:解析器、编译器、优化器、执行器。
4.、hive数据存储在HDFS,大部分的查询、计算等操作由MapReduce完成。
5、hive数据仓库与数据库的异同
(1).由于Hive采用了SQL的查询语言HQL,因此很容易将Hive理解为数据库。其实从结构上来看,Hive和数据库除了拥有类似的查询语言,再无类似之处。
(2)数据存储位置。 hdfs raw local fs
(3)数据格式。 Hive具有分隔符
(4)数据更新。hive读多写少。Hive中不支持对数据的改写和添加,所有的数据都是在加载的时候中确定好的。
INSERTINTO … VALUES添加数据,使用UPDATE … SET修改数据 不支持的
HDFS 一次写入多次读取
(5) 执行。hive通过MapReduce来实现的 而数据库通常有自己的执行引擎。
(6)执行延迟。由于没有索引,需要扫描整个表,因此延迟较高。另外一个导致Hive执行延迟高的因素是MapReduce框架
(7)可扩展性
(8)数据规模。
1、嵌入模式
2、本地模式
3、远程模式
这里不做过多赘述。
1、在Linux中安装MySQL
1.1、首先卸载自带的MySQL数据库,更换版本
# rpm -qa| grep mysql
# rpm -emysql-libs-5.1.71-1.el6.x86_64 --nodeps
1.2通过yum 安装MySQL
先将需要的MySQL版本上传到Linux中,在安装
# yum install -y mysql-server mysql mysql-devel
1.3、启动MySQL服务(mysqld)
#service mysqld start
1.4、设置为开机启动
#chkconfig --list | grep mysqld //查看是否为开机
#chkconfig mysqld on //设置开机启动
1.5、登陆mysql数据库
# mysql -uroot –p
1.6、设置或密码
方式一:
#/usr/bin/mysqladmin -u root password 'root123'
方式二:
SET PASSWORDFOR 'root'@'localhost' = PASSWORD('root123');
1.7、授权root的权限
mysql>grant all privileges on *.* to 'root'@'%' identified by 'root(数据库的密码)';
mysql>grant all privileges on *.* to 'root'@'hadoop0505(这是本主机主机名)' identified by 'root123';
all privileges:添加所有权限
第一个*:所有数据库
第二个*:所有表
第一个'root':代表root用户
%:代表其他的外部主机
'root123' :代表root用户密码
## 刷新权限(一定要记得)
flush privileges;
参考官网安装介绍:
https://cwiki.apache.org/confluence/display/Hive/GettingStarted
1.1解压hive的tar包
$ tar -zxf hive-0.13.1-bin.tar.gz -C ../modules/
2.创建/tmp和hive数据仓库在HDFS之上的目录
$ bin/hdfs dfs -mkdir -p/user/hive/warehouse
$ bin/hdfs dfs -mkdir /tmp //默认已经创建了
修改目录的权限(增加组用户的写权限)
bin/hdfs dfs -chmod g+w /user/hive/warehouse
bin/hdfs dfs -chmod g+w /tmp
3.${HIVE_HOME}/conf/重命名生成配置文件
因为里面的都是案例文件,我们可以复制并重命名他们来做我们自己的配置文件。
$ cp hive-env.sh.template hive-env.sh
$ cp hive-default.xml.template hive-site.xml
$cp hive-log4j.properties.templatehive-log4j.properties
配置好之后:
4.${HIVE_HOME}/conf/修改hive-env.sh
JAVA_HOME=/opt/modules/jdk1.7.0_67
HADOOP_HOME=/opt/modules/hadoop-2.5.0
exportHIVE_CONF_DIR=/opt/modules/apache-hive/conf
5、${HIVE_HOME}/conf/ 修改hive-site.xml
参考官网的介绍:
https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin
--JDBC连接的四要素:ConnectionURL DriverName UserName Password
将原来文件的第132.138.162.168行的文字复制并加入自己主机名等更改内容。
<!--132-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://[hostname]:3306/metastore?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBCmetastore</description>
</property>
<!--138-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBCmetastore</description>
</property>
<!--162-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastoredatabase</description>
</property>
<!--168-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root123</value>
<description>password to use against metastoredatabase</description>
</property>
6、拷贝jdbc驱动包到${HIVE_HOME}/lib
$ cpmysql-connector-java-5.1.34-bin.jar ../modules/apache-hive/lib/
7.更改文件
${HIVE_HOME}/conf/ 修改hive-log4j.properties
<!—在第20行-->
hive.log.dir=/opt/modules/hive-0.13/logs
这样单机模式的hive并且有自己需要版本的MySQL就配置成功了。
1、启动hive的条件
1.检查hadoop的相关进程
$ jps
26514SecondaryNameNode
27934 ResourceManager
28033 NodeManager
26232 NameNode
28590 Jps
26329 DataNode
2.启动进入Hive CLI
${HIVE_HOME}/bin存放的hive的启动命令
$ bin/hive
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。