Hadoop入門進階課程3--Hadoop2.X64位環境搭建

本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,博主爲石山園,博客地址爲 http://www.cnblogs.com/shishanyuan  。該系列課程是應邀實驗樓整理編寫的,這裏須要贊一下實驗樓提供了學習的新方式,能夠邊看博客邊上機實驗,課程地址爲 https://www.shiyanlou.com/courses/237java

【注】該系列所使用到安裝包、測試數據和代碼都可在百度網盤下載,具體地址爲 http://pan.baidu.com/s/10PnDs,下載該PDF文件node

1搭建環境

部署節點操做系統爲CentOS,防火牆和SElinux禁用,建立了一個shiyanlou用戶並在系統根目錄下建立/app目錄,用於存放Hadoop等組件運行包。由於該目錄用於安裝hadoop等組件程序,用戶對shiyanlou必須賦予rwx權限(通常作法是root用戶在根目錄下建立/app目錄,並修改該目錄擁有者爲shiyanlou(chown R shiyanlou:shiyanlou /app)。linux

Hadoop搭建環境:web

l  虛擬機操做系統: CentOS6.6  64位,單核,1G內存apache

l  JDK1.7.0_55 64服務器

l  Hadoop2.2.0 64位(該部署包爲第2個實驗所編譯完成)app

2部署Hadooop2.X

2.1配置Hadoop環境

Apache網站上提供Hadoop2.X安裝包只支持32位操做系統安裝,在64位服務器安裝會出現3.1的錯誤異常。這裏咱們使用上一步驟編譯好的hadoop-2.2.0-bin.tar.gz文件做爲安裝包(也能夠在/home/shiyanlou/install-pack目錄中找到hadoop-2.2.0.tar.gz安裝包)less

2.1.1  下載並解壓hadoop安裝包

解壓縮並移動到/app目錄下webapp

cd /home/shiyanlou/install-packide

tar -xzf hadoop-2.2.0.tar.gz

mv hadoop-2.2.0 /app

clip_image002[10]

2.1.2  Hadoop目錄下建立子目錄

hadoop-2.2.0目錄下建立tmpnamedata目錄

cd /app/hadoop-2.2.0

mkdir tmp

mkdir hdfs

mkdir hdfs/name

mkdir hdfs/data

clip_image004[10]

2.1.3配置hadoop-env.sh

1. 打開配置文件hadoop-env.sh

cd /app/hadoop-2.2.0/etc/hadoop

sudo vi hadoop-env.sh

clip_image006[10]

2.  加入配置內容,設置了hadoopjdkhadoop/bin路徑

export HADOOP_CONF_DIR=/app/hadoop2.2.0/etc/hadoop

export JAVA_HOME=/app/lib/jdk1.7.0_55

export PATH=$PATH:/app/hadoop-2.2.0/bin

clip_image008[9]

3. 編譯配置文件hadoop-env.sh,並確認生效

source hadoop-env.sh

hadoop version

clip_image010[9]

2.1.4配置yarn-env.sh

打開配置文件yarn-env.sh,設置了hadoopjdk路徑,配置完畢後使用source yarn-env.sh編譯該文件

export JAVA_HOME=/app/lib/jdk1.7.0_55

clip_image012[9]

2.1.5配置core-site.xml

1. 使用以下命令打開core-site.xml配置文件

cd /app/hadoop-2.2.0/etc/hadoop

sudo vi core-site.xml

2. 在配置文件中,按照以下內容進行配置

<configuration>

  <property>

    <name>fs.default.name</name>

    <value>hdfs://hadoop:9000</value>

  </property>

  <property>

    <name>fs.defaultFS</name>

    <value>hdfs://hadoop:9000</value>

  </property>

  <property>

    <name>io.file.buffer.size</name>

    <value>131072</value>

  </property>

  <property>

    <name>hadoop.tmp.dir</name>

    <value>file:/app/hadoop-2.2.0/tmp</value>

    <description>Abase for other temporary directories.</description>

  </property>

  <property>

    <name>hadoop.proxyuser.hduser.hosts</name>

    <value>*</value>

  </property>

  <property>

    <name>hadoop.proxyuser.hduser.groups</name>

    <value>*</value>

  </property>

</configuration>

clip_image014[9]

2.1.6配置hdfs-site.xml

1.  使用以下命令打開hdfs-site.xml配置文件

cd /app/hadoop-2.2.0/etc/hadoop

sudo vi hdfs-site.xml

2.在配置文件中,按照以下內容進行配置

<configuration>

  <property>

   <name>dfs.namenode.secondary.http-address</name>

   <value>hadoop:9001</value>

  </property>

  <property>

   <name>dfs.namenode.name.dir</name>

   <value>file:/app/hadoop-2.2.0/hdfs/name</value>

  </property>

  <property>

   <name>dfs.datanode.data.dir</name>

   <value>file:/app/hadoop-2.2.0/hdfs/data</value>

  </property>

  <property>

   <name>dfs.replication</name>

   <value>1</value>

  </property>

  <property>

   <name>dfs.webhdfs.enabled</name>

   <value>true</value>

  </property>

</configuration>

clip_image016[9]

2.1.7配置mapred-site.xml

1.默認狀況下不存在mapred-site.xml文件,能夠從模板拷貝一份,並使用以下命令打開mapred-site.xml配置文件

cd /app/hadoop-2.2.0/etc/hadoop

cp mapred-site.xml.template mapred-site.xml

sudo vi mapred-site.xml

2.在配置文件中,按照以下內容進行配置

<configuration>

  <property>

    <name>mapreduce.framework.name</name>

    <value>yarn</value>

  </property>

  <property>

    <name>mapreduce.jobhistory.address</name>

    <value>hadoop:10020</value>

  </property>

  <property>

    <name>mapreduce.jobhistory.webapp.address</name>

    <value>hadoop:19888</value>

  </property>

</configuration>

clip_image018[9]

2.1.8配置yarn-site.xml

1.使用以下命令打開yarn-site.xml配置文件

cd /app/hadoop-2.2.0/etc/hadoop

sudo vi yarn-site.xml

2.在配置文件中,按照以下內容進行配置

<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>

  <property>

    <name>yarn.resourcemanager.address</name>

    <value>hadoop:8032</value>

  </property>

  <property>

    <name>yarn.resourcemanager.scheduler.address</name>

    <value>hadoop:8030</value>

  </property>

  <property>

    <name>yarn.resourcemanager.resource-tracker.address</name>

    <value>hadoop:8031</value>

  </property>

  <property>

    <name>yarn.resourcemanager.admin.address</name>

    <value>hadoop:8033</value>

  </property>

  <property>

    <name>yarn.resourcemanager.webapp.address</name>

    <value>hadoop:8088</value>

  </property>

</configuration>

clip_image020[9]

2.1.9配置slaves文件

slaves配置文件中設置從節點,這裏設置爲hadoop,與Hadoop1.X區別的是Hadoop2.X不須要設置Master

cd /app/hadoop-2.2.0/etc/hadoop

vi slaves

clip_image022[9]

2.1.10格式化namenode

cd /app/hadoop-2.2.0/bin

./hdfs namenode -format

clip_image024[9]

clip_image026[9]

2.2啓動Hadoop

2.2.1啓動hdfs

cd /app/hadoop-2.2.0/sbin

./start-dfs.sh

clip_image028[9]

2.2.2驗證當前進行

使用jps命令查看運行進程,此時在hadoop上面運行的進程有:namenodesecondarynamenodedatanode三個進行

clip_image030[9]

2.2.3啓動yarn

cd /app/hadoop-2.2.0/sbin

./start-yarn.sh

clip_image032[9]

2.2.4驗證當前進行

使用jps命令查看運行進程,此時在hadoop上運行的進程除了:namenodesecondarynamenodedatanode,增長了resourcemanagernodemanager兩個進程:

clip_image034[9]

2.3測試Hadoop

2.3.1建立測試目錄

cd /app/hadoop-2.2.0/bin

./hadoop fs -mkdir -p /class3/input

clip_image036[9]

2.3.2準備測試數據

./hadoop fs -copyFromLocal ../etc/hadoop/* /class3/input

clip_image038[9]

2.3.3運行wordcount例子

cd /app/hadoop-2.2.0/bin

./hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /class3/input /class3/output

clip_image040[9]

clip_image042[9]

2.3.4查看結果

使用以下命令查看運行結果:

./hadoop fs -ls /class3/output/ 

./hadoop fs -cat /class3/output/part-r-00000 | less

clip_image044[9]

3問題解決

3.1CentOS 64bit安裝Hadoop2.2.0中出現文件編譯位數異常

在安裝hadoop2.2.0過程當中出現以下異常:Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

clip_image046[9]

經過分析是因爲lib/native目錄中有些文件是在32位編譯,沒法適應CentOS 64位環境形成

clip_image048[9]

有兩種辦法解決:

l  從新編譯hadoop,而後從新部署

l  暫時辦法是修改配置,忽略有問題的文件

clip_image050[9]

相關文章
相關標籤/搜索