<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # 1. 虛擬機準備 需要至少3臺虛擬機。 我已安裝了一臺centos7的虛擬機,并且這臺虛擬機也已經安裝了jdk和hadoop環境,下面通過復制這臺虛擬機來創建另外三個虛擬機。 ```java 如果你沒有一臺準備了jdk和hadoop環境的虛擬機,可以按照 【hadoop -> hadoop安裝】一節來準備一臺虛擬機。 ``` **一:創建三臺新的虛擬機** 1. 找到我們原先虛擬機文件的安裝目錄,拷貝3份文件夾并重命名 ![](https://img.kancloud.cn/8d/18/8d1860366c34f35054c873bca863759e_1250x87.png) 2. 在VMware軟件打開虛擬機 ![](https://img.kancloud.cn/48/22/48225bab9b995c46b7df908c1c495604_1424x684.png) 3. 重命名三臺虛擬機 ![](https://img.kancloud.cn/fe/4d/fe4dd29c3c91e878e7d09db0e25f5308_1178x476.png) 4. 給新的虛擬機新生成一個MAC地址(以Centos7_102為例,剩余的兩臺也是同樣的步驟進行配置) ![](https://img.kancloud.cn/e0/74/e0740f57c12d217ea3aafe41c69f6dd8_1092x819.png) 5. 開啟虛擬機 ![](https://img.kancloud.cn/9e/9b/9e9b36d925720d42c76886cbb703e6f2_1220x350.png) 輸入賬號和密碼登錄,與原虛擬機一致 ![](https://img.kancloud.cn/dc/c9/dcc93d3b297ca67ce5829599594eb8ed_1073x327.png) 6. 修改網卡 ```xml -- 修改/etc/sysconfig/network-scripts/ifcfg-eno16777736 配置文件 # 修改為上面剛生成的MAC地址 HWADDR="00:50:56:20:74:F0" # 更改為一個新的ip地址,我給139 IPADDR="192.168.64.139" -- 重啟網絡 # systemctl restart network -- 查看ip是否已經發生變化,我的由原來的138變成了139,修改成功 # ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:50:56:20:74:f0 brd ff:ff:ff:ff:ff:ff inet 192.168.64.146/24 brd 192.168.64.255 scope global dynamic eno16777736 valid_lft 1442sec preferred_lft 1442sec inet 192.168.64.139/24 brd 192.168.64.255 scope global secondary eno16777736 valid_lft forever preferred_lft forever inet6 fe80::250:56ff:fe20:74f0/64 scope link valid_lft forever preferred_lft forever ``` 將剩余的兩臺也重新生成一個MAC地址,分別修改ip為192.168.64.140、192.168.64.141。<br/> **二:配置上面創建的三臺虛擬機** 給三臺虛擬機分配的主機名分別為hadoop102、hadoop103、hadoop104。 下面以Centos7_102的配置為例,剩余的兩臺也按照如下步驟更改。 1. 修改主機和進行端口映射 ```xml -- 在 /etc/hostname 配置文件中更改主機名 hadoop102 -- 在每臺虛擬機的 /etc/hosts/ 將三臺虛擬機的端口映射 192.168.64.139 hadoop102 192.168.64.140 hadoop103 192.168.64.141 hadoop104 -- 重啟虛擬機 # reboot ``` <br/> # 2. SSH無密碼登錄配置 注意:下面的配置有些虛擬機要配置,而有些不需要。 1. 生成公鑰和私鑰(三臺設備均需要執行) ```xml # cd /root/.ssh # ssh-keygen -t rsa -- 接著輸入3個回車 # ls --生成如下三個文件 id_rsa(私鑰) id_rsa.pub(公鑰) known_hosts(記錄ssh訪問過計算機的公鑰) ``` 2. 合并公鑰(僅需在其中一臺虛擬機操作即可,我在hadoop102進行操作) ```xml # cd /root/.ssh # ssh root@hadoop102 cat ~/.ssh/id_rsa.pub > authorized_keys # ssh root@hadoop103 cat ~/.ssh/id_rsa.pub >> authorized_keys # ssh root@hadoop104 cat ~/.ssh/id_rsa.pub >> authorized_keys ``` 3. 把hadoop102 服務器的 authorized_keys、known_hosts 復制到 hadoop103、hadoop104服務器的 /root/.ssh 目錄 ```xml -- 在hadoop102執行下面的命令,然后在hadoop103和hadoop104服務器就有一個authorized_keys文件 # scp authorized_keys root@hadoop103:/root/.ssh/ # scp authorized_keys root@hadoop104:/root/.ssh/ # scp known_hosts root@hadoop103:/root/.ssh/ # scp known_hosts root@hadoop104:/root/.ssh/ ``` 4. 測試 完成上面的配置后,三臺虛擬機可以相互訪問,并且不輸入任何密碼。 ```xml # ssh hadoop102 # ssh hadoop103 # ssh hadoop104 ``` <br/> # 3. 單節點安裝及資源分發 進行資源分發,只需要在其中一臺虛擬機上操作即可,我選hadoop102。 ```xml -- /opt/install/hadoop/是安裝hadoop的目錄 # scp -r /opt/install/hadoop/ root@hadoop103:/opt/install # scp -r /opt/install/hadoop/ root@hadoop104:/opt/install ``` <br/> # 4. 集群配置 集群部署規劃如下表 | | hadoop102 | hadoop103 | hadoop104 | | --- | --- | --- | --- | | HDFS | NameNode<br/>DataNode | DataNode | SecondaryNameNode<br/>DataNode | | YARN | NodeManager | ResourceManager<br/>NodeManager | NodeManager | 先在hadoop102上進行配置,然后分發到hadoop103和hadoop104機器上。 **一:HDFS的配置** 1. 在 {hadoop_home}/etc/hadoop/core-site.xml 指定NameNode地址。 ```xml <!-- 指定HDFS中NameNode的地址--> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop102:9000</value> </property> <!-- 指定hadoop運行時產生文件的存儲目錄 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/install/hadoop/data/tmp</value> </property> ``` 2. 在 {hadoop_home}/etc/hadoop/hadoop-env.sh 中找到jdk安裝目錄 ```xml # The java implementation to use. export JAVA_HOME=/usr/local/software/jdk1.8.0_171 ``` 3. 在 {hadoop_home}/etc/hadoop/hdfs-site.xml 中指定副本數量和副本主服務器 ```xml <!--因為配置了3臺虛擬機,所以 指定HDFS副本的數量為3,默認就是3 --> <property> <name>dfs.replication</name> <value>3</value> </property> <!-- 指定副本主服務器為hadoop104 --> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop104:50090</value> </property> ``` **二:yarn的配置** 1. 在 {hadoop_home}/etc/hadoop/yarn-env.sh 中指定jdk環境。 ```xml # some Java parameters export JAVA_HOME=/usr/local/software/jdk1.8.0_171/ ``` 2. 在 {hadoop_home}/etc/hadoop/yarn-site.xml 指定ResourceManager的地址。 ```xml <!-- reducer獲取數據的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定YARN的ResourceManager的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop103</value> </property> ``` **三:mapreduce的配置** 1. 在 {hadoop_home}/etc/hadoop/mapred-env.sh 中指定jdk環境。 ```xml export JAVA_HOME=/usr/local/software/jdk1.8.0_171/ ``` 2. 在 {hadoop_home}/etc/hadoop/mapred-site.xml 中指定mapreduce運行在yarn上。 ```xml <!-- 指定MapReduce運行在yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> ``` **四:在hadoop102上將上面的配置分發到hadoop103、hadoop104** ```xml # scp -r /opt/install/hadoop/etc/hadoop/* root@hadoop103:/opt/install/hadoop/etc/hadoop/ # scp -r /opt/install/hadoop/etc/hadoop/* root@hadoop104:/opt/install/hadoop/etc/hadoop/ ``` <br/> # 5. 集群測試 **一:啟動集群** 1. 在 {hadoop_home}/etc/hadoop/slaves 文件中配置slave(在hadoop102操作) ```xml # 將localhost刪除 hadoop102 hadoop103 hadoop104 ``` 2. 啟動HDFS集群(在hadoop102操作) ```xml -- 回到hadoop102中hadoop的安裝目錄下執行下面命令 -- 首次啟動集群需要格式化,后面如果再格式化可能會導致無法啟動 # bin/hdfs namenode -format -- 啟動集群 # sbin/start-dfs.sh ``` 3. 在三個虛擬機上查看啟動情況 ```xml -- 查看啟動情況,到hadoop安裝目錄下執行 [root@hadoop102 hadoop]# jps 4166 NameNode 4482 Jps 4263 DataNode [root@hadoop103 hadoop]# jps 3218 DataNode 3288 Jps [root@hadoop104 hadoop]# jps 3221 DataNode 3283 SecondaryNameNode 3364 Jps ``` 4. 啟動yarn 在配置ResourceManager的機器上啟動yarn,我的是在hadoop103。 ```xml # sbin/start-yarn.sh ``` 5. web端查看SecondaryNameNode 瀏覽器訪問:http://hadoop104:50090/status.html ,顯示如下 ![](https://img.kancloud.cn/0f/16/0f16dc5d34f5ebe2beae4c5e50753e85_1132x299.png)<br/> **二:測試** ```xml -- 在hdfs文件系統上創建一個input目錄 # bin/hdfs dfs -mkdir -p /user/hadoop/input -- 將測試文件內容上傳到文件系統上 # bin/hdfs dfs -put wcinput/wc.input /user/hadoop/input/ ``` 瀏覽器訪問HDFS系統 http://hadoop102:50070/explorer.html#/ ,顯示如下 ![](https://img.kancloud.cn/32/cc/32cc304228ace46b6fcd51b986c35082_1536x523.png) <br/> # 6. 集群時間同步 時間同步的方式:找一個機器,作為時間服務器,所有的機器與這臺集群時間進行定時的同步,比如,每隔十分鐘,同步一次時間。 我選擇hadoop102作為時間服務器,讓hadoop103與hadoop104每10min自動與時間服務器hadoop102同步一次。 下面是hadoop103的配置,hadoop104也需要進行相同配置。 ```xml # crontab -e -- 添加如下腳本 */10 * * * * /usr/sbin/ntpdate hadoop102 -- 為了看到效果,我將hadoop103機器的時間改為2017-9-11 11:11:11 -- 當前時間為2020-12-1 18:30:30 # date -s "2017-9-11 11:11:11" -- 10min后查看時間是否同步了 # date ``` <br/> # 7. 添加新數據節點 隨著數據量越來越大,原有的數據節點的容量不能滿足存儲數據的需求的情況下,需要在原有集群基礎上動態添加新的數據節點。 **一:虛擬機配置** 1. 基于hadoop102虛擬機克隆一臺新的虛擬機 克隆hadoop102是因為在上面的配置中,將hadoop102作為NameNode節點配置了。 復制hadoop102的安裝目錄,重命名為Centos7105。 ![](https://img.kancloud.cn/3c/37/3c3710e34fea2beb02fc5a9191f555a1_933x43.png) 2. 在VMware軟件中打開該虛擬機并重名為Centos_105 ![](https://img.kancloud.cn/d1/4b/d14b9a089b626466dec75e961146c680_1409x693.png) ![](https://img.kancloud.cn/b0/e0/b0e05c58ca7d7285636852cfd0570866_1146x305.png) 3. 生成新的MAC地址 ![](https://img.kancloud.cn/e0/74/e0740f57c12d217ea3aafe41c69f6dd8_1092x819.png) 4. 開啟虛擬機 要將原來的hadoop102關閉掉然后才能開啟。 ![](https://img.kancloud.cn/9e/9b/9e9b36d925720d42c76886cbb703e6f2_1220x350.png) 輸入賬號和密碼登錄,與原虛擬機一致 ![](https://img.kancloud.cn/dc/c9/dcc93d3b297ca67ce5829599594eb8ed_1073x327.png) 5. 修改網卡 ```xml -- 修改/etc/sysconfig/network-scripts/ifcfg-eno16777736 配置文件 # 修改為上面剛生成的MAC地址 HWADDR="00:50:56:3D:63:9A" # 更改為一個新的ip地址,我給142 IPADDR="192.168.64.142" -- 重啟網絡 # systemctl restart network -- 查看ip是否已經發生變化,我的由原來的139變成了142,修改成功 # ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:50:56:20:74:f0 brd ff:ff:ff:ff:ff:ff inet 192.168.64.146/24 brd 192.168.64.255 scope global dynamic eno16777736 valid_lft 1442sec preferred_lft 1442sec inet 192.168.64.142/24 brd 192.168.64.255 scope global secondary eno16777736 valid_lft forever preferred_lft forever inet6 fe80::250:56ff:fe20:74f0/64 scope link valid_lft forever preferred_lft forever ``` 6. 在 /etc/hostname 修改主機名為hadoop105 ```xml hadoop105 ``` 7. 在每臺機器上的 /etc/hosts 中添加相關機器的端口映射 在hadoop102、hadoop103、hadoop104、hadoop105都添加如下端口映射。 ```xml 192.168.64.139 hadoop102 192.168.64.140 hadoop103 192.168.64.141 hadoop104 192.168.64.142 hadoop105 -- 添加完成后重啟每臺虛擬機 # reboot ``` 8. 給hadoop105配置ssh無密碼登錄 ```xml # cd /root/.ssh -- 1. 生成公鑰和私鑰 # ssh-keygen -t rsa -- 接著輸入3個回車 # ls -- 2. 生成如下三個文件 id_rsa(私鑰) id_rsa.pub(公鑰) known_hosts(記錄ssh訪問過計算機的公鑰) -- 3. 合并公鑰(需要將所有的虛擬機開啟) # ssh root@hadoop105 cat ~/.ssh/id_rsa.pub > authorized_keys # ssh root@hadoop104 cat ~/.ssh/id_rsa.pub > authorized_keys # ssh root@hadoop103 cat ~/.ssh/id_rsa.pub > authorized_keys # ssh root@hadoop102 cat ~/.ssh/id_rsa.pub > authorized_keys -- 4. 把hadoop105 的 authorized_keys、known_hosts 復制到hadoop102、 -- hadoop103、hadoop104的 /root/.ssh 目錄 # scp authorized_keys root@hadoop102:/root/.ssh/ # scp authorized_keys root@hadoop103:/root/.ssh/ # scp authorized_keys root@hadoop104:/root/.ssh/ # scp known_hosts root@hadoop102:/root/.ssh/ # scp known_hosts root@hadoop103:/root/.ssh/ # scp known_hosts root@hadoop104:/root/.ssh/ -- 5. 測試,完成上面的配置后,四臺虛擬機可以相互訪問 # ssh hadoop102 # ssh hadoop103 # ssh hadoop104 # ssh hadoop105 ``` 9. 刪除hadoop105上殘留的HDFS文件 ```xml -- 我將HDFS運行時生成的文件放在data目錄下 # rm -rf /opt/install/hadoop/data ``` **二:添加新節點** 下面沒有特別說明,都是在hadoop105機器上操作。 我的hadoop安裝目錄在 /opt/install/hadoop 目錄,所以所有已有的配置文件都在 /opt/install/hadoop/etc/hadoop/ 目錄下 1. 創建 /opt/install/hadoop/etc/hadoop/dfs.hosts 文件并添加所有主機名 ```xml # touch /opt/install/hadoop/etc/hadoop/dfs.hosts -- 在新建的dfs.hosts文件中添加所有主機名 hadoop102 hadoop103 hadoop104 hadoop105 ``` 2. 在 hdfs-site.xml 文件添加dfs.hosts屬性 ```xml <property> <name>dfs.hosts</name> <value>/opt/install/hadoop/etc/hadoop/dfs.hosts</value> </property> ``` 3. 切換到hadoop102刷新節點 ```xml -- 切換到hadoop102的hadoop安裝目錄 # cd /opt/install/hadoop -- 刷新namenode節點 # hdfs dfsadmin -refreshNodes -- 更新resourcemanager節點 # yarn rmadmin -refreshNodes ``` 4. 在hadoop002的 /opt/install/hadoop/etc/hadoop/slaves 文件中新增hadoop105節點 ```xml hadoop102 hadoop103 hadoop104 hadoop105 ``` 5. 切換到hadoop105進行測試 ```xml -- 切換到hadoop安裝目錄 # cd /opt/install/hadoop -- 啟動hadoop105的datanode節點 # sbin/hadoop-daemon.sh start datanode -- 啟動hadoop105的nodemanager節點 # sbin/yarn-daemon.sh start nodemanager ``` 瀏覽器訪問: 6. 切換到hadoop102執行面命令實現數據均衡 ```xml -- 切換到hadoop安裝目錄 # cd /opt/install/hadoop # sbin/start-balancer.sh ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看