完全式分布系统

修改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





原文地址:https://www.cnblogs.com/lihui123/p/12800284.html