1. 程式人生 > >Hadoop簡單入門之偽分散式搭建

Hadoop簡單入門之偽分散式搭建

前面兩章主要講解了完全分散式的搭建,這章主要講解伺服器單機完成偽分佈的搭建,介紹Hadoop配置,啟動,以及簡單測試。我的機器:阿里雲伺服器,64位,Java64,Hadoop2.4.1(64)


所有軟體下載百度雲 密碼:uup8

講在開頭:對於筆者的完全分散式環境請見該文:Hadoop完全分散式安裝

寫文章不易,歡迎大家採我的文章,以及給出有用的評論,當然大家也可以關注一下我的github;多謝;

1,Hadoop簡單介紹:

Apache Hadoop是一款支援資料密集型分散式應用,並以Apache 2.0許可協議釋出的開源軟體框架。它支援在商品硬體構建的大型叢集上執行的應用程式。Hadoop是根據

Google公司發表的MapReduceGoogle檔案系統的論文自行實現而成。

Hadoop框架透明地為應用提供可靠性和資料移動。它實現了名為MapReduce的程式設計正規化:應用程式被分割槽成許多小部分,而每個部分都能在叢集中的任意節點上執行或重新執行。此外,Hadoop還提供了分散式檔案系統,用以儲存所有計算節點的資料,這為整個叢集帶來了非常高的頻寬。MapReduce和分散式檔案系統的設計,使得整個框架能夠自動處理節點故障。它使應用程式與成千上萬的獨立計算的電腦和PB級的資料。現在普遍認為整個Apache Hadoop“平臺”包括Hadoop核心、MapReduce、Hadoop分散式檔案系統(HDFS)以及一些相關專案,有Apache Hive和Apache HBase等等。

2.開發環境搭建

主要環境:java 和Hadoop

2.1Java開發環境搭建

  1. 下載jdk8的安裝包:jdk-8u60-linux-x64.tar.gz;這是linux系統的安裝包;
    可以下載我分享的連結:百度雲連結;
  2. 安裝jdk8步驟:萬試萬靈的步驟:
1.複製檔案到雲伺服器
sudo scp -r /home/peace/jdk-8u60-linux-x64.tar.gz  root@192.168.1.127:/root/
2登陸雲伺服器:
##建立資料夾,和解壓檔案
$ mkdir /usr/lib/jvm 
$ mv jdk-8u60-linux-x64.tar.gz  /usr/lib/jvm/
$ 
cd /usr/lib/jvm/ $ tar -zxvf jdk-8u60-linux-x64.tar.gz $ rm ./jdk-8u60-linux-x64.tar.gz $mvjdk-8u60 jdk8 ##配置環境變數: $vi /etc/environment 在environment中修改PATH,追加JDK路徑,新增CLASSPATHJAVA_HOME後如下: export JAVA_HOME=/usr/lib/jvm/jdk8 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib PATH="/usr/lib/jvm/jdk8/bin:/usr/local/sbin:/usr/local/bin: /usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" ##告訴系統,我們使用的sun的JDK,而非OpenJDK了: $update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk8/bin/java 300 $update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk8/bin/javac 300 $update-alternatives --config java ##測試一下執行 java -version 可以看到版本號 : java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

2.2網路環境搭建

1.1修改主機名
        vim /etc/sysconfig/network

        NETWORKING=yes
        HOSTNAME=itcast    ###

    1.2修改IP
        兩種方式:
        第一種:通過Linux圖形介面進行修改(強烈推薦)
            進入Linux圖形介面 -> 右鍵點選右上方的兩個小電腦 -> 點選Edit connections -> 選中當前網路System eth0 -> 點選edit按鈕 -> 選擇IPv4 -> method選擇為manual -> 點選add按鈕 -> 新增IP:192.168.1.101 子網掩碼:255.255.255.0 閘道器:192.168.1.1 -> apply

        第二種:修改配置檔案方式(屌絲程式猿專用)
            vim /etc/sysconfig/network-scripts/ifcfg-eth0

            DEVICE="eth0"
            BOOTPROTO="static"               ###
            HWADDR="00:0C:29:3C:BF:E7"
            IPV6INIT="yes"
            NM_CONTROLLED="yes"
            ONBOOT="yes"
            TYPE="Ethernet"
            UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"
            IPADDR="192.168.1.101"           ###
            NETMASK="255.255.255.0"          ###
            GATEWAY="192.168.1.1"            ###

    1.3修改主機名和IP的對映關係
        vim /etc/hosts

        192.168.1.101   itcast

    1.4關閉防火牆
        #檢視防火牆狀態
        service iptables status
        #關閉防火牆
        service iptables stop
        #檢視防火牆開機啟動狀態
        chkconfig iptables --list
        #關閉防火牆開機啟動
        chkconfig iptables off

    1.5重啟Linux
        reboot

2.3Hadoop開發環境搭建(安裝hadoop2.4.1)

先上傳hadoop的安裝包到伺服器上去/home/hadoop/ 然後解壓到該目錄下;
注意:hadoop2.x的配置檔案$HADOOP_HOME/etc/hadoop
偽分散式需要修改5個配置檔案

第一個:hadoop-env.sh
        vim hadoop-env.sh
        #第27行
        export JAVA_HOME=/usr/java/jdk1.7.0_65

    第二個:core-site.xml

        <!-- 指定HADOOP所使用的檔案系統schema(URI),HDFS的老大(NameNode)的地址 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://weekend-1206-01:9000</value>
        </property>
        <!-- 指定hadoop執行時產生檔案的儲存目錄 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <!--你自己定義的目錄-->
            <value>/home/hadoop/hadoop-2.4.1/tmp</value>
    </property>
        <configuration>
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.1.127:9000</value>
</property>
<property>
        <name>hadoop.tmp.dir</name>                
        <value>/home/peace/app/hadoop-2.4.1/tmp</value>
</property>
</configuration>
    第三個:hdfs-site.xml   hdfs-default.xml  (3)
        <!-- 指定HDFS副本的數量 -->
        <property>
            <name>dfs.replication</name>
            <value>1</value>
    </property>

    第四個:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
        mv mapred-site.xml.template mapred-site.xml
        vim mapred-site.xml
        <!-- 指定mr執行在yarn上 -->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
    </property>

    第五個:yarn-site.xml
        <!-- 指定YARN的老大(ResourceManager)的地址 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>192.168.1.127</value>
    </property>
        <!-- reducer獲取資料的方式 -->
    <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
     </property>

2.4將hadoop新增到環境變數

vim /etc/proflie
        export HADOOP_HOME=/itcast/hadoop-2.4.1
        export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile

3.測試

1.格式化namenode(是對namenode進行初始化)

hdfs namenode -format (hadoop namenode -format)

2.啟動hadoop

start-all.sh

3.驗證是否啟動成功

使用jps命令驗證
27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode
儲存檔案:
hadoop fs -put hadoop-2.4.1.tar.gz hdfs://115.29.52.140:9000/
檢視檔案:
hadoop fs -ls hdfs://115.29.52.140:9000/
顯示如下:
-rw-r--r--   1 root supergroup  138656756 2016-04-11 15:46 hdfs://115.29.52.140:9000/hadoop-2.4.1.tar.gz
get檔案:
hadoop fs -get hdfs://115.29.52.140:9000/hadoop-2.4.1.tar.gz

本章介紹到這裡
來自伊豚(wpeace.cn)