2)Hive(安装配置)

Hive安装相关地址
Hive安装部署
  • Hive的安装及配置:

    • 解压apache-hive-1.2.1-bin.tar.gz到/opt/module/目录下面并修改名称为hive:
      tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/
      mv apache-hive-1.2.1-bin/ hive
    • 修改/opt/module/hive/conf目录下的hive-env.sh.template名称为hive-env.sh:
      mv hive-env.sh.template hive-env.sh
    • 配置hive-env.sh文件:
      • 配置HADOOP_HOME路径:
        export HADOOP_HOME=/opt/module/hadoop-2.7.2
      • 配置HIVE_CONF_DIR路径:
        export HIVE_CONF_DIR=/opt/module/hive/conf
  • Hadoop集群配置:

    • 必须启动hdfs和yarn:
      start-dfs.sh
      start-yarn.sh
    • 在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改他们的同组权限可写
      hadoop fs -mkdir /tmp
      hadoop fs -mkdir -p /user/hive/warehouse
      hadoop fs -chmod g+w /tmp
      hadoop fs -chmod g+w /user/hive/warehouse
  • Hive基本操作:

    • 启动hive
      bin/hive
    • 查看数据库
      hive> show databases;
    • 打开默认数据库
      hive> use default;
    • 显示default数据库中的表
      hive> show tables;
    • 创建一张表
      hive> create table student(id int,name string);
    • 查看表的结构
      hive> desc student;
    • 向表中插入数据
      hive> insert into student values(1000,"ss");
    • 查询表中数据
      hive> select * from student;
    • 退出hive
      hive> quit;
安装MySQL
  • 安装包准备:

    • 查看mysql是否安装,如果安装了,卸载mysql:
      rpm -qa|grep mysql
      rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
    • 解压mysql-libs.zip文件到当前目录:
      unzip mysql-libs.zip
      ls :
      mysql-libs.zip mysql-libs
    • 进入到mysql-libs文件夹下 ls:
      -rw-r--r--. 1 root root 18509960 3月 26 2015 MySQL-client-5.6.24-1.el6.x86_64.rpm
      -rw-r--r--. 1 root root 3575135 12月 1 2013 mysql-connector-java-5.1.27.tar.gz
      -rw-r--r--. 1 root root 55782196 3月 26 2015 MySQL-server-5.6.24-1.el6.x86_64.rpm
  • 安装MySql服务器:

    • 安装MySql服务器:
      rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
    • 查看产生的随机密码:
      cat /root/.mysql_secret
    • 查看mysql状态:
      service mysql status
    • 启动mysql:
      service mysql start
  • 安装MySql客户端:

    • 安装mysql客户端:
      rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
    • 连接mysql:
      mysql -uroot -pOEXaQuS8IWkG19Xs
    • 修改密码:
      mysql> SET PASSWORD=PASSWORD('000000');
    • 退出MySQL:
      mysql>exit
  • MySql中user表中主机配置:
    配置只要是root用户+密码,在任何主机上都能登录MySQL数据库

    • 进入mysql
      mysql -uroot -p000000
    • 显示数据库
      mysql> show databases;
    • 使用mysql数据库
      mysql> use mysql;
    • 展示mysql数据库中的所有表
      mysql> show tables;
    • 展示user表的结构
      mysql> desc user;
    • 查询user表
      mysql> select User, Host, Password from user;
    • 修改user表,把Host表内容修改为%
      mysql> update user set host='%' where host='localhost';
    • 删除root用户的其他host
      mysql> delete from user where Host='hadoop102';
      mysql> delete from user where Host='127.0.0.1';
      mysql> delete from user where Host='::1';
    • 刷新
      mysql> flush privileges;
    • 退出
      mysql> quit;
Hive元数据配置到MySql
  • 拷贝驱动
    • 在/opt/software/mysql-libs目录下解压mysql-connector-java-5.1.27.tar.gz驱动包
      tar -zxvf mysql-connector-java-5.1.27.tar.gz
    • 拷贝/opt/software/mysql-libs/mysql-connector-java-5.1.27目录下的mysql-connector-java-5.1.27-bin.jar到/opt/module/hive/lib/
      cp mysql-connector-java-5.1.27-bin.jar /opt/module/hive/lib/
  • 配置Metastore到MySQL
    • 在/opt/module/hive/conf目录下创建一个hive-site.xml
    • 根据官方文档配置参数,拷贝数据到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://hadoop102:3306/metastore?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>000000</value>
    <description>password to use against metastore database</description>
   </property>

</configuration>

配置完毕后,如果启动hive异常,可以重新启动虚拟机。(重启后,别忘了启动hadoop集群)
  • 多窗口启动Hive测试
    • 启动mysql
      mysql -uroot -p000000
    • 再次打开多个窗口,分别启动hive
      bin/hive
    • 启动hive后,回到MySQL窗口查看数据库,显示增加了metastore数据库
 mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| metastore          |
| mysql             |
| performance_schema |
| test               |
+--------------------+
HiveJDBC访问
  • 启动hiveserver2服务
    bin/hiveserver2

  • 启动beeline
    bin/beeline

  • 连接hiveserver2

beeline> !connect jdbc:hive2://hadoop102:10000(回车)
Connecting to jdbc:hive2://hadoop102:10000
Enter username for jdbc:hive2://hadoop102:10000: atguigu(回车)
Enter password for jdbc:hive2://hadoop102:10000: (直接回车)
Connected to: Apache Hive (version 1.2.1)
Driver: Hive JDBC (version 1.2.1)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://hadoop102:10000> show databases;
+----------------+--+
| database_name  |
+----------------+--+
| default        |
| hive_db2       |
+----------------+--+
Hive常用交互命令
[zy@hd101 hive]$ hive -help
usage: hive
 -d,--define <key=value>          Variable subsitution to apply to hive
                                  commands. e.g. -d A=B or --define A=B
    --database <databasename>     Specify the database to use
 -e <quoted-query-string>         SQL from command line
 -f <filename>                    SQL from files
 -H,--help                        Print help information
    --hiveconf <property=value>   Use value for given property
    --hivevar <key=value>         Variable subsitution to apply to hive
                                  commands. e.g. --hivevar A=B
 -i <filename>                    Initialization SQL file
 -S,--silent                      Silent mode in interactive shell
 -v,--verbose                     Verbose mode (echo executed SQL to the console)
  • “-e”不进入hive的交互窗口执行sql语句
    hive -e "select id from student;"
  • “-f”执行脚本中sql语句
    • 在/opt/module/datas目录下创建hivef.sql文件
      touch hivef.sql
      文件中写入正确的sql语句
      select *from student;
    • 执行文件中的sql语句
      hive -f /opt/module/datas/hivef.sql
    • 执行文件中的sql语句并将结果写入文件中
      hive -f /opt/module/datas/hivef.sql > /opt/module/datas/hive_result.txt
Hive其他命令操作
  • 在hive cli命令窗口中如何查看hdfs文件系统
    hive(default)> dfs -ls /;
  • 在hive cli命令窗口中如何查看本地文件系统
    hive(default)>! ls /opt/module/datas;
  • 查看在hive中输入的所有历史命令
    1)进入到当前用户的根目录/root或/home/zy
    2)查看. hivehistory文件
    cat .hivehistory
Hive常见属性配置
  • Hive数据仓库位置配置

    • Default数据仓库的最原始位置是在hdfs上的:/user/hive/warehouse路径下

    • 在仓库目录下,没有对默认的数据库default创建文件夹。如果某张表属于default数据库,直接在数据仓库目录下创建一个文件夹。

    • 修改default数据仓库原始位置(将hive-default.xml.template如下配置信息拷贝到hive-site.xml文件中)

      <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
        <description>location of default database for the warehouse</description>
      </property>
      

      配置同组用户有执行权限:
      hdfs dfs -chmod g+w /user/hive/warehouse

  • 查询后信息显示配置

    • 在hive-site.xml文件中添加如下配置信息,就可以实现显示当前数据库,以及查询表的头信息配置。

      <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
      </property>
      <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
      </property>
    • 重新启动hive,便可以对比配置前后差异

  • Hive运行日志信息配置

    • Hive的log默认存放在/tmp/zy/hive.log目录下(当前用户名下)
    • 修改hive的log存放日志到/opt/module/hive/logs
      • 修改/opt/module/hive/conf/hive-log4j.properties.template文件名称为hive- log4j.properties
      • 在hive-log4j.properties文件中修改log存放位置:
        hive.log.dir=/opt/module/hive/logs
  • 参数配置方式

    • 查看当前所有的配置信息: hive>set;

    • 参数的配置三种方式

      1. 配置文件方式:
        ①默认配置文件:hive-default.xml
        ②用户自定义配置文件:hive-site.xml
        ③注意:用户自定义配置会覆盖默认配置,另外,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hive的配置会覆盖Hadoop的配置。配置文件的设定对本机启动的所有Hive进程都有效

      2. 命令行参数方式:
        ①启动Hive时,可以在命令行添加-hiveconf param=value来设定参数:
        hive -hiveconf mapred.reduce.tasks=10;//注意:仅对本次hive启动有效
        ②查看参数设置:hive (default)> set mapred.reduce.tasks;

      3. 参数声明方式 :
        ①可以在HQL中使用SET关键字设定参数:
        hive (default)> set mapred.reduce.tasks=100;//注意:仅对本次hive启动有效
        ②查看参数设置:hive (default)> set mapred.reduce.tasks;

    • 上述三种设定方式的优先级依次递增。即配置文件<命令行参数<参数声明。注意某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值