hadoop2.*學(xué)習(xí)筆記二(HDFS偽分布式)

HDFS簡(jiǎn)介摘錄:HDFS 是一個(gè) Apache Software Foundation 項(xiàng)目,是 Apache Hadoop 項(xiàng)目的一個(gè)子項(xiàng)目(參見(jiàn)參考資料)。Hadoop 非常適于存儲(chǔ)大型數(shù)據(jù)(比如 terabytes 和 petabytes),并使用 HDFS 作為其存儲(chǔ)系統(tǒng)。HDFS 允許您連接多個(gè)集群中包含的節(jié)點(diǎn)(普通個(gè)人計(jì)算機(jī)),那些集群上分布著一些數(shù)據(jù)文件。然后您可以將那些數(shù)據(jù)文件作為一個(gè)無(wú)縫文件系統(tǒng)來(lái)進(jìn)行訪問(wèn)和存儲(chǔ)。對(duì)數(shù)據(jù)文件的訪問(wèn)通過(guò)一種流線型(streaming)方式進(jìn)行處理,這意味著應(yīng)用程序或命令通過(guò) MapReduce 處理模型直接執(zhí)行(參見(jiàn)參考資料)。
HDFS 是容錯(cuò)的,且提供對(duì)大數(shù)據(jù)集的高吞吐量訪問(wèn)。本文探索 HDFS 的主要特性,并提供一個(gè)高級(jí) HDFS 架構(gòu)視圖。

HDFS架構(gòu)說(shuō)明

一個(gè)集群包含一個(gè) Name node 。這種設(shè)計(jì)有利于形成一個(gè)簡(jiǎn)化模型來(lái)管理每個(gè)名稱空間并仲裁數(shù)據(jù)分布。
HDFS配置:
由于使用個(gè)人電腦安裝的虛擬機(jī)(centos 7/64bit)測(cè)試又加虛擬化不太熟悉就只能在偽分布式下進(jìn)行測(cè)試。

hadoop用戶創(chuàng)建和免密碼登錄配置略過(guò)。

JDK配置:

--下載jdk1.7或者更高的jdk版本
$ cd Downloads/ 
$ ls 
 jdk-7u71-linux-x64.gz 
$ tar zxf jdk-7u71-linux-x64.gz 
$ ls
 jdk1.7.0_71 jdk-7u71-linux-x64.gz 

--獲得管理員使其jdk對(duì)所有用戶有效
$ su 
password: 
# mv jdk1.7.0_71 /usr/local/ 
--返回hadoop用戶
# exit 
--編輯~/.bashrc添加下面環(huán)境變量
export JAVA_HOME=/usr/local/jdk1.7.0_71 
export PATH=$PATH:$JAVA_HOME/bin 

--使修改的配置生效
$ source ~/.bashrc

--jdk多版本控制
$ su
password:
--把新的jdk加入到版本控制器中
# alternatives --install /usr/bin/java java usr/local/java/bin/java 2
# alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2
# alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2
# alternatives --set java usr/local/java/bin/java
# alternatives --set javac usr/local/java/bin/javac
# alternatives --set jar usr/local/java/bin/jar

--選擇我們需要使用的版本
# alternatives --config java

--返回hadoop用戶
# exit

--驗(yàn)證jdk安裝是否成功,執(zhí)行命令如出現(xiàn)jdk相關(guān)信息則表示配置成功
$ java -version
   java version "1.7.0_71" 
   Java(TM) SE Runtime Environment (build 1.7.0_71-b13)
   Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode) 

Hadoop環(huán)境配置:

--下載hadoop
$ su 
password: 
# cd /usr/local 
# wget http://apache.claz.org/hadoop/common/hadoop-2.4.1/ hadoop-2.4.1.tar.gz # tar xzf hadoop-2.4.1.tar.gz 
--重命名
# mv hadoop-2.4.1 hadoop
# exit   

--編輯  ~/.bashrc添加下面環(huán)境變量
export HADOOP_HOME=/usr/local/hadoop 
export HADOOP_MAPRED_HOME=$HADOOP_HOME 
export HADOOP_COMMON_HOME=$HADOOP_HOME 
export HADOOP_HDFS_HOME=$HADOOP_HOME 
export YARN_HOME=$HADOOP_HOME 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 
export HADOOP_INSTALL=$HADOOP_HOME 

--使其配置生效
$ source ~/.bashrc 

--驗(yàn)證hadoop安裝是否成功
$ hadoop version 
  Hadoop 2.4.1 Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768 
  Compiled by hortonmu on 2013-10-07T06:28Z 
  Compiled with protoc 2.5.0From source with checksum 79e53ce7994d1628b240f09af91e1af4 

--這個(gè)目錄包含所有hadoop的本地配置文件
$ cd $HADOOP_HOME/etc/hadoop

--如果使用java開(kāi)發(fā)hadoop程序需要在hadoop-env.sh中修改添加如下環(huán)境變量
export JAVA_HOME=/usr/local/jdk1.7.0_71

Hadoop配置:

--編輯$HADOOP_HOME/etc/hadoop/core-site.xml修改<configuration></configuration>內(nèi)容如下:

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

---------------------------------------------------------------
--設(shè)置hdfs參數(shù),修改hdfs-site.xml中<configuration></configuration>內(nèi)容如下
--文件備份個(gè)數(shù)
<configuration>
  <!--hdfs中文件備份數(shù)量-->
 <property>
   <name>dfs.replication</name>
   <value>1</value>
 </property>

<!--下面file所對(duì)應(yīng)的目錄可以曬當(dāng)前系統(tǒng)中的任意目錄-->
<!--hdfs namenode 操作目錄-->
 <property>
   <name>dfs.name.dir</name> 
   <value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value>
 </property>

<!--hdfs datanode 操作目錄-->
 <property>
   <name>dfs.data.dir</name>
   <value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value>
 </property>
 </configuration>

---------------------------------------------------------------
--格式化hdfs,執(zhí)行如下命令會(huì)在namenode和datanode對(duì)于的file path下面生成相應(yīng)映射文件
$ cd ~ 
$ hdfs namenode -format 

--格式化只需要執(zhí)行一次,以后啟動(dòng)不需要再次執(zhí)行。如果不小心重復(fù)執(zhí)行了會(huì)出現(xiàn)namenode
和datanode對(duì)應(yīng)不上,啟動(dòng)后找不到datanode的進(jìn)程,如果出現(xiàn)了這種事情可以使用如下方式解決問(wèn)題:
1 打開(kāi)namenode 對(duì)應(yīng)的操作目錄下面/current/VERSION文件復(fù)制clusterID的值:
$ cat /home/hadoop/hadoopinfra/hdfs/namenode/current/VERSION
#Mon Jul 11 01:52:18 PDT 2016
namespaceID=1991084453
clusterID=CID-22f38c16-19a9-4dae-890e-a6a9056b3b58
cTime=0
storageType=NAME_NODE
blockpoolID=BP-1747627022-127.0.0.1-1468227138388
layoutVersion=-63

2 編輯datanode對(duì)應(yīng)的操作目錄下面/current/VERSION文件修改clusterID的值為上面復(fù)制的值:
vi /home/hadoop/hadoopinfra/hdfs/datanode/current/VERSION
#Mon Jul 11 02:26:08 PDT 2016
storageID=DS-ac4b9435-3b8d-4482-9150-ae95ebae46d8
#保證這個(gè)屬性和namenode中的值一致
clusterID=CID-22f38c16-19a9-4dae-890e-a6a9056b3b58
cTime=0
datanodeUuid=b5f753e3-fb28-4f9d-b71a-b36333149a7c
storageType=DATA_NODE
layoutVersion=-56

3 重新啟動(dòng)hdfs。

----------------------------------------------------------------------

--啟動(dòng)hdfs
$ start-dfs.sh 

--啟動(dòng)成功后就可對(duì)hdfs進(jìn)行一下操作,類似于普通的文件系統(tǒng)。
$ $HADOOP_HOME/bin/hadoop fs -help 
--這個(gè)命令列出了所有關(guān)于hdfs的操作指令,創(chuàng)建 更新 修改 和刪除等。hadoop也提供了一套接口(后面學(xué)習(xí)到j(luò)ava hadoop編程時(shí)再研究)給客戶端調(diào)用來(lái)實(shí)現(xiàn)這些功能。

--停止hdfs
$ stop-dfs.sh

結(jié)束語(yǔ):
學(xué)習(xí)筆記比較粗糙,如有不適請(qǐng)包涵O(∩_∩)O~。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 當(dāng)數(shù)據(jù)量增大到超出了單個(gè)物理計(jì)算機(jī)存儲(chǔ)容量時(shí),有必要把它分開(kāi)存儲(chǔ)在多個(gè)不同的計(jì)算機(jī)中。那些管理存儲(chǔ)在多個(gè)網(wǎng)絡(luò)互連的...
    單行線的旋律閱讀 2,081評(píng)論 0 7
  • 首先,我們?cè)谑褂们跋瓤纯碒DFS是什麼?這將有助于我們是以后的運(yùn)維使用和故障排除思路的獲得。 HDFS采用mast...
    W_Bousquet閱讀 4,461評(píng)論 0 2
  • http://geek.csdn.net/news/detail/210469http://www.36dsj.c...
    Albert陳凱閱讀 5,622評(píng)論 1 21
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • 海鳥(niǎo)倦飛 波面輕漾 南窗和南窗里被日光沐浴 陳舊擺設(shè)被太陽(yáng)的柔情喚醒 而我是其中一個(gè) 碌庸?jié)L碾蝕化生活 思念如那柔...
    漾溪閱讀 366評(píng)論 0 3

友情鏈接更多精彩內(nèi)容