在Linux上搭建Hadoop

在Linux上搭建Hadoop集羣搭建筆記

一、安裝虛擬機

下載軟件:
VMware workstation CentOS 鏡像html

具體過程可見:安裝虛擬機java

二、遠程鏈接

下載軟件並安裝
Xshell6(登錄到遠程的虛擬機)  http://www.netsarang.com/products/xsh_overview.html
xftp6 (遠程文件傳輸) http://www.netsarang.com/products/xfp_overview.htmlnode

注:6是版本號
(1)打開Xshell
(2)輸入會話名稱和ip地址
   在右下角的位置將虛擬機的網絡鏈接改成橋接模式且選中「複製網絡鏈接狀態」搭建起局域網
   重啓網絡 service network restart
   查看IP地址:ifconfig
   輸入會話名稱(自定義)和主機(ip地址),點擊肯定linux

(3)點擊新建的會話在輸入的對話框中輸入密碼
 注意編碼格式爲utf-8
(4)、點擊工具欄上的新建文件傳輸,能夠打開xftp,進入相應的文件目錄,拖動文件便可將本機的文件傳輸到linux虛擬機上 git

三、在Linux上搭建Hadoop集羣

(1)下載jdk,在官網下載,下載rpm的包
(2)hadoop包的下載,官網上下載
   download hadoop->release->mirror site(鏡像站)->隨便選擇離本身近的(HTTP下的第一個)->選擇2.7.2->下載.tar.gz
(3)將兩個包遠程傳輸到linux虛擬機中
(4)將主機名和ip地址進行適配,讓咱們的ip地址和主機名(如bigdata)相匹配:寫到/etc/hosts裏面
   vi /etc/hosts
   按「i」進入插入狀態    將原有的地址註釋掉
   在新的一行輸入:ip地址 主機名(如172.17.171.42 bigdata)(注:能夠雙擊xshell的窗口再打開一個鏈接窗口,能夠在新的窗口查詢ip地址並進行復制)
   按「Esc」退出插入狀態
   輸入:wq保存退出
   修改完以後能夠輸入hostname回車,查看是否成功
   reboot:重啓,使得剛剛的修改生效
(5)將包放到opt下:cp hadoop-2.7.2.tar.gz /opt/
           cp jdk-8u111-linux-x64.rpm /opt/
   進入opt:cd /opt/
   查看opt下的文件:ll
(6)安裝jdk,配置jdk的環境變量
   安裝命令:rpm -ivh jdk-Bu101-linux-x64.rpm
   配置環境變量:進入profile進行編輯:vi /etc/profile
         並按照上面的方式在最後寫入並保存:JAVA_HOME=/usr/java/default/(/usr/java/default/是jdk的安裝目錄)
   打印JAVA_HOME檢驗是否配置好:echo $JAVA_HOME結果發現打印出來的沒有內容由於咱們對/etc/profile的修改須要經過如下命令對它生效source /etc/profile。再次輸入echo $JAVA_HOME,打印結果爲/usr/java/default/
(7)驗證jdk安裝好:java -version
(8)配置SSH(免密碼登陸)
   回到根目錄:cd    安裝SSH祕鑰:ssh-keygen -t rsa會自動在/root/.shh/目錄下生成
   查看目錄:ll .ssh/有兩個新生成的文件id_rsa(私鑰),id_rsa.pub(公鑰)
   進入.ssh/:cd .ssh/
   將公鑰寫入authorized_key中:cat id_rsa.pub >> authorized_keys
   修改authorized_keys文件的權限:chmod 644 authorized_keys
   修改完後退出.ssh的目錄cd進入初始目錄輸入:ssh bigdata(bigdata爲你要遠程登陸的主機名或者ip地址)第一次登陸須要確認是否須要繼續登陸輸入yes繼續登陸
   退出exit
(9)安裝及配置hadoop
   解壓:tar zxf hadoop-2.7.2.tar.gz
   查看/opt目錄下是否已經存在解壓的文件:ll(結果爲出現hadoop-2.7.2)
   繼續查看hadoop-2.7.2裏的內容:cd hadoop-2.7.2
   配置HADOOP_HOME:修改/etc/profile
   進入hadoop的配置文件目錄cd /opt/hadoop-2.7.2/etc/hadoop/,會用的的配置文件以下:
   core-site.xml
   配置hadoop的文件系統即HDFS的端口是什麼。
   配置項1爲default.name,值爲hdfs://bigdata:9000(主機名:bigdata也可也寫成ip地址,端口9000習慣用)
   配置項2爲hadoop臨時文件,其實就是配置一個目錄,配置完後要去建立這個目錄,不然會存在問題。
   配置項3分佈式文件系統的垃圾箱,值爲4320表示3分鐘回去清理一次github

<property>
    <name>fs.default.name</name>
    <value>hdfs://bigdata:9000</value>
 </property>

 <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop-2.7.2/current/tmp</value>
 </property>
 <property>
    <name>fs.trash.interval</name>
    <value>4320</value>
 </property>

   hdfs-site.xml
   配置項1,namenode的細節實際上就是一個目錄
   配置項2,datanode的細節,真實環境中datanode的內容不須要再namenode的系統下配置,在此配置的緣由是咱們的系統是僞分佈式系統,namenode和datanode在一臺機器上
   配置項3,副本的數量,在hdfs中每一個塊有幾個副本
   配置項4,HDFS是否啓用web
   配置項5,HDFS的用戶組
   配置項6,HDFS的權限,如今配置爲不開啓權限web

<property>
   <name>dfs.namenode.name.dir</name>
   <value>/opt/hadoop-2.7.2/current/dfs/name</value>
</property>
<property>
   <name>dfs.datanode.data.dir</name>
   <value>/opt/hadoop-2.7.2/current/data</value>
</property>
<property>
   <name>dfs.replication</name>
   <value>1</value>
</property>
<property>
   <name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
  <name>dfs.permissions.superusergroup</name>
  <value>staff</value>
</property>
<property>
  <name>dfs.permissions.enabled</name>
  <value>false</value>
</property>

   建立配置文件中不存在的目錄:mkdir -p /opt/hadoop-2.7.2/current/data
                 mkdir -p /opt/hadoop-2.7.2/current/dfs/name
                 mkdir -p /opt/hadoop-2.7.2/current/tmp
   yarn-site.xml
   配置項1,resourcemanager的hostname,值爲你運行的那臺機器的主機名或IP地址
   配置項2,nodemanager相關的東西
   配置項3,nodemanager相關的東西
   配置項4,resourcemanager的端口,主機名+端口號(IP+端口)
   配置項5,resourcemanager調度器的端口
   配置項6,resourcemanager.resource-tracker,端口
   配置項7,端口
   配置項8,端口
   配置項9,日誌是否啓動
   配置項10,日誌保留的時間長短(以秒爲單位)
   配置項11,日誌檢查的時間
   配置項12,目錄
   配置項13,目錄的前綴 shell

<property>
   <name>yarn.resourcemanager.hostname</name>
   <value>bigdata</value>
</property>
<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>
<property>
   <name>yarn.resourcemanager.address</name>
   <value>bigdata:18040</value>
</property>
<property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>bigdata:18030</value>
</property>
<property>
   <name>yarn.resourcemanager.resource-tracker.address</name>
   <value>bigdata:18025</value>
</property> <property>
   <name>yarn.resourcemanager.admin.address</name>
   <value>bigdata:18141</value>
</property>
<property>
   <name>yarn.resourcemanager.webapp.address</name>
   <value>bigdata:18088</value>
</property>
<property>
   <name>yarn.log-aggregation-enable</name>
   <value>true</value>
</property>
<property>
   <name>yarn.log-aggregation.retain-seconds</name>
   <value>86400</value>
</property>
<property>
   <name>yarn.log-aggregation.retain-check-interval-seconds</name>
   <value>86400</value>
</property>
<property>
   <name>yarn.nodemanager.remote-app-log-dir</name>
   <value>/tmp/logs</value>
</property>
<property>
   <name>yarn.nodemanager.remote-app-log-dir-suffix</name>
   <value>logs</value>
</property>

   mapred-site.xml
   沒有mapred-site.xml,輸入vi mapred-按「TAB」發現有mapred-site.xml.template,對該文件進行復制
   cp mapred-site.xml.template mapred-site.xml      配置項1,mapreduce的框架
   配置項2,mapreduce的通訊端口
   配置項3,mapreduce的做業歷史記錄端口
   配置項4,mapreduce的做業歷史記錄端口
   配置項5,mapreduce的做業歷史記錄已完成的日誌目錄,在hdfs上
   配置項6,mapreduce中間完成狀況日誌目錄
   配置項7,mapreduce的ubertask是否開啓 apache

<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<property>
  <name>mapreduce.jobtracker.http.address</name>
  <value>bigdata:50030</value>
</property>
<property>
  <name>mapreduce.jobhisotry.address</name>
  <value>bigdata:10020</value>
</property>
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>bigdata:19888</value>
</property>
<property>
  <name>mapreduce.jobhistory.done-dir</name>
  <value>/jobhistory/done</value>
</property>
<property>
  <name>mapreduce.intermediate-done-dir</name>
  <value>/jobhisotry/done_intermediate</value>
</property>
<property>
  <name>mapreduce.job.ubertask.enable</name>
  <value>true</value>
</property>

   slavescanvas

bigdata

   hadoop-env.sh

JAVA_HOME=/usr/java/default/

   格式化分佈式文件系統(hdfs):hdfs namenode -format
   成功的標誌: INFO common.Storage: Storage directory /opt/hadoop-2.7.2/current/dfs/namehas been successfully formatted.
   啓動Hadoop集羣:/opt/hadoop-2.7.2/sbin/start-all.sh
   驗證Hadoop集羣是否正常啓動:
   jps,系統中運行的java進程;
   經過端口查看(關閉防火牆或者service iptables stop在防火牆的規則中開放這些端口):
   http://bigdata:50070(http://http://192.168.42.209/:50070),分佈式文件系統hdfs的狀況
   yarn http://bigdata:18088(http://http://192.168.42.209/:50070)
參考連接:https://ask.hellobi.com/blog/marsj/4944

             https://edu.hellobi.com/course/93/play/lesson/1410

相關文章
相關標籤/搜索