• 配置hive环境以及mysql配置后必须做


    1、先在主节点上安装阿里云配置(看别的文档)

    2、把需要的两个jar包加入进来(放到hadoop用户目录下面即可即/home/hadoop/

    mysql-connector-java-5.1.47.tar.gz

    apache-hive-2.3.4-bin.tar.gz

    3、解压压缩包(在hadoop用户主节点下运行)

    下载地址

    然后下载hive文件

    http://mirror.bit.edu.cn/apache/hive/hive-2.3.4/

    或者这个

     http://archive.apache.org/dist/hive/hive-2.3.4/ 

    MySQL Java 连接器添加到 $HIVE_HOME/lib 目录下(后续创建)。我安装时使用的是 mysql-connector-java- 5.1.47.jar。

    在mysql-connector-java-5.1.47.tar.gz解压后的下面

    https://dev.mysql.com/downloads/connector/j/

    http://ftp.ntu.edu.tw/MySQL/Downloads/Connector-J/

    运行程序

    tar -xvf apache-hive-2.3.4-bin.tar.gz -C hadoop_home/

    tar -xvf mysql-connector-java-5.1.47.tar.gz

    4、配置环境变量

    vi ~/.profile

    export HIVE_HOME=/home/hadoop/hadoop_home/apache-hive-2.3.4-bin

    export PATH=$PATH:$HIVE_HOME/bin

    source ~/.profile

    5、在apache-hive-2.3.4-bin/conf

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

    cp hive-default.xml.template hive-site.xml

    cp hive-log4j2.properties.template hive-log4j2.properties

    cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

    6、修改hive-env.sh

    因为 Hive 使用了 Hadoop, 需要在 hive-env.sh 文件中指定 Hadoop 安装路径:

    export JAVA_HOME=/home/hadoop/hadoop_home/jdk1.8.0_181    ##Java路径

    export HADOOP_HOME=/home/hadoop/hadoop_home   ##Hadoop安装路径

    export HIVE_HOME=/home/hadoop/hadoop_home/apache-hive-2.3.4-bin    ##Hive安装路径

    export HIVE_CONF_DIR=/home/hadoop/hadoop_home/apache-hive-2.3.4-bin/conf    ##Hive配置文件路径

    7、然后apt-get install mysql-server

    若是没有设置密码

    根据提示安装就可以了,不过安装完成后没有密码,需要重置密码

    4.重置mysql密码

    $ mysql -u root

    1

    登录时有可能报这样的错:

    ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)

    1

    原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:

    $ sudo chown -R root:root /var/lib/mysql

    1

    5.重启mysql服务

    $ service mysqld restart   或者/etc/init.d/mysql restart

    1

    6.接下来登录重置

    $ mysql -u root  //直接回车进入mysql控制台

    mysql > use mysql;

    mysql > update user set password=password('123456') where user='root';

    mysql > exit;

    进入以下界面

    cd   /etc/mysql/mysql.conf.d

    然后

    vi vi mysqld.cnf

    把最下面的bind-address  =127.0.0.1

    注释掉就好(后面sqoop用到)

    8设置远程连接

    设置远程连接

    mysql> CREATE DATABASE hive;创建数据库

    mysql> USE hive;进入数据库

    mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';创建hive用户,并且密码为hive,允许本地登录

    mysql> GRANT ALL ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive';把hive数据库的内容到hive用户下,即配置权限

    mysql> GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';

    mysql> FLUSH PRIVILEGES;

    mysql> quit;

    在root用户下执行

    service mysqld restart   或者/etc/init.d/mysql restart

    重启服务

    9创建HDFS目录

    在 Hive 中创建表之前需要创建以下 HDFS 目录并给它们赋相应的权限。

     先启动集群  :start-all.sh

    hdfs dfs -mkdir -p /user/hive/warehouse

    hdfs dfs -mkdir -p /user/hive/tmp

    hdfs dfs -mkdir -p /user/hive/log

    hdfs dfs -chmod g+w /user/hive/warehouse

    hdfs dfs -chmod g+w /user/hive/tmp

    hadoop fs -chmod -R 777 /user/hive/tmp

    hdfs dfs -chmod g+w /user/hive/log

    10创建数据库和用户

    假定你已经安装好 MySQL。下面创建一个 hive 数据库用来存储 Hive 元数据,且数据库访问的用户名和密码都为 hive。

    mysql> CREATE DATABASE hive;

    mysql> USE hive;

    mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';

    mysql> GRANT ALL ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive';

    mysql> GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';

    mysql> FLUSH PRIVILEGES;

    mysql> quit;

    11修改hive-site.xml 

    然后在配置文件hive-site.xml中,把所有的${system:java.io.tmpdir} 都替换为/usr/local/hive/tmp (有可能需要转义字符)

    把所有的${system:user.name}替换为${user.name}

    直接修改为下面这样也可以,注意用户名和密码,对应上一步中mysql创建的用户名和密码

    依次查找下面的修改。

     <property>

        <name>hive.exec.scratchdir</name>

        <value>/user/hive/tmp</value>

    </property>

    <property>

        <name>hive.metastore.warehouse.dir</name>

        <value>/user/hive/warehouse</value>

    </property>

    <property>

        <name>hive.querylog.location</name>

        <value>/user/hive/log</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionURL</name>

        <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>

      </property>

      <property>

        <name>javax.jdo.option.ConnectionDriverName</name>

        <value>com.mysql.jdbc.Driver</value>

      </property>

      <property>

        <name>javax.jdo.option.ConnectionUserName</name>

        <value>hive</value>

      </property>

      <property>

        <name>javax.jdo.option.ConnectionPassword</name>

        <value>hive</value>

    </property>

    12.创建/usr/local/hive/tmp文件夹

    切换到root用户执行

    mkdir -p /usr/local/hive/tmp

    chown -R hadoop:hadoop /usr/local/hive/tmp

    chown -R hadoop:hadoop /user/local/hive/tmp 设置权限(root权限下面)

    4.运行Hive

    在命令行运行 hive 命令时必须保证以下两点:

    HDFS 已经启动。可以使用 start-dfs.sh 脚本来启动 HDFS。

    运行 schematool 命令来执行初始化操作。

    schematool -dbType mysql -initSchema

    注意一定要英文下的杠

    如果还是失败,一、试一下远成连接能否成功,不成功重新配置远程然后重启数据库二、检查配置或者命令的格式问题三、检查数据库hive下是否会莫名导入很多乱七八糟的包,删除然后重建

    然后执行

    hive

    在最后补充

    1)在 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>


    2)重新启动 hive,对比配置前后差异

  • 相关阅读:
    rt_list_entry() 函数
    替换空格
    跳台阶
    斐波那契数列
    基于5221码的同步十进制加法计数器
    强连通分量+Tarjia+缩点
    次小生成树
    差分约束
    P1547 Out of Hay
    P1197 [JSOI2008]星球大战
  • 原文地址:https://www.cnblogs.com/pursue339/p/10481774.html
Copyright © 2020-2023  润新知