溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

HDFS怎么安裝

發(fā)布時間:2021-11-12 14:06:09 來源:億速云 閱讀:171 作者:小新 欄目:云計算

這篇文章主要為大家展示了“HDFS怎么安裝”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“HDFS怎么安裝”這篇文章吧。

1.系統(tǒng)環(huán)境

  1. 安裝java(大于1.6版本)

  2. 安裝ssh和rsync,并且啟動ssh服務(wù)

  3. 下載hadoop包,用編譯后的包,地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/

環(huán)境說明:

  1. Linux發(fā)行版:centos6.5(64位,hadoop新版的只提供了64位包)

  2. Hadoop版本:2.5.1

  3. Java版本:1.7.0.67

  4. 設(shè)置了3個虛擬機(jī),host為namenode(192.168.59.103),datanode1(192.168.59.104)和datanode2(192.168.59.105)

2.配置SSH

    1.生成ssh key(namenode機(jī)器和datanode機(jī)器都是需要進(jìn)行下面配置)

  1. $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    $ chmod 644 authorized_keys #該步驟在centos需要,在ubuntu是可以不用的

    2.通過下面命令,如果可以直接登陸,說明免密碼登錄已經(jīng)設(shè)置成功。

  1. $ ssh localhost

    3.在2臺datanode機(jī)器同樣生成自動登陸的ssh key,并將namenode的id_dsa.pub到datanode1和datanode2的.ssh的目錄下面

  1. # 在namenode的機(jī)器,根目錄下面的.ssh
    $ scp id_dsa.pub hadoop@datanode1:~/.ssh/id_dsa.pub.namenode
    $ scp id_dsa.pub hadoop@datanode2:~/.ssh/id_dsa.pub.namenode
    # 在datanode1和datanode2的.ssh目錄下面
    $ cat id_dsa.pub.namenode >> authorized_keys

    4.驗證是否能通過ssh無密碼登錄到dataname1和datanode2,出現(xiàn)標(biāo)紅的說明配置成功。

  1. [hadoop@namenode .ssh]$ ssh datanode1
    Last login: Sun Nov 30 11:03:52 2014 from 192.168.59.103
    [hadoop@datanode1 ~]$ exit
    logout
    Connection to datanode1 closed.
    [hadoop@namenode .ssh]$ ssh datanode2
    Last login: Sun Nov 30 11:03:15 2014 from localhost.localdomain
    [hadoop@datanode2 ~]$ exit
    logout
    Connection to datanode2 closed.

3.配置基礎(chǔ)環(huán)境變量

     分別在namenode,datanode1和datanode2根目錄下面的.bash_profile配置下面內(nèi)容:

  1. # java環(huán)境變量
    export JAVA_HOME=/home/hadoop/local/jdk
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    # hadoop環(huán)境變量
    export HADOOP_DEV_HOME=/home/hadoop/local/hadoop
    export PATH=$PATH:$HADOOP_DEV_HOME/bin
    export PATH=$PATH:$HADOOP_DEV_HOME/sbin
    export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
    export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
    export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
    export YARN_HOME=${HADOOP_DEV_HOME}
    export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
    export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
    export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
    export CLASSPATH=.:$JAVA_HOME/lib:$HADOOP_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

    配置完成之后,需要重新登陸來加載環(huán)境變量(或者通過source ~/.bash_profile);通過下面的命令可以查看環(huán)境變量是否配置正常。

  1. [hadoop@namenode ~]$ java -version
    java version "1.7.0_67"
    Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
    Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
    [hadoop@namenode ~]$ hadoop
    Usage: hadoop [--config confdir] COMMAND
    where COMMAND is one of:
    fs run a generic filesystem user client
    version print the version
    jar <jar> run a jar file
    checknative [-a|-h] check native hadoop and compression libraries availability
    distcp <srcurl> <desturl> copy file or directories recursively
    archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
    classpath prints the class path needed to get the
    Hadoop jar and the required libraries
    daemonlog get/set the log level for each daemon
    or
    CLASSNAME run the class named CLASSNAME
    Most commands print help when invoked w/o parameters.

4.配置hadoop

  在namenode配置完成之后直接scp到其他datanode即可,這樣可以保證機(jī)器配置的一致性。

  1. $ cd ~/local/hadoop/etc/hadoop

   所有的配置文件都在這里。

   打開hadoop-env.sh,配置jdk環(huán)境變量:

  1. # 將export JAVA_HOME=${JAVA_HOME}替換為
    export JAVA_HOME=/home/hadoop/local/jdk

    配置yarn-env.sh:

  1. # export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 去掉注釋,并且替換為下面內(nèi)容
    export JAVA_HOME=/home/hadoop/local/jdk

    配置slave文件(hdfs的datanode機(jī)器配置):

  1. [hadoop@namenode hadoop]$ cat slaves
    namenode
    datanode1
    datanode2

    配置core-site.xml(hadoop的核心策略配置文件)

  1. [hadoop@namenode hadoop]$ cat core-site.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
    <property>
    <name>fs.default.name</name>
    <value>hdfs://namenode:9000</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/hadoop/tmp</value>
    <description>A base for other temporary directories.</description>
    </property>
    </configuration>

    配置hdfs-site.xml(hdfs的策略配置文件):

  1. <configuration>
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>namenode:9001</value>
    </property>
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/hadoop/hadoop/name</value>
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>  
            <value>file:/home/hadoop/hadoop/data</value>
    </property>  
        <property>
    <name>dfs.replication</name>  
            <value>2</value>
    <description>storage copy number</description>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
    </configuration>

到此,整個hdfs的分布式文件系統(tǒng)就配置完成,把上面的hadoop-env.sh,yarn-env.sh,core-site.xml,hdfs-site.xml同步到datanode的機(jī)器上面。

5.啟動服務(wù)

通過下面命令進(jìn)行操作

  1. [hadoop@namenode hadoop]$ cd /home/hadoop/local/hadoop
    [hadoop@namenode hadoop]$ bin/hdfs namenode -format
    [hadoop@namenode hadoop]$ sbin/start-dfs.sh

第二個命令是為格式化整個hdfs的namenode節(jié)點,格式化之后會在配置的hadoop的name下面出現(xiàn)下面目錄結(jié)構(gòu)

  1. [hadoop@namenode hadoop]$ tree name
    name
    ├── current
    │   ├── edits_inprogress_0000000000000000001
    │   ├── fsimage_0000000000000000000
    │   ├── fsimage_0000000000000000000.md5
    │   ├── seen_txid
    │   └── VERSION
    └── in_use.lock

在這個目錄中,有2個重要的文件:fsimage和edits。

    其中fsimage鏡像文件包含了整個HDFS文件系統(tǒng)的所有目錄和文件的indoe信息。對于文件來說包括了數(shù)據(jù)塊描述信息、修改時間、訪問時間等;對于目錄來說包括修改時間、訪問權(quán)限控制信息(目錄所屬用戶,所在組等)等。

    另外,edit文件主要是在NameNode已經(jīng)啟動情況下對HDFS進(jìn)行的各種更新操作進(jìn)行記錄,HDFS客戶端執(zhí)行所有的寫操作都會被記錄到edit文件中。

啟動dfs之后,從我們配置的data目錄可以看見下面目錄結(jié)果

[hadoop@namenode hadoop]$ tree data
data
├── current
│   ├── BP-441758184-192.168.59.103-1417330891399
│   │   ├── current
│   │   │   ├── finalized
│   │   │   ├── rbw
│   │   │   └── VERSION
│   │   ├── dncp_block_verification.log.curr
│   │   └── tmp
│   └── VERSION
└── in_use.lock

執(zhí)行put命令之后,可以看到一個文件在data中是如何存儲的。如下:

  1. $ hadoop fs -put etc/hadoop/core-site.xml /data/input
    [hadoop@namenode hadoop]$ tree data
    data
    ├── current
    │   ├── BP-441758184-192.168.59.103-1417330891399
    │   │   ├── current
    │   │   │   ├── finalized
    │   │   │   │   ├── blk_1073741827
    │   │   │   │   └── blk_1073741827_1003.meta
    │   │   │   ├── rbw
    │   │   │   │   ├── blk_1073741825
    │   │   │   │   ├── blk_1073741825_1001.meta
    │   │   │   │   ├── blk_1073741826
    │   │   │   │   └── blk_1073741826_1002.meta
    │   │   │   └── VERSION
    │   │   ├── dncp_block_verification.log.curr
    │   │   ├── dncp_block_verification.log.prev
    │   │   └── tmp
    │   └── VERSION
    └── in_use.lock

以上是“HDFS怎么安裝”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI