zoukankan      html  css  js  c++  java
  • Linux下的Mysql安装 & 配置

    Hive的数据,是存在HDFS里的。此外,hive有哪些数据库,每个数据库有哪些表,这样的信息称之为hive的元数据信息。

    元数据信息不存在HDFS里。而是存在关系型数据库里,hive默认用的是derby数据库来存储。即hive工作时,除了要依赖Hadoop,还要依赖关系型数据库。

    注意:虽然我们能通过HDFS查看到hive有哪些数据库,有哪些表,以及表里的数据,但是,这不是元数据信息。HDFS最主要的是存储hive的数据信息。

    之前遇到的问题是:当退出后,切换到不同的目录来进入hive,发现库和表没有了,是因为,第一次从bin目录进入hive,会在bin目录下创建一个metastore.db目录,在这个目录下,创建一个derby.log文件来存储元数据信息。这个元数据信息是基于bin目录来创建的。而切换到其他目录进入hive时,查询时不是基于bin目录来查询的,所有查不到元数据信息,导致查不到。

    这个问题是derby数据库本身的问题,所以,我们不能用derby数据库,此外,用derby数据库,也不支持并发,比如一个人在操作hive,如果此时有其他人想用hive,用不了。

    所以我们选择用mysql数据库。目前hive支持derby和mysql两种数据库。

    安装步骤

    1.下载mysql安装包

    2.确认当前虚拟机之前是否有安装过mysql

    执行:rpm -qa  查看linux安装过的所有rpm包

    执行:rpm -qa | grep mysql 

    如果出现下图,证明已经安装了mysql,需要删除

    3.删除mysql

    执行:rpm -ev --nodeps mysql-libs-5.1.71-1.el6.x86_64

    此时,再执行:rpm -qa | grep mysql  发现没有相关信息了

    4.新增mysql用户组,并创建mysql用户

    groupadd mysql

    useradd -r -g mysql mysql

    5.安装mysql server rpm包和client包

    执行:rpm -ivh MySQL-server-5.6.29-1.linux_glibc2.5.x86_64.rpm 

              rpm -ivh MySQL-client-5.6.29-1.linux_glibc2.5.x86_64.rpm

    6.安装后,mysql文件所在的目录

    Directory        Contents of Directory
    /usr/bin        Client programs and scripts
    /usr/sbin        The mysqld server
    /var/lib/mysql        Log files, databases
    /usr/share/info        MySQL manual in Info format
    /usr/share/man        Unix manual pages
    /usr/include/mysql        Include (header) files
    /usr/lib/mysql        Libraries
    /usr/share/mysql        Miscellaneous support files, including error messages, character set files, sample configuration files, SQL for database installation
    /usr/share/sql-bench        Benchmarks

    7.修改my.cnf,默认在/usr/my.cnf

    执行:vim /usr/my.cnf

    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysqld]
    character_set_server=utf8

    8.将mysqld加入系统服务,并随机启动

    执行:cp /usr/share/mysql/mysql.server   /etc/init.d/mysqld

    说明:/etc/init.d 是linux的一个特殊目录,放在这个目录的命令会随linux开机而启动。

    9.启动mysqld

    执行:service mysqld start

    10.查看初始生成的密码

    执行:vim /root/.mysql_secret 。这个密码随机生成的

    11.修改初始密码

    第一次安装完mysql后,需要指定登录密码

    执行:mysqladmin -u root -p  password root  此时,提示要输入初始生成的密码,拷贝过来即可

    10.进入mysql数据库
    执行:mysql -u root -p

    输入:root进入

    执行:s

    查看mysql数据配置信息

    Hive的mysql安装配置

    实现步骤:

    1.删除hdfs中的/user/hive

    执行:hadoop fs -rmr /user/hive

    2.将mysql驱动包上传到hive安装目录的lib目录下

    3.编辑新的配置文件,名字为:hive-site.xml

    4.配置相关信息:

    <configuration>
     
    <property>
     <name>javax.jdo.option.ConnectionURL</name>
     <value>jdbc:mysql://hadoop01:3306/hive?createDatabaseIfNotExist=true</value>
    </property>
     
    <property>
     <name>javax.jdo.option.ConnectionDriverName</name>
     <value>com.mysql.jdbc.Driver</value>
    </property>
     
    <property>
     <name>javax.jdo.option.ConnectionUserName</name> 
    <value>root</value> 
    </property>
    <property>
     <name>javax.jdo.option.ConnectionPassword</name>
     <value>root</value>
    </property>
    </configuration>

    5.进入hive ,进入bin目录,执行:sh  hive

    如果出现:

    Access denied for user 'root'@'hadoop01' (using password: YES)这个错误,指的是当前用户操作mysql数据库的权限不够。

    6.进入到mysql数据库,进行权限分配

    执行:

    grant all privileges on *.* to 'root'@'hadoop01' identified by 'root' with grant option;

    grant all on *.* to 'root'@'%' identified by 'root';

    然后执行:

    flush privileges;

    7.如果不事先在mysql里创建hive数据库,在进入hive时,mysql会自动创建hive数据库。但是注意,因为我们之前配置过mysql的字符集为utf-8,所以这个自动创建的hive数据库的字符集是utf-8的。

    但是hive要求存储元数据的字符集必须是iso8859-1。如果不是的话,hive会在创建表的时候报错(先是卡一会,然后报错)。

    解决办法:在mysql数据里,手动创建hive数据库,并指定字符集为iso8859-1;

    进入mysql数据库,

    然后执行:create database hive character set latin1;

    8.以上步骤都做完后,再次进入mysql的hive数据,发现有如下的表:

    9.可以通过navicat来连接数据库。

    10.可以通过DBS 、TBLS、COLUMNS_V2这三张表来查看元数据信息。

    DBS 存放的数据库的元数据信息

    TBLS存放的tables表信息

    COLUMNS表存放的是列字段信息

    此外,可以通过查看SDS表来查询HDFS里的位置信息

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    git this exceeds GitHub's file size limit of 100.00 MB
    使用vue-cli创建vue工程
    【转】Visual Studio Code必备插件
    linux安装openssl
    Centos7离线安装mysql8
    使用nmon来按频率采集数据
    Mac下编译android4.0.4遇到的问题
    32位ubuntu16.4编译android4.1.1
    vmvare安装vmtools菜单灰色
    Substrate 使用
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/10150713.html
Copyright © 2011-2022 走看看