Hadoop集群介紹和安裝

Hadoop簡介

Hadoop是用于存儲數(shù)據(jù)和商用硬件集群運行應(yīng)用程序的開源軟件框架胞锰,它提供了海量存儲任何類型的數(shù)據(jù),極大的處理能力和處理幾乎無限的并發(fā)任務(wù)或作業(yè)的能力国裳。

Hadoop的優(yōu)勢

Hadoop博得廣大人群眼球的主要原因是它能夠存儲和處理大兩數(shù)據(jù)的能力鞠苟,可以支持任何類型的數(shù)據(jù),計算快熔酷;隨著數(shù)據(jù)量和品種的不斷增加孤紧,特別是社交媒體和物聯(lián)網(wǎng)行業(yè),Hadoop是一個重要的考慮因素拒秘,其中使用Hadoop的優(yōu)勢如下:

  • 計算能力:它的分布式計算模型快速處理大數(shù)據(jù)号显,用的越多計算節(jié)點,數(shù)據(jù)的處理能力會更大躺酒;
  • 靈活性:不同于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫押蚤,你不要存放前必須進行預(yù)處理的數(shù)據(jù),只要需要使用羹应,可以保存盡可能多的數(shù)據(jù)揽碘,并決定以后怎么使用它,這包括文本量愧、圖像和視頻的非結(jié)構(gòu)化數(shù)據(jù)钾菊;
  • 容錯能力:數(shù)據(jù)和應(yīng)用程序處理保護,以防止硬件故障偎肃,如果一個節(jié)點出現(xiàn)故障煞烫,作業(yè)自動重定向到其他的節(jié)點,以確分布式計算不會失敗累颂,它會自動存儲所有數(shù)據(jù)的多個副本滞详;
  • 低成本:開源框架是免費的凛俱,使用商業(yè)硬件來存儲大量數(shù)據(jù);
  • 可擴展性:可以輕松簡單地通過增加更多的節(jié)點增加你的系統(tǒng)料饥。

Hadoop組件

  • Hadoop Common -- 其它Hadoop的模塊使用的庫和工具
  • Hadoop Distributed File System (HDFS) -- 存儲在多臺計算機的數(shù)據(jù)蒲犬,恕不另行組織基于Java的可擴展系統(tǒng)。
  • MapReduce -- 軟件編程模型的并行處理大型數(shù)據(jù)集
  • YARN -- 從分布式應(yīng)用程序的調(diào)度和處理資源請求的資源管理框架岸啡。

其他Hadoop相關(guān)組件

  • Ambari?:配置管理和監(jiān)控的Apache Hadoop集群基于Web的工具原叮,其中包括Hadoop的HDFS,MapReduce的Hadoop的Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig and Sqoop支持巡蘸,Ambari還提供查看集群運行狀態(tài)奋隶,如熱圖,并直觀地查看MapReduce的Pig和Hive應(yīng)用非常久遠的功能悦荒,診斷一個用戶友好的方式表現(xiàn)自己的能力特點的儀表板唯欣。
  • Avro的?:數(shù)據(jù)序列化系統(tǒng)
  • Chukwa?:用于管理大型分布式系統(tǒng)的數(shù)據(jù)采集系統(tǒng)。
  • HBase的?:支持大表結(jié)構(gòu)化數(shù)據(jù)存儲可擴展的分布式數(shù)據(jù)庫搬味。
  • Hive?:數(shù)據(jù)倉庫基礎(chǔ)設(shè)施境氢,提供數(shù)據(jù)匯總和及時查詢。
  • Mahout?:一種可擴展的機器學(xué)習(xí)和數(shù)據(jù)挖掘庫碰纬。
  • Pig?:并行計算的高級數(shù)據(jù)流語言和執(zhí)行框架萍聊。
  • Spark?:Hadoop的數(shù)據(jù)的快速和通用計算引擎。Spark提供了支持廣泛的應(yīng)用嘀趟,包括ETL脐区,機器學(xué)習(xí)愈诚,流處理和圖形計算的簡單和表現(xiàn)的編程模型她按。
  • Tez?:廣義數(shù)據(jù)流編程框架,建立在Hadoop的YRAN炕柔,它提供了一個強大而靈活的引擎來執(zhí)行任務(wù)的任意DAG來處理批處理和交互式的使用數(shù)據(jù)情況酌泰,TEZ正在通過Hive,pig和Hadoop的生態(tài)系統(tǒng)中其他框架匕累,也可以通過其他商業(yè)軟件(例如:ETL工具)以取代的Hadoop MapReduce的?作為底層執(zhí)行引擎陵刹。
  • ZooKeeper的?:分布式應(yīng)用的高性能協(xié)調(diào)服務(wù)。

Hadoop集群安裝

主機規(guī)劃:

序號 ip 主機名 角色
1 110.12.4.92 LFTd-Hadoop01 NodeManager/ResourceManager/SecondaryNameNode/DataNode/NameNode
2 110.12.4.93 LFTd-Hadoop02 NodeManager/DataNode
3 110.12.4.94 LFTd-Hadoop03 NodeManager/DataNode

Step 1 安裝配置Java環(huán)境

在所有主機安裝配置Java環(huán)境欢嘿,命令如下:

# java -version
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

Step 2 創(chuàng)建hadoop用戶

在所有主機創(chuàng)建hadoop用戶并配置密碼衰琐,命令如下:

# useradd hadoop
# passwd hadoop

Step 3 配置本地hosts解析

在所有主機配置hosts解析,命令如下:

10.12.4.92  master hadoop-namenode LFTd-Hadoop01
10.12.4.93  slave01 hadoop-datanode-1 LFTd-Hadoop02
10.12.4.94  slave02 hadoop-datanode-2 LFTd-Hadoop03

Step 4 配置ssh免密登陸

在所有主機配置ssh免密登陸炼蹦,命令如下:

# su - hadoop
$ ssh-keygen -t rsa
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hadoop-namenode
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hadoop-datanode-1
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hadoop-datanode-2
$ chmod 0600 ~/.ssh/authorized_keys

Step 5 安裝hadoop源碼包

在所有主機下載安裝hadoop源碼包羡宙,命令如下:

# mkdir -p /opt/hadoop
# chown hadoop:hadoop /opt/hadoop
# su - hadoop
$ cd /opt/hadoop
$ wget http://www-us.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
$ tar xzf hadoop-2.7.3.tar.gz
$ ln -s /opt/hadoop/hadoop-2.7.3 /opt/hadoop/hadoop

Step 6 配置hadoop用戶環(huán)境變量

為所有主機配置hadoop用戶的環(huán)境變量,命令如下:

$ cat .bash_profile 
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export HADOOP_PREFIX=/opt/hadoop/hadoop
export HADOOP_HOME=/opt/hadoop/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
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:$JAVA_HOME/jre/bin:$JAVA_HOME/bin

Step 7 修改hadoop配置文件

在master進行修改hadoop配置文件:

cd $HADOOP_HOME/etc/hadoop

core-site.xml:

$ cat core-site.xml 
<configuration>
      <property>
            <name>fs.defaultFS</name>

                <value>hdfs://master:9000</value>

      </property>

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

                <value>131072</value>

      </property>

      <property>

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

                <value>file:/opt/hadoop/hadoop/tmp</value>

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

        </property>
<property>
        <name>dfs.name.dir</name>
        <value>/opt/hadoop/dfs/name/</value>
    </property>

        <property>

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

              <value>*</value>

        </property>

        <property>

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

              <value>*</value>

      </property>
  
      <property>
              <name>fs.default.name</name>
              <value>hdfs://hadoop-namenode:9000/</value>
      </property>
      <property>
              <name>io.file.buffer.size</name>
              <value>4096</value>
      </property>
      <property>
              <name>hadoop.tmp.dir</name>
              <value>/opt/hadoop/hadoop/tmp</value>
      </property>
      <property>
              <name>dfs.permissions</name>
              <value>false</value>
      </property>
</configuration>

hdfs-site.xml:

$ cat hdfs-site.xml
<configuration>
  <property>

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

          <value>master:9001</value>

    </property>

    <property>

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

            <value>file:/opt/hadoop/dfs/name</value>

        </property>

      <property>

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

                <value>file:/opt/hadoop/dfs/data</value>

        </property>

        <property>

                <name>dfs.replication</name>

                <value>3</value>

        </property>

        <property>

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

                <value>true</value>

    </property>
<property>
        <name>dfs.data.dir</name>
        <value>/opt/hadoop/dfs/data</value>
        <final>true</final>
</property>

<property>
        <name>dfs.name.dir</name>
        <value>/opt/hadoop/dfs/name</value>
        <final>true</final>
</property>

<property>
        <name>dfs.replication</name>
        <value>1</value>
</property>

<property>
  <name>dfs.permissions</name>
  <value>false</value>
</property>

<property>
  <name>dfs.http.address</name>
  <value>hadoop-namenode:50070</value>
</property>

</configuration>

mapred-site.xml:

$ cat mapred-site.xml
<configuration>
<property>

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

        <value>yarn</value>

</property>

<property>

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

        <value>master:10020</value>

</property>

<property>

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

      <value>master:19888</value>

</property>
<property>
        <name>mapred.job.tracker</name>
        <value>hadoop-namenode:9001</value>
</property>

</configuration>

同步配置文件至所有slave:

# su - hadoop
$ rsync -auvx $HADOOP_HOME/ hadoop-datanode-1:$HADOOP_HOME/
$ rsync -auvx $HADOOP_HOME/ hadoop-datanode-2:$HADOOP_HOME/

Step 8 配置master的slave節(jié)點

只在master節(jié)點配置掐隐,命令如下:

# su - hadoop
$ cd $HADOOP_HOME/etc/hadoop
$ vi slaves
hadoop-datanode-1
hadoop-datanode-2

Step 9 啟動hadoop集群

在master節(jié)點啟動:

# su - hadoop
$ start-all.sh 

Step 10 檢查hadoop集群啟動情況

master節(jié)點:

$ jps
34720 NodeManager
34609 ResourceManager
34440 SecondaryNameNode
34234 DataNode
43663 Jps
34095 NameNode

slave節(jié)點:

# su - hadoop
$ jps
5392 DataNode
5512 NodeManager
13578 Jps
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末狗热,一起剝皮案震驚了整個濱河市钞馁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌匿刮,老刑警劉巖僧凰,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異熟丸,居然都是意外死亡训措,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門光羞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來隙弛,“玉大人,你說我怎么就攤上這事狞山∪疲” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵萍启,是天一觀的道長总珠。 經(jīng)常有香客問我,道長勘纯,這世上最難降的妖魔是什么局服? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮驳遵,結(jié)果婚禮上淫奔,老公的妹妹穿的比我還像新娘。我一直安慰自己堤结,他們只是感情好唆迁,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著竞穷,像睡著了一般唐责。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瘾带,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天鼠哥,我揣著相機與錄音,去河邊找鬼看政。 笑死朴恳,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的允蚣。 我是一名探鬼主播于颖,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼厉萝!你這毒婦竟也來了恍飘?” 一聲冷哼從身側(cè)響起榨崩,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎章母,沒想到半個月后母蛛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡乳怎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年彩郊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蚪缀。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡秫逝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出询枚,到底是詐尸還是另有隱情违帆,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布金蜀,位于F島的核電站刷后,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏渊抄。R本人自食惡果不足惜尝胆,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望护桦。 院中可真熱鬧含衔,春花似錦、人聲如沸二庵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽眨猎。三九已至抑进,卻和暖如春强经,著一層夾襖步出監(jiān)牢的瞬間睡陪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工匿情, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留兰迫,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓炬称,卻偏偏與公主長得像汁果,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子玲躯,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容