1. 程式人生 > >在Redhat7中安裝Hadoop

在Redhat7中安裝Hadoop

1、安裝Linux、JDK、關閉防火牆、配置主機名          解壓:tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/     設定Hadoop的環境變數:  vi ~/.bash_profile             HADOOP_HOME=/root/training/hadoop-2.7.3             export HADOOP_HOME             PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH             export PATH         生效

        source ~/.bash_profile(在安裝hadoop之前要先安裝jdk)

2、Hadoop的目錄結構

三種安裝模式:

1.本地模式(一臺機器)

特點:沒有HDFS、只能測試MapReduce程式           MapReduce處理的是本地Linux的檔案資料

    vi hadoop-env.sh     25 export JAVA_HOME=/root/training/jdk1.8.0_144(先檢視echo $JAVA_HOME)          測試MapReduce程式:     1、建立目錄  mkdir ~/input     2、執行(只能測試mapreduce)             例子:/root/training/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar             hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount ~/input/data.txt ~/output

2.偽分佈模式(一臺機器)

    特點:是在單機上,模擬一個分散式的環境           具備Hadoop的主要功能                HDFS: namenode+datanode+secondarynamenode

    Yarn: resourcemanager + nodemanager

配置檔案如下:         hadoop-env.sh      export JAVA_HOME=/root/training/jdk1.8.0_144(也要新增jdk路徑)     hdfs-site.xml

                        (原則:一般資料塊的冗餘度跟資料節點(DataNode)的個數一致;最大不超過3)             <!--表示資料塊的冗餘度,預設:3-->             <property>                <name>dfs.replication</name>                <value>1</value>             </property>                              先不設定             <!--是否開啟HDFS的許可權檢查,預設true-->             <property>                <name>dfs.permissions</name>                <value>false</value>             </property>              core-site.xml             <!--配置NameNode地址,9000是RPC通訊埠-->             <property>                <name>fs.defaultFS</name>                <value>hdfs://bigdata111:9000</value>             </property>    

            <!--HDFS資料儲存在Linux的哪個目錄,預設值是Linux的tmp目錄-->             <property>                <name>hadoop.tmp.dir</name>                <value>/root/training/hadoop-2.7.3/tmp</value>             </property>                          mapred-site.xml 預設沒有 cp mapred-site.xml.template mapred-site.xml         <!--MR執行的框架-->         <property>            <name>mapreduce.framework.name</name>            <value>yarn</value>         </property>                      yarn-site.xml         <!--Yarn的主節點RM的位置-->         <property>            <name>yarn.resourcemanager.hostname</name>            <value>bigdata111</value>         </property>    

        <!--MapReduce執行方式:shuffle洗牌-->         <property>            <name>yarn.nodemanager.aux-services</name>            <value>mapreduce_shuffle</value>         </property>    

在配置好後需要格式化:HDFS(NameNode)        命令: hdfs namenode -format                  日誌:         Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.

    啟動停止Hadoop的環境         start-all.sh         stop-all.sh              訪問:通過Web介面(在訪問web頁面時要先關閉防火牆或者開啟防火牆的下面兩個埠,防火牆關閉命令為systemctl                           stop firewalld.service

              systemctl disable firewalld.service)

            web頁面

                 HDFS:  http://192.168.157.111:50070         Yarn:  http://192.168.157.111:8088

3.全分佈模式

特點:正在的分散式環境,用於生產     做好規劃          1、準備工作         (*)關閉防火牆               systemctl stop firewalld.service               systemctl disable firewalld.service                        (*)安裝JDK         (*)配置主機名  vi /etc/hosts                 192.168.157.112 bigdata112                 192.168.157.113 bigdata113                 192.168.157.114 bigdata114                          (*)配置免密碼登入:兩兩之間的免密碼登入             (1) 每臺機器產生自己的公鑰和私鑰                     ssh-keygen -t rsa                                  (2) 每臺機器把自己的公鑰給別人                     ssh-copy-id -i .ssh/id_rsa.pub [email protected]                     ssh-copy-id -i .ssh/id_rsa.pub [email protected]                     ssh-copy-id -i .ssh/id_rsa.pub [email protected]              (*)保證每臺機器的時間同步(建議直接在虛擬機器上直接設定同步主機時間)                 如果時間不一樣,執行MapReduce程式的時候可能存在問題          2、在主節點上(bigdata112)安裝         (1)解壓設定環境變數             tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/                          設定:112 113 114             HADOOP_HOME=/root/training/hadoop-2.7.3             export HADOOP_HOME             PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH             export PATH                      (2) 修改配置檔案             hadoop-env.sh                     export JAVA_HOME=/root/training/jdk1.8.0_144             hdfs-site.xml                 <!--表示資料塊的冗餘度,預設:3-->                 <property>                    <name>dfs.replication</name>                    <value>2</value>                 </property>                          core-site.xml                 <!--配置NameNode地址,9000是RPC通訊埠-->                 <property>                    <name>fs.defaultFS</name>                    <value>hdfs://bigdata112:9000</value>                 </property>    

                <!--HDFS資料儲存在Linux的哪個目錄,預設值是Linux的tmp目錄-->                 <property>                    <name>hadoop.tmp.dir</name>                    <value>/root/training/hadoop-2.7.3/tmp</value>                 </property>                                  mapred-site.xml 預設沒有 cp mapred-site.xml.template mapred-site.xml

                <!--MR執行的框架-->                 <property>                    <name>mapreduce.framework.name</name>                    <value>yarn</value>                 </property>                  yarn-site.xml                      <!--Yarn的主節點RM的位置-->                 <property>                    <name>yarn.resourcemanager.hostname</name>                    <value>bigdata112</value>                 </property>    

                <!--MapReduce執行方式:shuffle洗牌-->                 <property>                    <name>yarn.nodemanager.aux-services</name>                    <value>mapreduce_shuffle</value>                 </property>                              slaves             bigdata113             bigdata114                      (3) 格式化NameNode: hdfs namenode -format         (4) 把主節點上配置好的hadoop複製到從節點上                 scp -r hadoop-2.7.3/ [email protected]:/root/training(解壓後的hadoop的存放目錄)                 scp -r hadoop-2.7.3/ [email protected]:/root/training

        (5) 在主節點上啟動  start-all.sh

啟動後輸入jps,發現有jps,namenode,datanode,secondrynamenode,resourcemaner,nodemanger,則為正常啟動 ---------------------  作者:博得不在  來源:CSDN  原文:https://blog.csdn.net/xxw_sample/article/details/80139489  版權宣告:本文為博主原創文章,轉載請附上博文連結!