配置Hive

首先明确几点:

  1. Hive是数据仓库(DW),Hbase是数据库(DB)
  2. Hive是基于hdfs的,数据存储为hdfs上的文本内容(类似表的二维结构),而不是RDBMS的一张张二维数据表。但是Hive屏蔽了这些,对用户而言,就可以看做是一张张的二维表
  3. Hive只需要安装在集群中的任何一台机器上即可,不需要所有机器都安装
  4. Hive是支持JDBC的,尽管不是支持JDBC的所有特性,但是大多数是可以正常使用的
  5. Hive不是数据库,不要用来做行级别的事务处理,Hive是做数据仓库的,用来批处理,适用于大规模数据
  6. Hive其实只是提供了一个把SQL语句翻译为MapReduce程序的引擎而已,真正执行的还是MapReduce程序
  7. Hive的SQL语句和MySQL的SQL语句很相似,可以参照
  8. Hive可以使用远程的mysql存储元数据,即metastore

明确了所有的这些之后,我们进行Hive安装。 

这里,我是将mysql安装在master上,hive也安装在master上。

1.安装MySQL

2.配置MySQL数据库允许Hive接入

3.配置hive

3.1 新建hive数据库,用来保存hive的元数据

mysql> creat database hive;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'creat database hive' at line 1
mysql> create database hive;
Query OK, 1 row affected (0.00 sec)

3.2  将hive数据库下的所有表的所有权限赋给hadoop用户,并配置mysql为hive-site.xml中的连接密码,然后

刷新系统权限关系表

mysql> use hive;
Database changed
mysql> CREATE USER  'hadoop'@'%'  IDENTIFIED BY 'mysql';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON  *.* TO 'hadoop'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql>  flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password from mysql.user;
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
mysql> select user,host from mysql.user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| hadoop        | %         |
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
+---------------+-----------+
4 rows in set (0.00 sec)

    mysql> CREATE USER  'hadoop'@'%'  IDENTIFIED BY 'mysql';

     mysql> GRANT ALL PRIVILEGES ON  *.* TO 'hadoop'@'%' WITH GRANT OPTION;

     mysql> flush privileges;

     

3.3 修改hive-site.xml,设置MySQL为默认的meta数据库

要找到文件中原有的配置删除掉

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master: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>hadoop</value>
<description>username to use against metastore database</description>
</property>

<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysql</value>

     

3.4 将mysql-connector-java-***.jar,复制到hive安装目录下的lib下

      需要下载mysql的jdbc<mysql-connector-java-5.1.28.jar>,然后将下载后的jdbc放到hive安装包的lib目录下

      下载链接是:http://dev.mysql.com/downloads/connector/j/ 

      也可以从我的云盘下载 链接是:https://pan.baidu.com/s/1i5mTBEH 密码是:xbf

2.3 修改配置文件

     解压安装文件到指定的的文件夹 /opt/hive

      tar -zxf apache-hive-2.1.0-bin.tar.gz -C  opt/hive

2.3.1  设置环境变量

          vi /etc/profile:

          

2.3.2  修改hive-site.xml文件

          

          

          

2.3.3 修改hive-env.sh

         cp hive-env.sh.template  hive-env.sh

         vi  hive-env.sh

         HADOOP_HOME=/root/app/hadoop-2.7.5
         export HIVE_CONF_DIR=/root/app/hadoop-2.7.5/hive/conf
 

<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>mysql
<value>jdbc:mysql://192.168.1.111:3306/hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>

scp -r hive/ slave1:/root/app/hadoop-2.7.5/

         

2.4 运行hive

      运行hive之前首先要确保meta store服务已经启动,

      nohup hive --service metastore > metastore.log 2>&1 &

      

     如果需要用到远程客户端(比如 Tableau)连接到hive数据库,还需要启动hive service

     nohup hive --service hiveserver2 > hiveserver2.log 2>&1 &

     

    然后由于配置过环境变量,可以直接在命令行中输入hive

    

2.5 测试hive是否可以正确使用

2.5.1 创建测试表dep

     

2.5.2 通过Mysql查看创建的表

      

2.5.3 通过UI页面查看创建的数据位

        访问 xxx.xxx.xxx.xxx:50070

        

  1. <property>  
  2.  <name>hbase.rootdir</name>  
  3. <!-- hbase存放数据目录 -->  
  4.  <value>hdfs://master:9000/hbase/hbase_db</value>  
  5. <!-- 端口要和Hadoop的fs.defaultFS端口一致-->  
  6. </property>  
  7. <property>  
  8. <name>hbase.cluster.distributed</name>  
  9.  <!-- 是否分布式部署 -->  
  10.  <value>true</value>  
  11.  </property>  
  12. <property>  
  13. <name>hbase.master</name>  
  14. <value>master:60000</value>  
  15. </property>  
  16. <property>  
  17. <name>hbase.zookeeper.quorum</name>  
  18. <!-- list of  zookooper -->  
  19. <value>master,base0186,base0185,base0184,base0183</value>  
  20. </property>      
  21. <property>  
  22. <!--zookooper配置、日志等的存储位置 -->  
  23. <name>hbase.zookeeper.property.dataDir</name>  
  24. <value>/opt/hbase/zookeeper</value>  
  25. </property>  

当报错信息里有以下路径,解决方法,自己新建目录替换hive-site.sh中的以下路径 

${system:java.io.tmpdir}

${system:user.name}

/root/app/hadoop-2.7.5/hive/iotmp/user

猜你喜欢

转载自blog.csdn.net/Source_00/article/details/79901922