zoukankan      html  css  js  c++  java
  • 完全式分布系统

    修改system eth0

     参考资料:https://blog.51cto.com/12629984/1902969
        1.删除原来eth0的配置信息,将eth1行的eth1改为eth0
         vim /etc/udev/rules.d/70-persistent-net.rules
        2.这个时候重启network服务,显示MAC地址与预想地址不符
        service network restart
        会有一行失败
        3.最简单的办法直接删除记录的MAC地址
        vim /etc/sysconfig/network-scripts/ifcfg-eth0
        删除 HWADDR=00:11:eg:33:12:df
        4.再重启network服务查看是否OK
        service network restart



    修改主机名    vi /etc/sysconfig/network   改 HOSTNAME=主机名
             vi/etc/hosts    添加   主节点和子节点
    配置静态IP地址  vi/etc/sysconfig/network-scripts/ifcfg-eth0
                   文件修改为: ONBOOT=yes
                               BOOTPROTO=static
                               IPADDR=192.168.56.2
                               NETMASK=255.255.255.0
                               GATEWAY=192.168.56.1
                               DNS1=192.168.56.1
         关闭防火墙  service iptables stop
                     永久关闭防火墙  chkconfig iptables off
         删除原有JDK     rpm -e --nodeps

         检查SSH是否安装 rpm -qa | grep rsync
               安装SSH协议 yum install ssh     yum install rsync
               SSH是否安装成功  rpm -qa | grep openssh  在执行  rpm -qa | grep rsync
    生成SSH公钥   ssh-keygen -t rsa   直接回车
                                ssh-copy-id -i ~/.ssh/id_rsa.pub root@主机名

    环境变量   vi /etc/profile
        export JAVA_HOME=/root/app/jdk1.8.0_161
        export PATH=$PATH:$JAVA_HOME/bin

        export HADOOP_HOME=/root/app/hadoop-2.6.0-cdh5.7.0
        export PATH=$PATH:$HADOOP_HOME/bin

        export HBASE_HOME=/root/app/hbase-1.2.0-cdh5.7.0
        export PATH=$PATH:$HBASE_HOME/bin

        export HIVE_HOME=/root/app/hive-1.1.0-cdh5.7.0
        export PATH=$PATH:$HIVE_HOME/bin

        export SQOOP_HOME=/root/app/sqoop-1.4.6-cdh5.7.0
        export PATH=$PATH:$SQOOP_HOME/bin
    配置hadoop
        1. hadoop-env.sh
            export JAVA_HOME=/root/app/jdk1.8.0_161
            export HADOOP_HOME=/root/app/hadoop-2.6.0-cdh5.7.0
        2.core-site.xml
               <property>
                            <name>fs.default.name</name>
                               <value>hdfs://(namenode的主机名):9000</value>
                    </property>
              #可写可不写
               <property>
                                <name>hadoop.tmp.dir</name>
                                <value>/opt/hdfs/tmp</value>
                           </property>
        3.hdfs-site.xml
               <property>
                          <name>dfs.replication</name>
                            <value>3</value>
                   </property>
                    <property>
                               <name>dfs.name.dir</name>
                               <value>/root/data/name</value>
                    </property>
                    <property>
                             <name>dfs.data.dir</name>
                                <value>/root/data/data</value>
                      </property>
                     <property>
                               <name>dfs.namenode.secondary.http-address</name>
                                    <value>hdp-02:50090</value>
                               </property>
        4.mapred-site.xml(cp mapred-site.xml.template mapred-site.xml)
              <property>
                                 <name>mapreduce.framework.name</name>
                                 <value>yarn</value>
                          </property>
        5.yarn-site.xml
                    <property>
                                <name>yarn.resourcemanager.hostname</name>
                                    <value>hdp-01</value>
                          </property>
                           <property>
                                  <name>yarn.nodemanager.aux-services</name>
                                <value>mapreduce_shuffle</value>
                          </property>
                          <property>
                                <name>yarn.nodemanager.resource.memory-mb</name>
                                <value>2048</value>
                           </property>
                          <property>
                                <name>yarn.nodemanager.resource.cpu-vcores</name>
                               <value>2</value>
                           </property>
                                  <property>
                                       <name>yarn.resourcemanager.resource-tracker.hostname</name>
                                      <value>hdp-01</value>
                                  </property>
                   <property>
                                  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
                                   <value>org.apache.hadoop.mapred.ShuffleHandler</value>
                              </property>
               <property>
                                 <name>yarn.resourcemanager.scheduler.hostname</name>
                                <value>hdp-01</value>
                    </property>
        6.slaves
            hdp-01
            hdp-02
            hdp-03
            hdp-04
    需要上传 /etc/profile      /etc/hosts        hadoop-2.6.0-cdh5.7.0    jdk1.8.0_161
    scp -r 需要上传的文件 到那个机器上面的主机名:地址
    scp -r /etc/profile hdp-02:/etc      ($PWD的意思是上传到本文件夹的下面)   cd /etc ; scp -r /etc/profile hdp-02:$PWD
    格式化  Hadoop namenode -format
    然后启动hadoop集群

    配置zookeeper
        vi zoo.cfg(cp zoo_sample.cfg zoo.cfg)
            修改数据存储位置     dataDir=/root/data/zookeeper
            在最下边加上     server.2=hdp-02:2888:3888
                server.3=hdp-03:2888:3888
                server.4=hdp-04:2888:3888
             接着,到hdp-02上,新建目录/root/data/zookeeper,并在目录中生成一个文件myid,内容为2
             接着,到hdp-03上,新建目录/root/data/zookeeper,并在目录中生成一个文件myid,内容为3
             接着,到hdp-04上,新建目录/root/data/zookeeper,并在目录中生成一个文件myid,内容为4
        修改完之后把zookeeper-3.4.5-cdh5.7.0传到hdp-03和hdp-04上面
         zookeeper只能一个一个启动因此写一个脚本
         zookeeper批量启动关闭脚本        文件名zkmanage.sh        赋与权限用./执行:chmod +x zkmanage.sh
        #!/bin/bash
        for host in hdp-02 hdp-03 hdp-04
        do
        echo "${host}:${1}ing......"
        ssh $host "source /etc/profile;/root/app/zookeeper-3.4.5-cdh5.7.0/bin/zkServer.sh $1"
        done

        sleep 2

        for host in hdp-02 hdp-03 hdp-04
        do
        ssh $host "source /etc/profile;/root/app/zookeeper-3.4.5-cdh5.7.0/bin/zkServer.sh status"
        done
    配置hbase
        hbase.env.sh
            export JAVA_HOME=/root/app/jdk1.8.0_161
            export HBASE_MANAGES_ZK=false
        hbase.site.xml
                    <property>
                                <name>hbase.rootdir</name>
                                 <value>hdfs://hdp-01:9000/base</value>
                           </property>
                          <property>
                                   <name>hbase.cluster.distributed</name>
                                   <value>true</value>
                             </property>
                            <property>
                                   <name>hbase.zookeeper.quorum</name>
                                   <value>hdp-02:2181,hdp-03:2181,hdp-04:2181</value>
                            </property>
        vi regionservers
            hdp-02
            hdp-03
            hdp-04
          修改完之后把hbase-1.2.0-cdh5.7.0传到hdp-02和hdp-03和hdp-04上面
        启动   进入bin目录,启动 ./start-hbase.sh
        启动hbase shell,   输入list 列出表格  
    下载MySQL
        查看有无安装过mysql
            rpm -qa|grep mysql
        安装mysql服务
            yum install mysql-server
        设置开机自启动
            chkconfig mysqld on
            chkconfig --list mysqld
        启动mysql
            service mysqld start
        root用户登陆
            mysqladmin -u root password hadoop
            mysql -u root -p
        创建hive数据库用来保存hive元数据
            create database hive;
        使hadoop01(操作系统用户)用户可以操作数据库hive中的所有表:
            grant all on hive.* to root@'(需要登录hive的主机名)' identified by 'hadoop';
            grant all privileges on hive.* to root@'hdp-03' identified by 'hadoop';
            flush privileges;
        修改字符编码
            /etc/my.cnf文件中的所有如下:

            [mysqld]
            datadir=/var/lib/mysql
            socket=/var/lib/mysql/mysql.sock
            user=mysql
            # Disabling symbolic-links is recommended to prevent assorted security risks
            symbolic-links=0
            default-character-set=utf8
            [mysqld_safe]
            log-error=/var/log/mysqld.log
            pid-file=/var/run/mysqld/mysqld.pid
            default-character-set=utf8
            [client]
            port=3306
            default-character-set=utf8
    配置hive
        修改hive-site.xml
            <?xml version="1.0" encoding="UTF-8" standalone="no"?>
            <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
            <configuration>
                    <property>
                        <name>javax.jdo.option.ConnectionURL</name>
                          <value>jdbc:mysql://(MySQL安装的主机名):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>hadoop</value>
                    </property>
            </configuration>
        修改hive-env.sh文件
            export JAVA_HOME=/root/app/jdk1.8.0_161
            export HADOOP_HOME=/root/app/hadoop-2.6.0-cdh5.7.0
        追加mysql的jdbc驱动jar包
        在hive解压目录的lib文件夹下添加mysql的jdbc驱动
           修改完之后把hive-1.1.0-cdh5.7.0传到hdp-02和hdp-03和hdp-04上面
        启动hive
        进入Hive命令行,执行命令,创建一个名为test的表,并查询该表的记录数
        create table test(id int);
        select count(*) from test;


    配置flume        (在hadoop集群里 哪里需要采集信息那里就配置Flume)
        vi flume-env.sh ( cp flume-env.sh.template flume-env.sh )
            将export  JAVA_OPTS 那行的注释去掉
            修改export JAVA_HOME=/root/app/jdk1.8.0_161
        ***将dir-hdfs.conf导入到Flume中的bin目录下边
            需要注意:ag1.sinks.sink1.hdfs.path =hdfs://hdp-01:9000/access_log/%y-%m-%d/%H-%M
                中的hdp-01:9000 这个是NameNode的主机名
                ag1.sources.source1.spoolDir = /root/data/log
                从什么地方采集的信息
        创建 源目录log 给与777权限 并且在log目录下存放需要采集的数据
        执行命令
            ./flume-ng agent -c conf/ -f dir-hdfs.conf -n ag1 -Dflume.root.logger=INFO,console

    配置sqoop   (只要在hadoop集群里有MySQL 就可以使用sqoop导入导出)
        注意:1.使用sqoop前需要导入json的包到sqoop的lib目录下
                  2.将hive/lib/hive.* 拷贝到sqoop的lib目录下

        vi sqoop-env.sh (cp sqoop-env-template.sh sqoop-env.sh)
                    ***export HADOOP_COMMON_HOME=/root/app/hadoop-2.6.0-cdh5.7.0
                    ***export HADOOP_MAPRED_HOME=/root/app/hadoop-2.6.0-cdh5.7.0
            export HBASE_HOME=/root/app/hbase-1.2.0-cdh5.7.0       #可以不配,我们很少用hbase导入导出
                    ***export HIVE_HOME=/root/app/hive-1.1.0-cdh5.7.0
            export ZOOCFGDIR=/root/app/zookeeper-3.4.5-cdh5.7.0    #可以不配,我们很少用zookeeper导入导出
        之后要在本机的sqoop上传一个MySQL的jar包
        验证是否成功
            sqoop version
            sqoop list-databases --connect jdbc:mysql://master:3306/ --username root -P

    相关资料以及架包:

      https://pan.baidu.com/s/12QRR9bWFvNRaBppUar1MeQ

      提取码:239b





  • 相关阅读:
    01JAVA语言基础课后作业
    从命令行接收多个数字,求和之后输出结果
    java伪代码
    java从命令行接收多个数字,求和之后输出结果
    大道至简读后感
    大道至简读后感
    d3d两点
    codeforce 1A-1C
    计算几何里三角形的一些姿势,都忘干净了..
    c++ template 5.x 学习总结
  • 原文地址:https://www.cnblogs.com/lihui123/p/12800284.html
Copyright © 2011-2022 走看看