zoukankan      html  css  js  c++  java
  • mysql 和 hive 和分布式zookeeper和HBASE分布式安装教程

    一,mysql

    安装mysql5.7完整教程
    1. yum -y install mysql-server
    直接执行语句后等待就好
    已安装:
    mysql-community-server.x86_64 0:5.7.23-1.el7

    作为依赖被安装:
    mysql-community-client.x86_64 0:5.7.23-1.el7 mysql-community-common.x86_64 0:5.7.23-1.el7 mysql-community-libs.x86_64 0:5.7.23-1.el7

    完毕!
    2.启动服务service mysqld start
    3.设置开机启动chkconfig mysqld on
    4.>mysql -u root -p
    Enter password: ********
    Welcome to the MySQL monitor. Commands end with ; or g.
    Your MySQL connection id is 12
    Server version: 5.7.18-log MySQL Community Server (GPL)

    Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

    mysql> use mysql;
    Database changed
    mysql> select User from user; #此处为查询用户命令
    +-----------+
    | User |
    +-----------+
    | ******* |
    | mysql.sys |
    | root |
    +-----------+
    3 rows in set (0.00 sec)

    mysql> update user set password=password("*******") where user="*******"; #修改密码报错
    ERROR 1054 (42S22): Unknown column 'password' in 'field list'
    mysql> update mysql.user set authentication_string=password('*******') where user='*******'; #修改密码成功
    Query OK, 1 row affected, 1 warning (0.00 sec)
    Rows matched: 1 Changed: 1 Warnings: 1

    mysql> flush privileges; #立即生效
    Query OK, 0 rows affected (0.00 sec)

    mysql> quit
    Bye

    n>mysql -u ******* -p #以该用户登录成功.
    Enter password: ********
    …………………………
    mysql>alter user user() identified by "123456";改一下密码这部必须进行

    二安装hive


    1:在Mysql中创建hive用户,并赋予足够的权限
    <span style="font-size:14px;">[master@master1 hive]$ mysql -uroot -p
    Enter password:
    ......此处省略部分日志......
    mysql> <u>create user 'hive' identified by 'hive';</u>
    Query OK, 0 rows affected (0.05 sec)

    mysql> <u>grant all privileges on *.* to 'hive' with grant option;</u>
    Query OK, 0 rows affected (0.00 sec)

    mysql> <u>flush privileges;</u>
    Query OK, 0 rows affected (0.00 sec)
    </span>
    2:测试hive能否正常连接Mysql,并创建hive数据库
    ?此时报错如下:ERROR 1045 (28000): Access denied for user 'hive'@'localhost' (using password: YES)

    ? ? ? ? ? ? ? ? ?解决办法:重新以root用户登录mysql,删除msyql数据库下user表中为空的记录

    <span style="font-size:14px;">mysql> delete from user where user is null;
    Query OK, 0 rows affected (0.00 sec)

    mysql> delete from user where user='';
    Query OK, 1 row affected (0.00 sec)

    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
    </span>

    以hive用户登录,创建hive数据库

    <span style="font-size:14px;">[master@master1 opt]$ mysql -uhive -p
    Enter password:
    ....省略....
    mysql> create database hive;
    Query OK, 1 row affected (0.00 sec)

    mysql> use hive;
    Database changed
    mysql> show tables;
    Empty set (0.00 sec)
    </span>

    3:解压缩hive到指定目录
    ? ? ? ? ? ? ? ? ?我这里使用的是/opt/ ?:sudo tar -zxvf /home/master/桌面/apache-hive-1.2.1-bin.tar.gz -C /opt/

    ? ? ? ? ? ? ? ? ?重命名为hive:sudo mv?apache-hive-1.2.1-bin hive

    4:下载Mysql驱动程序到 hive目录下的lib目录
    ? ? ? ? ? ? ? ? ??sudo cp /home/master/桌面/mysql-connector-java-5.1.39-bin.jar /opt/hive/lib/
    下载地址 https://downloads.mysql.com/archives/c-j/
    5:修改环境变量将hive加入到path
    ? ? ? ? ? ? ? ? ? sudo vim /etc/profile

    ? ? ? ? ? ? ? ? ??#hive
    ? ? ? ? ? ? ? ? ? export HIVE_HOME=/opt/hive
    ? ? ? ? ? ? ? ? ? export PATH=$PATH:$HIVE_HOME/bin

    ? ? ? ? ? ?6:修改hive-env.sh
    ? ? ? ? ? ? ? ??[master@master1 conf]$ sudo cp hive-env.sh.template hive-env.sh

    ? ? ? ? ? ?7:修改hive-site.xml
    在hive/conf 目录下有一个hive-default.xml-template,
    cp hive-default.xml-template hive-site.xml

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

    <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive</value>
    <description>password to use against metastore database</description>
    </property>
    8:启动hadoop,测试hive
    [master@master1 hadoop]$ sbin/start-all.sh
    报错1xception in thread "main" java.lang.RuntimeException: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x8
    at [row,col,system-id]: [3234,96,"file:/opt/soft/hive/conf/hive-site.xml"]
    把hive-site .xml 文件中3234行第96到98个字符删除
    报错2Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

    ? ? ? ? ? ? ? 原因:路径不对

    ? ? ? ? ? ? ? 解决办法:将含有system:java.io.tmpdir的配置项改为/opt/hive/iotmp (前提是你已经建立了这样一个文件夹)

     三zookeeper分布式安装

     1:部署说明
               ZK官网建议安装在至少3台机器上,故这里将ZK分别安装三台机器组成的集群中

         2:解压到指定目录/opt
              sudo tar -zxvf /home/master/桌面/zookeeper-3.4.8.tar.gz -C /opt/

              重命名:mv zookeeper-3.4.8/ zookeeper

         3:设置myid
               在dataDir指定的数据目录(/opt/zookeeper/data)下,创建文件myid,文件内容为一个正整数值,用来唯一标识当前机器,因此不同机器的数值不能相同,建议从1开始递增标识,以方便记忆和管理。
    myid中就一个数字 3
    例如第一台myid 里面填入1

         4:修改conf/zoo.cfg
               tickTime=2000

               dataDir=/opt/zookeeper/data
               clientPort=2181
               initLimit=5
               syncLimit=2
               server.1=master1:2888:3888 
               server.2=slave1:2888:3888
               server.3=slave2:2888:3888
               以上内容的配置,参照了ZooKeeper的官方文档:zookeeperStarted.html。server.X用来配置ZooKeeper集群中的各节点,并建议X的值和myid保持一致。
               端口2181用于监听客户端的连接,端口2888用于Leader监听Follower的连接,而3888则用于Leader选举。
               scp将zoo.cfg 复制到另外两台机器上
                        scp -r zookeeper/  slave1:/opt/ 
                        scp -r zookeeper/  slave2:/opt/ 
         5:启动zk
              每台机器上执行:[master@master1 zookeeper]$  sudo bin/zkServer.sh start

              我们可以使用       sudo bin/zkServer.sh status 查看状态

                                         sudo bin/zkServer.sh stop    停止服务

         6:遇到的问题
              [master@master1 zookeeper]$  sudo bin/zkServer.sh status
              ZooKeeper JMX enabled by default
              Using config: /opt/zookeeper/bin/../conf/zoo.cfg
              Error contacting service. It is probably not running.

              解决办法:

              查看 zookeeper.out 可知是权限问题

              在每台机器下给 data ,data/zookeeper_server.pid,zookeeper.out 777 权限即可

         7:注意事项
              由于zkServer必须三台都启动后才选择leader和follower,故刚开始会出现都是Error contacting service. It is probably not running.的情况
    检验的时候要把这三台都开启

    四。分布式安装HBASE

    1下载HBASE
    2网址http://mirrors.hust.edu.cn/apache/hbase/
    3.tar -zxvf hbase-1.1.12.tar.gz -C /usr/local/hbase

    4、配置hbase集群,要修改三个文件,首先上面的环境都准备好了
    注意:要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下
        cp hdfs-site.xml /usr/local/hbase/hbase-1.1.12/conf
        cp core-site.xml /usr/local/hbase/hbase-1.1.12/conf

        4.1修改hbase-env.sh
        export JAVA_HOME=/usr/local/java/jdk1.8.0_144
        //告诉hbase使用外部的zk
        export HBASE_MANAGES_ZK=false

        4.2 vim hbase-site.xml   

    <configuration>
    <!-- 指定hbase在HDFS上存储的路径 -->
    <property>
    <name>hbase.rootdir</name>
    <value>hdfs://mini1:9000/hbase</value>
    </property>
    <!-- 指定hbase是分布式的 -->
    <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    </property>
    <!-- 指定zk的地址,多个用“,”分割 -->
    <property>
    <name>hbase.zookeeper.quorum</name>
    <value>mini1:2181,mini2:2181,mini3:2181</value>
    </property>
    <property>
    <name>hbase.master.info.port</name>
    <value>60010</value>
    </property>
    </configuration>
     

        4.3 vim regionservers
            mini1
            mini2
            mini3

        4.4拷贝hbase到其他节点
            scp -r /usr/local/hbase mini2:/usr/local/
            scp -r /usr/local/hbase mini3:/usr/local/

    5.将配置好的HBase拷贝到每一个节点并同步时间。
          在每台机子上输入sudo ntpdate time.nist.gov

    6.配置环境变量
        export HBASE_HOME=/usr/local/hbase/hbase-1.1.12
        export PATH=$HBASE_HOME/bin:$PATH
    7启动HBASE
    HBASE文件夹下bin/start-hbase.sh
    8、通过浏览器访问hbase管理页面
    主机名:60010

    9、为保证集群的可靠性,要启动多个HMaster
    hbase-daemon.sh start master

    文学使思想充满血与肉,他比科学和哲学更能给予思想以巨大的明确性和说明性。
  • 相关阅读:
    设置数据库某字段为当前时间
    HashMap源码解析(只为吊打面试官)
    SRAM 静态内存芯片 IS62WV51216 的使用 STM32F407ZGT6
    手机ARM种类,STM32中的ARM核又是什么东东?
    运算放大器 常用经典电路 计算书
    SMT 生产线设备 (PCBA)
    横机 电控设计
    ISO26262 标准
    质量管理体系(16949)的五大工具
    IATF16949和TS16949有什么不同?
  • 原文地址:https://www.cnblogs.com/zpsblog/p/9785408.html
Copyright © 2011-2022 走看看