日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop 2.2.0 集群搭建

發布時間:2025/3/20 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop 2.2.0 集群搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

在前面我有寫過關于 Hadoop 集群的搭建,不過之前的 Hadoop 是 1.x 版本的。目前是基于 2.x 版本的 Hadoop,與之前的 1.x 版本的差別還是挺大的。以及更為詳細的 SSH 免密碼互連登錄的配置過程。所以,這里也把我搭建的過程記錄下來了。希望于你有益。


版權說明

著作權歸作者所有。
商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
本文作者:Q-WHai
發表日期: 2016年5月4日
本文鏈接:http://blog.csdn.net/lemon_tree12138/article/details/51316883
來源:CSDN
更多內容:分類 >> 大數據之 Hadoop


目錄

文章目錄

  • 概述
  • 版權說明
  • 目錄
    • @[toc]
  • 環境說明
  • 系統環境準備
    • 關閉防火墻
    • 禁用 IPv6
    • 禁用 SELinux
    • 修改 hosts
  • Oracle JDK 1.8 安裝
  • 配置 SSH
    • 下載安裝
    • 驗證
    • 創建目錄
    • 修改配置文件
    • 重啟 ssh
    • 創建密鑰
    • 公鑰下發
    • 創建認證文件
    • 登錄驗證
    • 補充
  • Hadoop 配置
    • 下載安裝
    • 配置文件
      • /etc/profile
      • ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh
      • ${HADOOP_HOME}/etc/hadoop/yarn-env.sh
      • ${HADOOP_HOME}/etc/hadoop/core-site.xml
      • ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml
      • ${HADOOP_HOME}/etc/hadoop/mapred-site.xml
      • ${HADOOP_HOME}/etc/hadoop/yarn-site.xml
      • ${HADOOP_HOME}/etc/hadoop/slaves
    • 下發
    • 啟動及驗證
      • 格式化 HDFS
      • 啟動 HDFS
      • 啟動 Yarn
      • 啟動全部
      • 驗證
      • 關閉全部
  • Ref
  • 征集

環境說明

  • CentOS-6.7 ( master )
  • CentOS-6.7 ( slave1 )
  • CentOS-6.7 ( slave2 )
  • JDK-1.8.0_92 ( Oracle )
  • Hadoop-2.2.0
  • 虛擬機環境: VirtualBox 5.0

  • 系統環境準備

    關閉防火墻

    $ sudo service iptables stop $ sudo chkconfig iptables off # 設置防火墻不隨系統啟動,這一條你可以選擇性添加

    禁用 IPv6

    $ sudo vim /etc/modprobe.d/dist.conf

    添加如下內容

    alias net-pf-10 off alias ipv6 off

    重啟后驗證操作

    $ lsmod|grep ipv6

    禁用 SELinux

    $ sudo vim /etc/selinux/config

    修改后的內容如下:

    # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded.# SELINUX=enforcing SELINUX=disabled# SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted

    修改 hosts

    (1) hostname

    $ sudo vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=master GATEWAY=172.16.2.20

    (2)

    $ sudo vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6172.16.2.144 master 172.16.2.171 slave1 172.16.2.91 slave2

    Oracle JDK 1.8 安裝

    關于 Java 的安裝,你可以有兩種選擇。一是 openjdk,另一個就是 Oracle jdk。這里我選擇的是 Oracle jdk,而推薦的也是 Oracle jdk。
    安裝過程很簡單,這里就不贅述了。


    配置 SSH

    配置 SSH 的目的在于實現集群中的機器可以免密碼相互登錄。

    下載安裝

    $ sudo yum -y install openssh-server $ sudo yum -y install openssh-clients

    這里的 openssh-clients 不是必須安裝的。如果你安裝 ssh-server 完成之后,運行 ssh 出現系統無法識別 ssh 的話,需要另外安裝 openssh-clients。

    驗證

    OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013 Bad escape character 'rsion'.

    如果 SSH 安裝成功,驗證時會出現類似上面的版本信息。

    創建目錄

    $ mkdir -p ~/.ssh $ chmod 700 ~/.ssh

    如果你在安裝完SSH后,這些目錄都未自動生成,請自行創建。如果要免密碼登錄,.ssh 文件夾的權限也要修改。

    修改配置文件

    執行如下指令:

    $ sudo vim /etc/ssh/sshd_config

    在文件中找到如下內容,將內容前面的注釋去掉。如果沒有,就自己添加吧。

    RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys

    這一步是至關重要的,如果沒有這一步,那么只能免密碼登錄本機,而無法免密碼登錄其他的機子了。
    這里比如,如果你想讓 master 主機免密碼登錄 slave 主機,那么就要修改 master 主機的配置文件。

    重啟 ssh

    $ sudo service sshd restart

    由于修改了 ssh 的配置文件,所以這里必須重啟 ssh 服務才能生效。

    創建密鑰

    $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

    指令的相關參數說明如下:

    ssh-keygen 表示生成密鑰 -t 表示指定生成的密鑰類型 dsa 是dsa密鑰認證的意思,即密鑰類型 -P 提供密語 -f 指定生成的密鑰文件

    公鑰下發

    $ scp id_dsa.pub slave1:~/.ssh/

    這里是將 master 的公鑰下發到 slave 機群中。在第一次下發的時候,會有一些連接提示及密碼提示。

    創建認證文件

    $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys

    將 master 主機上的公鑰添加到用于認證的公鑰文件中,authorized_keys 是用于認證的公鑰文件。并修改 認證文件的權限。
    此步驟是在 slave 機上完成。

    登錄驗證

    [hadoop@master .ssh]$ ssh slave1 Last login: Thu Apr 28 15:17:57 2016 from master [hadoop@slave1 ~]$

    補充

    上面的過程只是單向的免密碼登錄。如果想要兩兩相互免密碼登錄,則需要集群中的所有機器都有其他機器的公鑰。而具體操作也很簡單,這里就不贅述了。


    Hadoop 配置

    下載安裝

    這里可以在 Apache 的官網上下載,如果官網已經下架,就去百度或是 Google 里找,總會有的。
    將下載下來的 Hadoop-2.2.0 用 WinSCP 上傳到虛擬機上(當然你也可以直接在虛擬機里下載),解壓,并重命名為 hadoop。

    $ tar -zxvf hadoop-2.2.0.tar.gz $ mv hadoop-2.2.0 hadoop $ cd hadoop $ chmod -Rv 755 ./bin/ $ chmod -Rv 755 ./sbin/$ mkdir -p /home/hadoop/dfs/name $ mkdir -p /home/hadoop/dfs/data $ mkdir -p /home/hadoop/hadoop/tmp

    上面對兩個文件夾進行權限修改,是因為在這兩個文件里有一些可執行文件,如果不修改他們的執行權限,那在啟動時就會有權限限制。

    配置文件

    對于上面的下載安裝步驟,基本已經 ok,不過如果想要正常使用,還是要配置,而 Hadoop 環境部署的核心就是此處的配置文件。
    需要修改的配置文件列表如下:

  • /etc/profile
  • ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh
  • ${HADOOP_HOME}/etc/hadoop/yarn-env.sh
  • ${HADOOP_HOME}/etc/hadoop/core-site.xml
  • ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml
  • ${HADOOP_HOME}/etc/hadoop/mapred-site.xml
  • ${HADOOP_HOME}/etc/hadoop/yarn-site.xml
  • ${HADOOP_HOME}/etc/hadoop/slaves
  • /etc/profile

    這是系統里的環境變量配置文件。配置此項目的目的是在于方便在任意目錄都可以使用 Hadoop/bin 里的可執行文件(當然你也可以把 $HADOOP_HOME/sbin 加進去)。

    export HADOOP_HOME=/home/hadoop/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh

    在環境變量配置文件的合適位置添加如下 JAVA_HOME 信息:

    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_92

    ${HADOOP_HOME}/etc/hadoop/yarn-env.sh

    在環境變量配置文件的合適位置添加如下 JAVA_HOME 信息:

    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_92

    ${HADOOP_HOME}/etc/hadoop/core-site.xml

    <configuration><property><name>fs.default.name</name><value>hdfs://master:9000</value></property><property><name>hadoop.tmp.dir</name><value>file:/home/hadoop/hadoop/tmp</value></property></configuration>

    ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml

    <configuration><property><name>dfs.namenode.secondary.http-address</name><value>master:50090</value></property><property><name>dfs.namenode.name.dir</name><value>file:/home/hadoop/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/home/hadoop/dfs/data</value></property><property><name>dfs.replication</name><value>2</value></property><property><name>dfs.support.append</name><value>true</value></property></configuration>

    dfs.replication 的值一般設為 3,但我們只有兩個 Slave 節點,所以 dfs.replication 的值重置為 2。

    ${HADOOP_HOME}/etc/hadoop/mapred-site.xml

    <configuration><property><name>mapreduce.job.tracker</name><value>hdfs://master:9001</value></property><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>master:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>master:19888</value></property></configuration>

    需要先重命名,默認文件名為 mapred-site.xml.template.

    ${HADOOP_HOME}/etc/hadoop/yarn-site.xml

    <configuration><property><name>yarn.resourcemanager.hostname</name><value>master</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>

    需要先重命名,默認文件名為 yarn-site.xml.template.

    ${HADOOP_HOME}/etc/hadoop/slaves

    slave1 slave2

    下發

    這里說的下發就是把配置好的 hadoop,復制到另外兩臺 Slave 機中。下發的操作是基于 SSH 的,如下:

    $ scp -r ~/hadoop slave1:~/ $ scp -r ~/hadoop slave2:~/

    啟動及驗證

    格式化 HDFS

    在啟動 Hadoop 之前,我們需要先格式化 HDFS。如下:

    $ hadoop namenode –format

    對于正常格式化的操作,這里會顯示如下輸出:

    DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it.16/05/04 10:15:38 INFO namenode.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: host = master/172.16.2.117 STARTUP_MSG: args = [-format] STARTUP_MSG: version = 2.2.0 STARTUP_MSG: classpath = /home/hadoop/hadoop/etc/hadoop: ( ... 此處省略 N 條 ... ) :/home/hadoop/hadoop/contrib/ capacity-scheduler/*.jar STARTUP_MSG: build = Unknown -r Unknown; compiled by 'root' on 2013-11-22T03:4 1Z STARTUP_MSG: java = 1.8.0_92 ************************************************************/( ... 此處省略 N 條 ... ) 16/05/04 10:15:45 INFO common.Storage: Storage directory /home/hadoop/dfs/name has been successfully formatted. 16/05/04 10:15:45 INFO namenode.FSImage: Saving image file /home/hadoop/dfs/name/current/fsimage.ckpt_0000000000000000000 using no compression 16/05/04 10:15:45 INFO namenode.FSImage: Image file /home/hadoop/dfs/name/current/fsimage.ckpt_0000000000000000000 of size 198 bytes saved in 0 seconds. 16/05/04 10:15:45 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0 16/05/04 10:15:45 INFO util.ExitUtil: Exiting with status 0 16/05/04 10:15:45 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at master/172.16.2.117 ************************************************************/

    啟動 HDFS

    $ ${HADOOP_HOME}/sbin/start-dfs.sh

    對于正常的啟動來說,會有類似如下的輸出內容:

    Starting namenodes on [master] The authenticity of host 'master (172.16.2.144)' can't be established. RSA key fingerprint is 98:4f:21:03:76:e2:e9:96:77:3e:88:c5:88:70:04:cf. Are you sure you want to continue connecting (yes/no)? yes master: Warning: Permanently added 'master,172.16.2.144' (RSA) to the list of kn own hosts. master: starting namenode, logging to /home/hadoop/hadoop/logs/hadoop-hadoop-nam enode-master.out hadoop@slave1's password: hadoop@slave2's password: slave1: starting datanode, logging to /home/hadoop/hadoop/logs/hadoop-hadoop-dat anode-slave1.outslave2: starting datanode, logging to /home/hadoop/hadoop/logs/hadoop-hadoop-dat anode-slave2.out Starting secondary namenodes [master] master: starting secondarynamenode, logging to /home/hadoop/hadoop/logs/hadoop-h adoop-secondarynamenode-master.out

    啟動 Yarn

    $ ${HADOOP_HOME}/sbin/start-yarn.sh

    對于正常的啟動來說,會有類似如下的輸出內容:

    starting yarn daemons starting resourcemanager, logging to /home/hadoop/hadoop/logs/yarn-hadoop-resourcemanager-master.out hadoop@slave2's password: hadoop@slave1's password: slave2: starting nodemanager, logging to /home/hadoop/hadoop/logs/yarn-hadoop-nodemanager-slave2.outslave1: starting nodemanager, logging to /home/hadoop/hadoop/logs/yarn-hadoop-nodemanager-slave1.out

    啟動全部

    $ ${HADOOP_HOME}/sbin/start-all.sh

    對于正常的啟動來說,會有類似如下的輸出內容:

    [hadoop@master hadoop]$ ./sbin/start-all.sh This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh Starting namenodes on [master] master: starting namenode, logging to /home/hadoop/hadoop/logs/hadoop-hadoop-namenode-master.out slave2: starting datanode, logging to /home/hadoop/hadoop/logs/hadoop-hadoop-datanode-slave2.out slave1: starting datanode, logging to /home/hadoop/hadoop/logs/hadoop-hadoop-datanode-slave1.out Starting secondary namenodes [master] master: starting secondarynamenode, logging to /home/hadoop/hadoop/logs/hadoop-hadoop-secondarynamenode-master.out starting yarn daemons starting resourcemanager, logging to /home/hadoop/hadoop/logs/yarn-hadoop-resourcemanager-master.out slave2: starting nodemanager, logging to /home/hadoop/hadoop/logs/yarn-hadoop-nodemanager-slave2.out slave1: starting nodemanager, logging to /home/hadoop/hadoop/logs/yarn-hadoop-nodemanager-slave1.out

    驗證

    (1) 驗證啟動的進程

    $ jps

    Master 端

    [hadoop@master hadoop]$ jps 3202 Jps 2923 ResourceManager 2795 SecondaryNameNode 2637 NameNode

    Slave 端

    [hadoop@slave1 ~]$ jps 2256 DataNode 2419 Jps 2319 NodeManager

    (2) 網頁驗證

    # 查看 HDFS 登錄瀏覽器,輸入 http://master:50070# 查看 RM 登錄瀏覽器,輸入 http://master:8088

    關閉全部

    $ ${HADOOP_HOME}/sbin/stop-all.sh

    對于正常的啟動來說,會有類似如下的輸出內容:

    [hadoop@master hadoop]$ ${HADOOP_HOME}/sbin/stop-all.sh This script is Deprecated. Instead use stop-dfs.sh and stop-yarn.sh Stopping namenodes on [master] master: stopping namenode slave2: stopping datanode slave1: stopping datanode Stopping secondary namenodes [master] master: stopping secondarynamenode stopping yarn daemons no resourcemanager to stop slave2: no nodemanager to stop slave1: no nodemanager to stop no proxyserver to stop

    Ref

    • http://blog.csdn.net/liyong199012/article/details/24019333
    • http://shiyanjun.cn/archives/561.html

    征集

    如果你也需要使用ProcessOn這款在線繪圖工具,可以使用如下邀請鏈接進行注冊:
    https://www.processon.com/i/56205c2ee4b0f6ed10838a6d

    總結

    以上是生活随笔為你收集整理的Hadoop 2.2.0 集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。