CDH版Hadoop-zookeeper-hbase-spark安裝文件

獨孤小樂子發表於2020-04-05
CDH安裝包下載地址:http://archive.cloudera.com/cdh5/repo-as-tarball/5.3.2/
CDH5.3.2官方安裝說明文件地址:http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_cdh5_cluster_deploy.html
注:版本變動可能會涉及地址變動,請靈活使用


一、準備工作
    1.關閉防火牆(所有機器)(root使用者)
        關閉防火牆:/etc/init.d/iptables stop
        關閉開機啟動:chkconfig iptables off
    2.關閉selinux(所有機器)(root使用者)
        臨時方法:setenforce 0
        永久方法:/etc/selinux/config檔案中設定SELINUX=disabled ,然後重啟伺服器
    3.禁用ipv6
        vim /etc/sysctl.conf
        #disable ipv6
        net.ipv6.conf.all.disable_ipv6=1   
        net.ipv6.conf.default.disable_ipv6=1
        net.ipv6.conf.lo.disable_ipv6=1

        使其生效:sysctl -p

    4.時間(所有機器)(root使用者)
        關閉ntpd服務
        service ntpd stop
        設定日期date -s "2014-5-13 09:56:33"
        在crontab新增   */30 * * * * (/usr/sbin/ntpdate -s ntp1.iapp.com) > /dev/null(ntp1.iapp.com為ntp伺服器地址
    5.主機名(所有機器)(root使用者)
        暫時修改主機名:hostname  192.168.80.19
        永久修改:vim /etc/sysconfig/network
    6.hosts檔案(所有機器)(root使用者)
        在hosts檔案中寫入整個叢集的主機資訊:
        192.168.60.98 bigdata07.ihep.ac.cn bigdata07
        192.168.60.97 bigdata06.ihep.ac.cn bigdata06
    7.設定IP地址(所有機器)(root使用者)(一般在伺服器上使用,虛擬機器不需要)
        vim /etc/sysconfig/network-scripts/ifcfg-em1
        修改如下內容:
            HWADDR=90:B1:1C:37:A9:E5
            TYPE=Ethernet
            UUID=58ad6ae5-2e55-4c9a-81a3-b5d16441d65a
            ONBOOT=yes
            NM_CONTROLLED=yes
            BOOTPROTO=none
            IPADDR=192.168.60.96
            GATEWAY=192.169.60.1
            IPV6INIT=NO
    8.設定windows的hosts檔案
        檔案地址一般在:C:\Windows\System32\drivers\etc
        加入和linux伺服器中一樣的hosts對應關係:
            192.168.60.98 bigdata07.ihep.ac.cn bigdata07
            192.168.60.97 bigdata06.ihep.ac.cn bigdata06           

二、JDK1.8安裝(所有機器)(root使用者)
    1.檢視java狀況:rpm -qa |grep java
    2.檢視jdk狀況:rpm -qa |grep jdk
    3.解除安裝上兩步顯示的程式:rpm -e --nodeps java-###
    4.安裝jdk:將jdk-8-linux-x64.rpm放入任意目錄,執行rpm -ivh jdk-8-linux-x64.rpm
    5.修改環境變數:vim /etc/profile,加入如下幾行:
        export JAVA_HOME=/usr/java/jdk1.8.0
        export JRE_HOME=/usr/java/jdk1.8.0/jre
        export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
        export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    6.生效:source /etc/profile
    7.驗證:java –version、echo $JAVA_HOME

三、SSH無密碼登入(所有機器)(root使用者)

    1.啟動ssh:service sshd start
    以下步驟全部在root使用者下操作,首先需要保證所有主機能夠ping通
    2.生成金鑰:ssh-keygen -t rsa(然後一直按回車,會自動生成.ssh資料夾,內有兩個檔案)
    3.生成authorized_keys:cat id_dsa.pub  >>  authorized_keys
    4.賦許可權:chmod 600 authorized_keys
    5.生成公有的金鑰,包括所有主機的資訊:
        5.1.將第一臺主機的authorized_keys傳送至第二臺主機,替換掉之前的authorized_keys:
            scp -r authorized_keys root@192.168.60.92:/home/hadoop/.ssh
        5.2.將第二臺主機的id_dsa.pub追加入authorized_keys(追加後的應有兩臺主機的資訊)
            cat id_dsa.pub  >>  authorized_keys
        5.3.重複前兩步,直到把所有主機的id_dsa.pub追加入authorized_keys
        5.4.將最後一個authorized_keys分發回給所有主機:
            scp -r authorized_keys root@192.168.60.92:/home/hadoop/.ssh
    6.驗證登陸:ssh ip地址或者主機名

四、下載CDH安裝包,配置yum源
    1.開啟http服務
    2.設定yum配置檔案       
    [cloudera-cdh5]
    # Packages for Cloudera's Distribution for Hadoop, Version 5, on RedHat or CentOS 6 x86_64
    name=Cloudera's Distribution for Hadoop, Version 5
    baseurl=http://192.168.83.147/cdh/5.3.2/
    gpgkey = http://192.168.83.147/cdh/RPM-GPG-KEY-cloudera
    gpgcheck = 1

五、Zookeeper3.4.5搭建(部分主機)
    1.注意事項:
        1.1.Zookeeper分佈的主機數必須是奇數,不用使用全部主機,挑選出部分即可
    2.所有節點安裝zookeeper
        2.1   
            yum install zookeeper-server
    3.配置檔案:分發給所有節點
        zoo.cfg:
            maxClientCnxns=50
            tickTime=3000
            initLimit=15
            syncLimit=10
            dataDir=/data/zookeeper/data        ##Zookeeper存放資料
            dataLogDir=/data/zookeeper/logs        ##存放資料日誌
            autopurge.purgeInterval=96
            server.1=192.168.60.92:2888:3888    ##所有安裝Zookeeper的主機。server.ID,ID寫入每臺主機的/data/myid中
            clientPort=2181

    5.建立/data和/logs兩個資料夾
        許可權:drwxr-xr-x. 3 zookeeper root 4096 Mar 20 15:31 data
              drwxr-xr-x. 3 zookeeper root 4096 Mar 20 15:31 logs

    7.啟動Zookeeper叢集
        7.1.初次啟動zookeeper需要初始化:  service zookeeper-server init --myid=1   
            第二個節點                      service zookeeper-server init --myid=2   依次類推
        7.2.啟動Zookeeper叢集(每臺Zookeeper機器)
             service zookeeper-server start
        7.3.檢視狀態:
             /usr/lib/zookeeper/bin/zkServer.sh  status
             zookeeper-server status
        7.4.驗證:
            主節點:/usr/lib/zookeeper/bin/zkCli.sh   
                    ls /
        7.5.格式化叢集
            在主節點:hdfs zkfc -formatZK(注意:!!!安裝好hdfs後)
        7.6.驗證
            ls / ##是否出現了hadoop-ha

六、 Hadoop-HA模式(所有主機)
            注意:(hadoop HA設定兩個namenode,一個active,一個standby)
        1.安裝hadoop所需部件
            所有主機執行一次  yum clean all

            NameNode (選取兩臺NameNode節點安裝)             
                                        yum install hadoop-hdfs-namenode -y
                                        yum install hadoop-hdfs-zkfc -y                       
                                         yum install hadoop-hdfs-journalnode -y
            ResourceManager(選取一臺主機安裝)             
                                         yum install hadoop-mapreduce-historyserver -y
                                         yum install hadoop-yarn-proxyserver -y
                                         yum install hadoop-yarn-resourcemanager -y

            叢集所有節點除了ResourceManager                 
                                         yum install hadoop-hdfs-datanode -y
                                         yum install hadoop-mapreduce -y               
                                         yum install hadoop-client -y
                                         yum install hadoop-yarn-nodemanager -y

        2 HDFS
            2.1建立dfs.name.dir目錄dfs.data.dir本地目錄,並且設定許可權。  注:(dfs.data.dir和dfs.name.dir已經過時了,但是還能用;建議使用dfs.datanode.data.dir和dfs.namenode.name.dir)
                 mkdir -p /data/hdfs/name /data/hdfs/data
                 chown -R hdfs:hdfs    /data/hdfs/name /data/hdfs/data
                注:hadoop 程式可能會自動給dfs.name.dir目錄設定755許可權,注意檢視,必須改為700許可權
            2.2建立dfs.journalnode.edits.dir目錄,設定許可權
                 mkdir -p /data/hdfs/journal
                 chown -R hdfs:hdfs /data/hdfs/journal
            2.3配置兩個NaemNode主機 hdfs使用者無密碼登陸 (hdfs使用者下)
                2.3.1生成金鑰:ssh-keygen -t rsa(然後一直按回車,會自動生成.ssh資料夾,內有兩個檔案)
                2.3.2生成authorized_keys:cat .ssh/id_rsa.pub  >>  .ssh/authorized_keys
                2.3.3賦許可權:chmod 600 authorized_keys
                2.3.4生成公有的金鑰,包括兩個NameNode主機的資訊:
                    1.將第一臺主機的authorized_keys傳送至第二臺主機,替換掉之前的authorized_keys:
                        scp -r authorized_keys hdfs@192.168.83.148:/var/lib/hadoop-hdfs/.ssh
                    2.將第二臺主機的id_dsa.pub追加入authorized_keys(追加後的應有兩臺主機的資訊)
                        cat id_dsa.pub  >>  authorized_keys
                    3.將第二臺主機authorized_keys分發回給第一臺NameNode主機:
                        scp -r authorized_keys hdfs@192.168.83.147:/var/lib/hadoop-hdfs/.ssh
                2.3.5驗證登陸:ssh ip地址或者主機名
            2.4每個節點啟動JournalNode
                sudo service hadoop-hdfs-journalnode start
            2.5啟動ZKFC(兩個NameNode節點)
                sudo service hadoop-hdfs-zkfc start  在次之前,先要格式化zkfc 7.5  在主節點:hdfs zkfc -formatZK
            2.6格式化namenode(hdfs使用者下)
                sudo -u hdfs hdfs namenode -format
            2.7啟動NameNode節點
                sudo service hadoop-hdfs-namenode start
            2.8啟動NameNode節點(standby)
                sudo -u hdfs hdfs namenode -bootstrapStandby
                sudo service hadoop-hdfs-namenode start
            2.9建立/temp 目錄,設定許可權。注:如果不自己建立,程式可能自動建立,從而使其他程式無法使用這個目錄。
                 sudo -u hdfs hadoop fs -mkdir /tmp
                 sudo -u hdfs hadoop fs -chmod -R 1777 /tmp
            2.10啟動datanode
                 service  hadoop-hdfs-datanode start
        3 YARN
            3.1建立yarn.nodemanager.local-dirs目錄:/data/yarn/local;建立yarn.nodemanager.log-dirs目錄:/data/yarn/logs
            3.2改變上一步所建立目錄許可權
                mkdir -p /data/yarn/local /data/yarn/logs
                sudo chown -R yarn:yarn /data/yarn/local /data/yarn/logs
                yarn:yarn   drwxr-xr-x
            3.3.建立mapred-site.xml中yarn.app.mapreduce.am.staging-dir的目錄 /user  並且在/user下建立/history  (系統預設建立的不是/user目錄,系統給預設建立的目錄許可權可能會阻止程式正常執行,所以要自己建立/user目錄)
            3.4 建立上一步所建立的目錄,並改變許可權
                sudo -u hdfs hadoop fs -mkdir -p /user/history
                sudo -u hdfs hadoop fs -chmod -R 1777 /user/history
                sudo -u hdfs hadoop fs -chown mapred:hadoop /user/history
            3.5建立yarn.nodemanager.remote-app-log-dir /var/log/hadoop-yarn日誌目錄,並設定許可權
                sudo -u hdfs hadoop fs -mkdir -p /var/log/hadoop-yarn
                sudo -u hdfs hadoop fs -chown yarn:mapred /var/log/hadoop-yarn
            3.6確認目錄,以及目錄許可權
                sudo -u hdfs hadoop fs -ls -R /

                drwxrwxrwt   - hdfs supergroup          0 2012-04-19 14:31 /tmp
                drwxr-xr-x   - hdfs supergroup          0 2012-05-31 10:26 /user
                drwxrwxrwt   - mapred hadoop          0 2012-04-19 14:31 /user/history
                drwxr-xr-x   - hdfs   supergroup        0 2012-05-31 15:31 /var
                drwxr-xr-x   - hdfs   supergroup        0 2012-05-31 15:31 /var/log
                drwxr-xr-x   - yarn   mapred            0 2012-05-31 15:31 /var/log/hadoop-yarn
            3.7啟動ResourceManager,以及每一個 NodeManager   
                  sudo service hadoop-yarn-resourcemanager start
                  sudo service hadoop-yarn-nodemanager start
            3.8啟動MapReduce JobHistory Server
                  sudo service hadoop-mapreduce-historyserver start

CDH版本hbase安裝文件:

    1.所有機器安裝hbase:yum install hbase
    2.安裝hbase master以及backup master :yum install hbase-master
    3.安裝regionserver:yum install hbase-regionserver
    4.修改配置檔案:hbase-site.xml regionservers
    5.在hdfs上建立hbase目錄,並且改變目錄許可權:
        sudo -u hdfs hadoop fs -mkdir /hbase
            sudo -u hdfs hadoop fs -chown hbase /hbase

    6.建立目錄 並改變許可權 (所有master 和 regionserver)
        mkdir -p /usr/lib/hbase/tmpid
        chown -R hbase:hbase /usr/lib/hbase/tmpid
    7.啟動hbasemaster節點,以及regionserver節點:
        service hbase-master start
        service hbase-regionserver start


CDH版本的Spark安裝指導:



1、配置本地yum源,在安裝完cdh版本的Hadoop後已經配置。
2、可用yum list| gerp  spark 命令檢視是否有以下安裝包
    1)spark-core
    2)spark-worker
    3)spark-master
    4)spark-python
    5)spark-history-server
3、安裝spark的安裝包
   1)在master節點上執行以下命令
        sudo yum install  spark-core  spark-master  spark-python
2)在所有worker節點上執行以下命令
        sudo yum install  spark-core  spark-worker  spark-python
   3)若需安裝spark的history server服務,可在master節點安裝,也可單獨安裝
      在master節點安裝
        sudo 
      單獨在其他節點安裝history server服務
         sudo yum install spark-core spark-history-server
4、配置spark叢集(以standalone模式執行)
修改/etc/spark/conf/spark-env.sh檔案
export STANDALONE_SPARK_MASTER_HOST=hostname   (必須配置的) 
將hostname修改為master節點的主機名
還可以修改以下配置屬性:
SPARK_MASTER_PORT                預設7077
SPARK_MASTER_WEBUI_PORT          預設18080
SPARK_WORKER_PORT                預設7078
SPARK_WORKER_WEBUI_PORT         預設18081
SPARK_WORKER_CORES                設定在該節點使用幾核
SPARK-WORKER_MEMORY                設定可以使用多少記憶體
SPARK_WORKER_INSTANCE            設定該幾點可以執行幾個worker程式
SPARK_WORKER_DIR        設定worker程式執行過程中將中間檔案存放在本地何處
修改完spark-env.sh檔案後,將該配置檔案傳送到叢集中的其他節點。
5、配置spark history server
   首先在hdfs上建立一個資料夾,用來存放應用執行的日誌資訊。
    sudo -u hdfs hadoop fs -mkdir /user/spark
    sudo -u hdfs hadoop fs -mkdir /user/spark/applicationHistory
    sudo -u hdfs hadoop fs -chown spark:spark /user/spark
    sudo -u hdfs hadoop fs -chown spark:spark /user/spark/applicationHistory

     在提交任務的客戶端作如下配置:
1)建立spark-default.conf檔案
cp /etc/spark/conf/spark-defaults.conf.template  /etc/spark/conf/spark-defaults.conf
2)在spark-default.conf 檔案中新增如下內容
spark.eventLog.dir=/user/spark/applicationHistory   
spark.eventLog.enabled=true
spark.yarn.historyServer.address=http://History_host:history_port   該項可以使RM連線到spark  history  server ,具體還沒實踐過,
該項也可以不配置 。history server服務端可以不用配置,直接使用預設配置,該項服務只是用來檢視一些歷史資訊。

6、啟動、停止服務
在master節點啟動master服務
sudo service spark-master start
在所有的worker節點都啟動worker服務
sudo service spark-worker start
在History server 節點啟動History server服務
sudo service spark-history-server start
停止服務時,在相應的節點上執行以下命令
sudo service spark-worker stop
sudo service spark-master stop
sudo service spark-history-server stop

啟動後,可以通過http://spark-master:18080檢視叢集狀態。

yarn application -kill application_1428487296152_25597
./bin/spark-class org.apache.spark.deploy.Client kill <master url> <driver ID>
/bin/spark-class org.apache.spark.deploy.Client kill spark://myspark.com:7077 app-20140316142129-0000


參考連結
http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_spark_configure.html    配置檔案的參考連結

http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_yumrepo_local_create.html  建立本地yum 源的連結

http://archive.cloudera.com/cdh5/repo-as-tarball/5.3.2/    cdh5.3.2的下載地址



相關文章