1. 程式人生 > >Hadoop環境配置-分散式

Hadoop環境配置-分散式

分散式部署
    機器準備
            ip :                      hostname:                                          Memory    Core:
        192.168.59.162     bigdata-hpsk02.huadian.com bigdata-hpsk02    2G            1
        192.168.59.163     bigdata-hpsk03.huadian.com bigdata-hpsk03    2G            1        
        192.168.59.164     bigdata-hpsk04.huadian.com bigdata-hpsk04    2G            1
    要求:


        多臺機器之間,
            目錄結構一致,使用者名稱,許可權等一致
            防火牆關閉,selinux
        
    克隆之後,只用root使用者操作    
            vi /etc/udev/rules.d/70-persistent-net.rules
            vi /etc/sysconfig/network-scripts/ifcfg-eth0
            vi /etc/sysconfig/network
            vi /etc/hosts
            
    
安裝方式:在Linux上安裝軟體

    不使用批量安裝工具
        手動將配置好的Hadoop分發給其他機器
        傳統的Apache版本可以使用該方法
    
    使用批量工具:大資料叢集運維管理工具
        cm (cloudera manager),
        cloudera公司提供
            CDH版本:
                框架多了,相容性問題就出現了,CDH版本幫你解決了這個問題。
                修改了很多bug
                比Apache的版本穩定性好
                用的比較多的版本:5.7.6
                
機器選型:

    硬體伺服器
        
    雲伺服器
    
    配置
        一般配置
            16core    32GB    
            32core    64G         spark,使用者畫像
            硬碟:8~16T            12T
            
            資料問題
            中小型企業
            80 * 5 * 24 *30 *12    *3 *3 = 300t
            80 * 24 * 5 = 10G 
            一條記錄600位元組 ,2000W
    
Linux環境配置 :   
    ip,主機名、本地對映、DNS
    防火牆,selinux:(/ect/selinux/config)
    
    ----------------------
        hadoop啟動的過程方式
            單個程序啟動
                sbin/hadoop-daemon.sh start XX
            分別啟動hdfs和yarn
                sbin/start-dfs.sh
                    DataNode
                    NameNode
                    SecondaryNameNode
                sbin/start-yarn.sh
            一次性啟動所有
                sbin/start-all.sh
        
    ----------------------
    
    ssh免金鑰登入:
        ssh遠端登入
        ssh bigdata-hpsk03.huadian.com
        第一步:為每臺機器生產自己公私鑰
            ssh-keygen -t rsa   
            /home/huadian/.ssh
        第二步:共公鑰發給每臺機器,包括自己
            ssh-copy-id bigdata-hpsk02.huadian.com
            ssh-copy-id bigdata-hpsk03.huadian.com
            ssh-copy-id bigdata-hpsk04.huadian.com
        ---測試---
        用ssh登入到其他機器,包括自己
        
    NTP時間同步
        Linux中,我們可以通過ntp服務實現每臺機器的時間一致
        
        實現方式
            通過Linux crotab實現
                讓我們的系統每1分鐘和時間伺服器進行同步
                crotab -e
                    *    *    *    *    *        command
                    分  時  日  月    周
                    */1 *    *    *    *    ntpdate ntp_server_ip
        
        
                世界使用ntp服務同步外網 時間伺服器
            
            選擇一臺機器作為中間同步服務A,A和外網進行同步,
            B,C同步A
                配置A:
                    sudo vi /etc/ntp.conf
                        刪除
                            restrict default kod nomodify notrap nopeer noquery
                            restrict -6 default kod nomodify notrap nopeer noquery
                            restrict 127.0.0.1
                            restrict -6 ::1
                            server 0.centos.pool.ntp.org
                            server 1.centos.pool.ntp.org
                            server 2.centos.pool.ntp.org
                        新增
                            A和誰同步
                                server 202.112.10.36
                            允許誰可以和我同步
                                restrict 192.168.59.0 mask 255.255.255.0 nomodify notrap    
                            配置本地同步
                                server 127.127.1.0
                                fudge 127.127.1.0 stratnum 10
                    啟動ntp服務
                        sudo service ntpd start 
                配置B,C和A同步    
                    sudo vi /etc/ntp.conf
                        刪除:
                        新增:
                        server 192.168.59.162
                    開啟ntp服務
                        sudo service ntpd start
                    手動同步
                        sudo ntpdate 192.168.59.162
                
                檢視當前主機和誰同步:ntpq -p
                偷懶:
                    sudo date -s "2018-06-16 16:58:00"
                
        
        
    
    安裝部署Hadoop:
        節點分佈情況
            node2    datanode    nodemanager        NameNode(工作)
            node3    datanode    nodemanager            
            node4    datanode     nodemanager        resourceManager(工作)
    
        安裝JDK:
            node2上面
                tar -zxcf
            scp -r jdk1.8.0_91/ [email protected]bigdata-hpsk03.huadian.com:/opt/modules/
            scp -r jdk1.8.0_91/ [email protected]:/opt/modules/
            
            下載:scp -r [email protected]:/opt/modules/ jdk1.8.0_91/ 
            環境變數配置
        Hadoop:
            上傳解壓
            修改配置檔案
                -》-env.sh 環境變數
                JAVA_HOME:

                        Hadoop-env.sh
                        mapred-env.sh
                        yarn-env.sh


                -》-site.xml:配置使用者自定義需求:
                    core-site:配置Hadoop全域性的一致屬性
                        fs.defaultFS:hdfs入口
                        hadoop.tmp.dir:臨時儲存目錄

        <property>
			<name>fs.defaultFS</name>
			<value>hdfs://bigdata-hpsk02.huadian.com:8020</value>
		</property>
		
		<property>
			<name>hadoop.tmp.dir</name>
			<value>/opt/modules/hadoop-2.7.3/data/tmpData</value>
		</property>


                    hdfs-site:HDFS的屬性
                        dfs.replication:檔案副本數
                        dfs.namenode.secondary.http-address:bigdata-hpsk02.huadian.com:50090(配置secondarynamenode)

        <property>
			<name>dfs.replication</name>
			<value>3</value>
		</property>
   
        <property>
			<name>dfs.namenode.secondary.http-address</name>
			<value>bigdata-hpsk02.huadian.com:50090</value>
		</property>


                    mapred-site:配置MapReduce屬性
                        mapreduce.framework.name:MapReduce執行在YARN上

<property>
			<name>mapreduce.framework.name</name>
			<value>yarn</value>
</property>
      
# 下面的是配置歷史伺服器,可以不配置,看需要:
<property>
		<name>mapreduce.jobhistory.address</name>
		<value>bigdata-hpsk02.huadian.com:10020</value>
</property>
   
<property>
		<name>mapreduce.jobhistory.webapp.address</name>
		<value>bigdata-hpsk02.huadian.com:19888</value>
</property>


                    yarn-site:使用者配置YARN屬性

                        yarn.resourcemanager.hostname
                        yarn.nodemanager.aux-services
                        resourceManager入口
                        告知yarn ,mapreduce程式將在你這裡執行

<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>bigdata-hpsk04.huadian.com</value>
</property>

<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
</property>

#下面的是配置log日誌檔案,用於方便查看出錯資訊日誌檔案(可以不配置,看需要):
<property>
		<name>yarn.log-aggregation-enable</name>
		<value>true</value>
</property>

<property>
		<name>yarn.log-aggregation.retain-seconds</name>
		<value>604800</value>
</property>


                    
            分發:
                scp -r hadoop-2.7.3/  [email protected]:/opt/modules/
                scp -r hadoop-2.7.3/  [email protected]:/opt/modules/
    
            啟動測試:
                -》node2:格式化(bin/hdfs  namenode -format),啟動NameNode
                -》3個節點中,啟動dataNode
                -》sbin/stop-dfs.sh    sbin/stop-yarn.sh 
                -》sbin/start-dfs.sh    sbin/strat-yarn.sh 

啟動對應程序:
                    在hpsk02啟動HDFS
                    在hpsk04啟動YARN