Hadoop 2.6 叢集搭建從零開始之3 Hadoop的安裝與配置(偽分散式環境)

土豆拍死馬鈴薯發表於2017-09-16

Hadoop的下載官網為

http://hadoop.apache.org/releases.html


1.使用wget http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz命令下載hadoop 2.6.5

例如我這裡下載到了/chenjie下


2.使用 tar -zxvf hadoop-2.6.5.tar.gz命令解壓此壓縮包


此時出現/chenjie/hadoop-2.6.5資料夾

3.修改hosts:新增主機名和IP的對應,目的是為了使用主機名的時候能夠定位(通過IP)到不同的機器。

【注:如何檢視某一虛擬機器的IP】


通過檢視設定,網路

知道pc1的IP地址為192.168.153.131

pc2的IP地址為192.168.153.132

  • 把機器的IP和主機名對應填入hosts檔案,例項如下所示。填寫完之後儲存退出。
以下是pc1的hosts檔案


在pc1下輸入ping pc2 看是否能解析到其地址:


能解析到即可。


4.配置SSH免密碼登入,目的是使主結點pc1能夠免密碼呼叫pc2 以及後面可能的其它從結點,以啟動服務

sudo apt-get update //更新源
2 sudo apt-get install openssh-server //安裝ssh伺服器
3 sudo ps -e |grep ssh //檢視ssh服務是否啟動
4 sudo service ssh start //開啟ssh服務
5 ssh-keygen -t rsa //生成公鑰金鑰 一路enter就行了
6 cat /home/chenjie/.ssh/id_rsa.pub >>/home/chenjie/.ssh/authorized_keys //將公鑰新增到使用者公鑰檔案

此時會將pc1的公鑰複製進pc1的認證檔案(authorized_keys)中

對pc2進行同樣的操作

將pc1、pc2的認證檔案合併

例如:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQColBSRQ/YmsdBPpvwOryXVQEhyKh7UACLcZNKuJ95DmJSjrGqvt7fFP25CBk4+LyGUNhYpK8NOfX59RpbqcBbgxsm1EORK6KaFcEg5IklxHLHitptJkBSXGIcD4W1mvZnDwF1JV5W4EYs/Bb8oLgd2KrhvIEgBdqFZ621A3F8SHx4D77dlT9JPssxOQ5CKKW5wX/kogrkwO51Ys2MvnZASnc/+FGsPHs4HyFFNKJTWnWgAL/CovmkGc2C87F43FbCtWdRWP5XS0GtXdb6+kMZTr7C8okgSu/ZZpSWUdDQ0i+Xuq9zY5Lk4rJ2jdRPTpRTTHa3EIkqQNvM/oUarMeuJ chenjie@pc2
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/dR8PSkhpZRWET52wJ4S5YU07vvtqPKrqzTWWvwuOR2pw1eSxaj+QVc114iDklZfuHVwhFUClovZOg15fRdgCSyeLQRHem+UkUCCf351IPpoNLwM/716yWWb7R8sb1ERsVMguhp1QjaiSZ80yTYNm4LtxQpKs/u2Ox5LAZCHdtgP5cyjJrsJPPWSJV/IzsQETJPmUQlU0WpLqRD96LHh4aAk0rikxo/GFJPfM6W6ysCwGk+1W8QZGVvK/j4dQBSLim/rIGi6UC5sNW7c8/9/hzl2WPsPUnAOZVATnSfnSwUZA/SVad5XUkIikiT+faP7da9OJZlaZVlA5bNb9F/vN chenjie@pc3
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDeMHsJm25FcNuY7dAsgRuT/FCXf7sBsf20ND09CSu4nTcFzJVK4/t8LMDt3gEKE63Uv4i5gKgDORDyZJPSrSKG+vkGKwInEaZW8jYLcCJy+wC6rJmAkYBfF9m4cx1qg06rUeEykWT9wr0qr5CX8CL19I/sBn70P95MafgOJ3PUczM14S8kwO6IpYbDoUTkoSoA1aflAmo4m8MGUjzF1UU/Jer2ccfTnIIw+H20GVOG4gxW7YmsDtULmA3BqnewGatHZhxwjk+MmeeMqc92y/l0GY4wWmibd5ZbBO/yalXmMhrbf7HtTPg2TtA0HtrCNhbqOJwE7h67B4oMadI7HipH chenjie@pc4

也就是說將pc2的公鑰放進pc1的認證檔案種

cd .ssh

cat cat authorized_keys

vim cat authorized_keys

複製貼上

驗證成功方法,在pc1中輸入 ssh pc2 能夠登入到pc2


或者採用命令列的方式:使用命令傳送公鑰給其它結點

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.91.135

5.配置hadoop環境變數(請把圖中的2.8.1改為2.6.5)


export HADOOP_HOME=/chenjie/hadoop-2.8.1
export CLASSPATH=.:$HADOOP_HOME/lib:$CLASSPATH
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_ROOT_LOGGER=INFO,console
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

  • 儲存退出,輸入 source /etc/profile 
使其生效

6.配置hadoop配置檔案

到hadoop目錄的/etc/hadoop下


配置hadoop-env.sh,只需要加上一行

export JAVA_HOME=/.... 這裡填JAVA的安裝根目錄 

配置

  • core-site.xml:
  • <configuration>
            <property>
              <name>fs.defaultFS</name>
              <value>hdfs://pc1:9000</value>
            </property>
            <!-- Size of read/write buffer used in SequenceFiles. -->
            <property>
               <name>io.file.buffer.size</name>
               <value>4096</value>
           </property>
            <!-- 指定hadoop臨時目錄,自行建立 -->
            <property>
                <name>hadoop.tmp.dir</name>
                <value>/chenjie/hadoop-2.6.5/tmp</value>
            </property>
    </configuration>
配置hdfs-site.xml
<configuration>
 <!-- 備份數:預設為3-->
     <property>
        <name>dfs.replication</name>
         <value>1</value>
     </property>


 <!-- namenode-->
     <property>
         <name>dfs.namenode.name.dir</name>
         <value>/chenjie/hadoop-2.6.5/hdfs/name</value>
     </property>
<!-- datanode-->
     <property>
         <name>dfs.datanode.data.dir</name>
         <value>/chenjie/hadoop-2.6.5/hdfs/data</value>
     </property>
    <!--許可權控制:false:不做控制即開放給他使用者訪問 -->
     <property>
         <name>dfs.permissions</name>
         <value>false</value>
     </property>
</configuration>

配置mapred-site.xml
<configuration>
    <!-- mapreduce任務執行框架為yarn-->
    <property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>
    </property>
</configuration>
配置yarn-site.xml
<configuration>
<property>
        <description>The hostname of the RM.</description>
          <name>yarn.resourcemanager.hostname</name>
         <value>pc1</value>
     </property>




      <property>
                 <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
       </property>
</configuration>
配置slaves為pc1(因為是偽分佈環境,本機也作為從結點)
pc1

7.將pc1上配置好的hadoop-2.6.5資料夾傳送給pc2
scp -r hadoop-2.6.5 root@pc2:/chenjie

8.將pc2的配置檔案/etc/profile改成跟pc1的一模一樣
9.在pc1 pc2上使用source /etc/profile使配置檔案生效
使用 hdfs namenode -format命令格式化namenode 
10。在pc1上啟動hadoop叢集

如果啟動失敗,請多次嘗試格式化Namenode

偽分散式環境下在pc1上使用jps檢視主節點程式和從結點程式


這裡提前說一下,如果是分散式環境應該是如下的:

pc1上使用jps檢視主節點程式

pc2上檢視從結點程式

輸入pc1的ip地址+8088或者50070埠檢視

11.Hadoop執行測試

使用vim chenjie.txt新建一個文字檔案,寫入任意內容,儲存退出
使用hadoop fs -mkdir /input 在HDFS重新建input資料夾
使用hadoop fs -put chenjie.txt /input將檔案上傳到input資料夾
進入hadoop資料夾的share/hadoop/mapreduce資料夾

使用hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /input /output/chenjie3 命令啟動wordcount例項程式



相關文章