歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 在Ubutun 14.04 Desktop LTS上部署Hadoop 2.7.1(偽分布式)

在Ubutun 14.04 Desktop LTS上部署Hadoop 2.7.1(偽分布式)

日期:2017/3/1 12:25:52   编辑:關於Linux
1、安裝Ubutun 14.04 Desktop LTS 下載ISO文件,ubuntu-14.04.1-desktop-amd64.iso。 在Virtualbox或者VmWare中新建虛擬機,將ISO文件設置為啟動光盤。 一路下一步,在需要輸入用戶的地方,輸入用戶名hduser,直到系統安裝完成。 重啟虛擬機,使用hduser登錄系統。設置root的密碼,輸入sudo passwd命令: hduser@hduser-VirtualBox:~$ sudo passwd [sudo] password for hduser: (輸入自己的密碼) 輸入新的 UNIX 密碼: (設置root密碼) 重新輸入新的 UNIX 密碼:(再次設置root密碼) passwd:已成功更新密碼 為了便於後面操作,在ubuntu內安裝增強功能(virtualbox增強功能或者vmtools) 添加用戶到sudo組: 命令:sudo adduser hduser sudo。如果用戶已經在此組內會提示。 添加組hadoop,並將hduser添加至組hadoop(groups命令可以查看用戶所在的組): su addgroup hadoop usermod -a -G hadoop hduser 2、配置ssh免密碼登錄 安裝ssh server:sudo apt-get install openssh-server cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh localhost ssh-keygen -t rsa # 會有提示,都按回車就可以 cat id_rsa.pub >> authorized_keys # 加入授權 使用ssh localhost試試能否直接登錄 3、配置JDK 到Oracle官網下載JDK1.7,http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html。下載jdk-7u79-linux-x64.tar.gz。 由於准備將JDK安裝至/usr/lib/jvm下,所以先到/usr/lib/目錄下建立jvm文件夾 cd /usr/lib/ sudo mkdir jvm 解壓下載的安裝包至jvm文件夾(jdk1.7.0_79) sudo tar zxvf /home/hduser/桌面/jdk-7u79-linux-x64.tar.gz -C /usr/lib/jvm 設置JAVA_HOME: nano ~/.bashrc 在第一行前面增加:export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79,保存退出。 使設置立即生效:source ~/.bashrc 測試JAVA_HOME是否設置成功,輸出了上面設置的路徑表示成功: echo $JAVA_HOME 4、安裝Hadoop2.7.1 下載文件,http://hadoop.apache.org/releases.html,選擇2.7.1的binary格式下載。文件名為:hadoop-2.7.1.tar.gz。 我們選擇將 Hadoop 安裝至/usr/local/ sudo tar -zxvf /home/hduser/桌面/hadoop-2.7.1.tar.gz -C /usr/local cd /usr/local/ sudo mv ./hadoop-2.7.1/ ./hadoop # 將文件夾名改為hadoop sudo chown -R hduser ./hadoop # 修改文件權限 測試安裝是否成功,如果出現命令幫助表示成功:/usr/local/hadoop/bin/hadoop 配置環境變量 nano ~/.bashrc 打開界面後,在之前配置的JAVA_HOME後面輸入: export HADOOP_INSTALL=/usr/local/hadoop export PATH=$PATH:$HADOOP_INSTALL/bin export PATH=$PATH:$HADOOP_INSTALL/sbin export HADOOP_MAPRED_HOME=$HADOOP_INSTALL export HADOOP_COMMON_HOME=$HADOOP_INSTALL export HADOOP_HDFS_HOME=$HADOOP_INSTALL export YARN_HOME=$HADOOP_INSTALL 使設置立即生效:source ~/.bashrc 檢查是否安裝成功,執行命令,如果出現命令幫助表示成功:hdfs 5、配置偽分布式 切換至配置文件目錄: cd /usr/local/hadoop/etc/hadoop 配置 core-site.xml,執行命令:nano core-site.xml。將文件中的<configuration></configuration>替換為:
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

配置 hdfs-site.xml,執行命令:nano hdfs-site.xml,修改為:
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

關於Hadoop配置項的一點說明: 雖然只需要配置 fs.defaultFS 和 dfs.replication 就可以運行(官方教程如此),不過若沒有配置 hadoop.tmp.dir 參數,則默認使用的臨時目錄為 /tmp/hadoo-hadoop,而這個目錄在重啟時有可能被系統清理掉,導致必須重新執行 format 才行。所以我們進行了設置,同時也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否則在接下來的步驟中可能會出錯。 配置yarn-site.xml,執行命令:nano yarn-site.xml,修改為:
<configuration>
  <property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
  </property>
  <property>
   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
   <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
</configuration>

配置mapred-site.xml 從模板文件復制一個xml,執行命令:mv mapred-site.xml.template mapred-site.xml 執行命令:nano mapred-site.xml 將文件修改為
<configuration>
  <property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
  </property>
</configuration>

配置完成後,執行格式化:hdfs namenode -format。倒數第五行出現Exitting with status 0 表示成功,若為 Exitting with status 1 則是出錯。 啟動hadoop所有的進程: start-all.sh 查看各個進程是否正常啟動,執行:jps。如果一切正常,將看到下列結果: 2583 DataNode 2970 ResourceManager 3461 Jps 3177 NodeManager 2361 NameNode 2840 SecondaryNam 【注意】若執行jps後提示: 程序 'jps' 已包含在下列軟件包中: * default-jdk * ecj * gcj-4.6-jdk * openjdk-6-jdk * gcj-4.5-jdk * openjdk-7-jdk 請嘗試:sudo apt-get install <選定的軟件包> 那麼請執行下面命令,手動設置系統默認JDK: sudo update-alternatives --install /usr/bin/jps jps /usr/lib/jvm/jdk1.7.0_79/bin/jps 1 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_79/bin/javac 300 sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_79/bin/java 300
Copyright © Linux教程網 All Rights Reserved