
Hive是什么Hive是由Facebook开源基于Hadoop的一个数据仓库工具可以将结构化的数据文件映射为一张表并提供类SQL查询功能。本质Hive是一个Hadoop客户端用于将HQLHive SQL转化成MapReduce程序。Hive架构原理Hive的数据的写入写出都在HDFS,执行过程就是MR程序的执行通过yarn调度器调度提供CLI和JDBC/ODBC客户端。Hive的优缺点1优点1操作接口采用类SQL语法提供快速开发的能力简单、容易上手。2避免了去写MapReduce减少开发人员的学习成本。2缺点1Hive的执行延迟比较高因此Hive常用于数据分析对实时性要求不高的场合。2Hive分析的数据是存储在HDFS上HDFS不支持随机写只支持追加写所以在Hive中不能高效update和delete。数据库和数据仓库的区别数据库Database(Oracle, Mysql, PostgreSQL)主要用于事务处理。数据仓库Datawarehouse(Amazon Redshift, Hive)主要用于数据分析。用途上的不同决定了这两种架构的特点不同。数据库(Database)的特点是:相对复杂的表格结构存储结构相对紧致少冗余数据。读和写都有优化。相对简单的read/write query单次作用于相对的少量数据。数据仓库(Datawarehouse)的特点是:相对简单的(Denormalized)表格结构存储结构相对松散多冗余数据。一般只是读优化。相对复杂的read query单次作用于相对大量的数据历史数据)。Linux中安装MySQL1查看系统之前是否已安装MySQLrpm -qa | grep mysql有的话卸载rpm -e mysql-libs-5.1.66-2.el6_3.i686 --nodeps2安装Mysqlyum install mysql mysql-server mysql-devel3安装完成后修改/etc/my.cnf文件添加内容如下[mysql]default-character-setutf8[mysqld]default-character-setutf8lower_case_table_names14启动服务验证是否已启动service mysqld start5停掉服务service mysql stop设置MySql用户mysqladmin -u root password 1236登录mysql -uroot –p7进行重置密码可做可不做set passwordpassword(123456);查看用户select user,host from user;可不用查看--设置root账户的host地址修改了才可以远程连接mysqlgrant all privileges on *.* to root% identified by rootwith grant option ;8刷新flush privileges安装Hive第一步确保Mysql已经安装成功Mysql安装详见第4点第二步复制Mysql驱动jar包到hive的lib路径下第三步修改hive-env.sh文件添加如下内容export HIVE_CONF_DIR/usr/local/hive/hive-0.13.1-cdh5.3.6/confexport JAVA_HOME/usr/local/java/jdk1.8.0_161export HIVE_HOME/usr/local/hive/hive-0.13.1-cdh5.3.6export HADOOP_HOME/usr/local/hadoop/hadoop-2.5.1第四步修改hive-site.xml文件propertynamejavax.jdo.option.ConnectionURL/namevaluejdbc:mysql://192.168.100.110:3306/hive?createDatabaseIfNotExisttrue/value/propertypropertynamejavax.jdo.option.ConnectionDriverName/namevaluecom.mysql.jdbc.Driver/value/propertypropertynamejavax.jdo.option.ConnectionUserName/namevalueroot/value/propertypropertynamejavax.jdo.option.ConnectionPassword/namevalue123/value/propertypropertynamehive.querylog.location/namevalue/usr/local/hive/hive-0.13.1-cdh5.3.6/hive_tmp/value/propertypropertynamehive.downloaded.resources.dir/namevalue/usr/local/hive/hive-0.13.1-cdh5.3.6/hive_tmp/value/propertypropertynamehive.exec.local.scratchdir/namevalue/usr/local/hive/hive-0.13.1-cdh5.3.6/hive_tmp/value/propertypropertynamedatanucleus.schema.autoCreateAll/namevaluetrue/value/property第五步分发hive文件至各个节点例scp -r /usr/local/hive/hive-0.13.1-cdh5.3.6 slave1:/usr/local/hive进入Hive命令行确保hadoop集群启动且节点正常的前提下直接在Linux的命令行输入hive即可。