1. 程式人生 > >Hadoop2.6.0叢集搭建

Hadoop2.6.0叢集搭建

1. 基本概念

2. 基礎配置

2.1 三臺伺服器(可以使用虛擬機器)

系統:Ubuntu14.04 64位 Server版
Jdk版本:jdk1.7.0_79
Hadoop版本: 2.6.0
Zookeeper版本: 3.4.6

2.2 安裝配置規劃

主機名 IP 安裝的軟體 程序
gvm39 192.168.3.141 jdk、hadoop、zookeeper NameNode、DFSZKFailoverController、DataNode、NodeManager、JournalNode、QuorumPeerMain
gvm40 192.168.3.142 jdk、hadoop、zookeeper NameNode、DFSZKFailoverController、DataNode、NodeManager、JournalNode、QuorumPeerMain
gvm41 192.168.3.143 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain、ResourceManager

2.3 每臺主機配置

建立hadoop使用者

$ sudo adduser hadoop
# 提示輸入密碼,剩下的都是一直預設即可

將hadoop使用者新增位sudo管理員組,編輯/etc/sudoer檔案

$ sudo vim /etc/sudoers

將以下新增到”root ALL=(ALL:ALL) ALL”下面

hadoop  ALL=(ALL:ALL) ALL

儲存後退出

登出本使用者,以hadoop使用者身份登入。

2.4 SSH免密碼登入

建立金鑰對

$ ssh-keygen -t rsa -P ''
# 預設儲存到/home/hadoop/.ssh/

檢視”/home/hadoop/”下是否有”.ssh”資料夾,且”.ssh”檔案下是否有兩個剛生產的無密碼金鑰對。

$ ls /home/hadoop/.ssh/

把id_rsa.pub追加到授權的key裡面去。

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

在其他兩臺電腦上分別生成金鑰對

分別將自己主機的公鑰發給其他兩臺主機

$ scp .ssh/id_rsa.pub  hadoop@192.168.3.142:/home/hadoop
$ scp .ssh/id_rsa.pub  hadoop@192.168.3.143:/home/hadoop

將其他主機發過來的公鑰加入到~/.ssh/authorized_keys中

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

以上配置完成,三臺主機之間訪問就不需要密碼了。

3. 開始安裝

注: 先在一臺主機上安裝

3.1 安裝jdk

3.1.1 下載jdk

$ wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz

3.1.2 安裝jdk

# 解壓jdk-7u79-linux-x64.tar.gz
$ tar -zxvf jdk-7u79-linux-x64.tar.gz
# 拷貝解壓後的資料夾jdk1.7.0_79移動到/usr/local/目錄
$ sudo mv jdk1.7.0_79/ /usr/local/

3.1.3 配置jdk環境變數

編輯/etc/bash.bashrc檔案

$ sudo vim /etc/bash.bashrc

將一下新增到bash.bashrc檔案到最後

# set jdk
export JAVA_HOME=/usr/local/jdk1.7.0_79
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

儲存後退出並執行以下命令,使剛才的配置檔案生效

$ source /etc/bash.bashrc

檢視jdk是否安裝正確

$ java -version

將本主機的jdk安裝目錄通過scp拷貝到其他兩臺主機

$ scp -r /usr/local/jdk1.7.0_79/ root@192.168.3.142:/usr/local/

修改jdk環境變數配置檔案,同第一臺

參考: 3.1.3 配置jdk環境變數

3.2 安裝Hadoop

3.2.1 下載Hadoop

$ wget http://apache.fayea.com/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz

3.2.2 安裝Hadoop

# 解壓hadoop-2.6.0.tar.gz
$ tar -zxvf hadoop-2.6.0.tar.gz
# 拷貝解壓後hadoop-2.6.0目錄的檔案移動到/usr/local/目錄中,為了操作方便,將hadoop-2.6.0的目錄名改為hadoop
$ sudo mv hadoop-2.6.0/ /usr/local/hadoop

3.2.3 配置Hadoop

進入/usr/local/hadoop/目錄

$ cd /usr/local/hadoop/

建立tmp臨時目錄

$ mkdir tmp

1). 配置etc/hadoop/hadoop-env.sh檔案,新增jdk安裝位置到檔案

$ vim etc/hadoop/hadoop-env.sh

# 新增如下程式碼到檔案最後
export JAVA_HOME=/usr/local/jdk1.7.0_79

2). 配置vim etc/hadoop/core-site.xml檔案

<configuration>
    <!-- 指定 hdfs 的 nameservice 為 namenodeservice -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://namenodeservice</value>
    </property>
    <!-- 指定 hadoop 臨時目錄 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
    <!-- 指定 zookeeper 地址 -->
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>gvm39:2181,gvm40:2181,gvm41:2181</value>
    </property>
</configuration>

3). 配置vim etc/hadoop/hdfs-site.xml檔案

<configuration>
    <!--指定 hdfs 的 nameservice 為 namenodeservice,需要和 core-site.xml 中的保持一致 -->
    <property>
        <name>dfs.nameservices</name>
        <value>namenodeservice</value>
    </property>
    <!-- namenodeservice 下面有兩個 NameNode,分別是 namenode1,namenode2 -->
    <property>
        <name>dfs.ha.namenodes.namenodeservice</name>
        <value>namenode1,namenode2</value>
    </property>
    <!-- namenode1 的 RPC 通訊地址 -->
    <property>
        <name>dfs.namenode.rpc-address.namenodeservice.namenode1</name>
        <value>gvm39:9000</value>
    </property>
    <!-- namenode1 的 http 通訊地址 -->
    <property>
        <name>dfs.namenode.http-address.namenodeservice.namenode1</name>
        <value>gvm39:50070</value>
    </property>
    <!-- namenode2 的 RPC 通訊地址 -->
    <property>
        <name>dfs.namenode.rpc-address.namenodeservice.namenode2</name>
        <value>gvm40:9000</value>
    </property>
    <!-- namenode2 的 http 通訊地址 -->
    <property>
        <name>dfs.namenode.http-address.namenodeservice.namenode2</name>
        <value>gvm40:50070</value>
    </property>
    <!-- 指定 NameNode 的元資料在 JournalNode 上的存放位置 -->
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://gvm39:8485;gvm40:8485;gvm41:8485/namenodeservice</value>
    </property>
    <!-- 指定 JournalNode 在本地磁碟存放資料的位置 -->
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/usr/local/hadoop/journal</value>
    </property>
    <!-- 開啟 NameNode 失敗自動切換 -->
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>
    <!-- 配置失敗自動切換實現方式 -->
    <property>
        <name>dfs.client.failover.proxy.provider.namenodeservice</name>
                <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <!-- 配置隔離機制方法,多個機制用換行分割,即每個機制暫用一行-->
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>
            sshfence
            shell(/bin/true)
        </value>
    </property>
    <!-- 使用 sshfence 隔離機制時需要 ssh 免登陸 -->
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
    </property>
    <!-- 配置 sshfence 隔離機制超時時間 -->
    <property>
        <name>dfs.ha.fencing.ssh.connect-timeout</name>
        <value>30000</value>
    </property>
</configuration>

4). 配置vim etc/hadoop/mapred-site.xml檔案

<configuration>
    <!-- 指定 mr 框架為 yarn 方式 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

5). 配置vim etc/hadoop/yarn-site.xml檔案

<configuration>
    <!-- 指定 resourcemanager 地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>gvm41</value>
    </property>
    <!-- 指定 nodemanager 啟動時載入 server 的方式為 shuffle server -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

6). 配置vim etc/hadoop/slaves檔案

gvm39
gvm40
gvm41

將本主機的zookeeper安裝目錄通過scp拷貝到其他兩臺主機

$ scp -r /usr/local/hadoop/ root@192.168.3.142:/usr/local/
$ scp -r /usr/local/hadoop/ root@192.168.3.143:/usr/local/

在另外兩臺主機上修改zookeeper資料夾及其子目錄的許可權

$ sudo chown -R hadoop:hadoop /usr/local/hadoop/

3.3 安裝zookeeper

3.3.1 下載zookeeper

$ wget http://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

3.3.2 安裝zookeeper

# 解壓zookeeper-3.4.6.tar.gz
$ tar -zxvf zookeeper-3.4.6.tar.gz
# 拷貝解壓後zookeeper-3.4.6目錄的檔案移動到/usr/local/hadoop/目錄中,為了操作方便,將zookeeper-3.4.6的目錄名改為zookeeper
$ sudo mv zookeeper-3.4.6 /usr/local/hadoop/zookeeper

3.2.3 配置zookeeper

建立zookeeper臨時檔案

$ mkdir /usr/local/hadoop/zookeeper/tmp

配置/usr/local/zookeeper/conf/zoo.cfg

dataDir=/usr/local/hadoop/zookeeper/tmp

server.1=192.168.3.141:2888:3888
server.2=192.168.3.142:2888:3888
server.3=192.168.3.143:2888:3888

在/usr/local/hadoop/zookeeper/tmp/目錄中建立myid,並寫入1,儲存後退出

$ vim /usr/local/hadoop/zookeeper/tmp/myid

將本主機的zookeeper安裝目錄通過scp拷貝到其他兩臺主機

$ scp -r /usr/local/hadoop/zookeeper/ root@192.168.3.142:/usr/local/
$ scp -r /usr/local/hadoop/zookeeper/ root@192.168.3.143:/usr/local/

在另外兩臺主機上修改zookeeper資料夾及其子目錄的許可權

$ sudo chown -R hadoop:hadoop /usr/local/hadoop/zookeeper/

在gvm40上修改vim /usr/local/zookeeper/tmp/myid檔案,將1改為2
在gvm41上修改vim /usr/local/zookeeper/tmp/myid檔案,將1改為3

4. 啟動

4.1 啟動zookeeper叢集

在每臺主機上執行

$ /usr/local/hadoop/zookeeper/bin/zkServer.sh start

檢視主機zookeeper角色

$ /usr/local/hadoop/zookeeper/bin/zkServer.sh status

通過jps命令檢視守護程序

$ jps

4.2 啟動 journalnode

$ /usr/local/hadoop/sbin/hadoop-daemons.sh start journalnode

通過jps命令檢視每臺機器的守護程序中是否有JournalNode程序

4.3 格式化 HDFS

$ /usr/local/hadoop/bin/hdfs namenode -format

格式化後會在根據 core-site.xml 中的 hadoop.tmp.dir 配置生成個檔案,配置的是/usr/local/hadoop/tmp

將/usr/local/hadoop/tmp拷貝到其他兩臺機器

$ scp -r /usr/local/hadoop/tmp/ hadoop@192.168.3.142:/usr/local/hadoop/
$ scp -r /usr/local/hadoop/tmp/ hadoop@192.168.3.143:/usr/local/hadoop/

4.4 格式化 ZK

在gvm39 上執行格式化命令

$ /usr/local/hadoop/bin/hdfs zkfc -formatZK

4.5 啟動HDFS

在gvm39上執行

$ /usr/local/hadoop/sbin/start-dfs.sh

4.6 啟動yarn

在gvm41上執行

$ /usr/local/hadoop/sbin/start-yarn.sh

相關推薦

Hadoop2.6.0叢集搭建

1. 基本概念 2. 基礎配置 2.1 三臺伺服器(可以使用虛擬機器) 系統:Ubuntu14.04 64位 Server版 Jdk版本:jdk1.7.0_79 Hadoop版本: 2.6.0 Zookeeper版本: 3.4.6 2.

Weblogic 10.3.6.0 叢集搭建

Weblogic 叢集搭建 Oracle的Weblogic分開發者版本和生產版本,有32位和64位。一般生產版本的weblogic是64位的,安裝檔案是一個大小為1G多的jar包。去oracle官網上下載64版weblogic。這裡使用的版本是weblogic11g,版

Hadoop2.6.0在CentOS 7中的叢集搭建

我這邊給出我的叢集環境是由一臺主節點master和三臺從節點slave組成: master     192.168.1.2 slave1       192.168.1.3 slave2       192.168.1.4 slave3       192.168.1.5 申明:我搭建的這個叢集不是

spark1.6.0+Hadoop2.6.0+Scala-2.11.7 搭建分散式叢集

昨天又搗鼓了一下,網上有些寫得很不錯的教程,自己經過嘗試後覺得需要整理一下。 spark的執行模式有多種(見官網和Spark的Standalone模式安裝部署): local(本地模式):常用於本地開發測試,本地還分為local單執行緒和local-clu

CentOS 6.5下搭建hadoop 2.6.0叢集(二):網路配置

以Master機器為例,即主機名為”Master.hadoop”,IP為”192.168.2.30”進行一些主機名配置的相關操作。其他的Slave機器以此為依據進行修改。 檢視當前機器名稱 用下面命令進行顯示機器名稱,如果跟規劃的不一致,要按照下面進行修

在Eclipse開發環境下搭建Hadoop2.6.0

Eclipse版本Luna 4.4.1 安裝外掛hadoop-eclipse-plugin-2.6.0.jar,下載後放到eclipse/plugins目錄即可。 2. 配置外掛 2.1 配置hadoop主目錄 解壓縮hadoop-2.6.0.tar.g

Hadoop2.6.0安裝 — 叢集

這裡寫點 Hadoop2.6.0叢集的安裝和簡單配置,一方面是為自己學習的過程做以記錄,另一方面希望也能幫助到和LZ一樣的Hadoop初學者,去搭建自己的學習和練習操作環境,後期的 MapReduce 開發環境的配置和 MapReduce 程式開發會慢慢更新出來,LZ也是邊學習邊記錄更新部落格,路人

Hadoop-2.6.0+Zookeeper-3.4.6+Spark-1.5.0+Hbase-1.1.2+Hive-1.2.0叢集搭建

前言 本部落格目的在於跟大家分享大資料平臺搭建過程,是筆者半年的結晶。在大資料搭建過程中,希望能給大家提過一些幫助,這也是本部落格的

Hadoop2.6.0偽分佈環境搭建

Hadoop2.6.0偽分佈環境搭建 用到的軟體: 一、安裝jdk: 1、要安裝的jdk,我把它拷在了共享資料夾裡面。 (用優盤拷也可以) 2、我把jdk拷在了使用者資料夾下面。 (其他地方也可以,不過路徑要相應改變) 3、執行復制安裝解壓命令:  解壓完畢:

win8 x64 4核8G記憶體 搭建本地hadoop2.6.4叢集

之前一直都是在已經搭建好的linux系統上的hadoop叢集進行相關的大資料spark技能開發,但是並沒有很深入的自己去搭建環境和了解一些細節(可能本人也比較懶惰哈^-^),於是在做一個spark叢集處理產品線的小專案的時候,公司無法提供環境,於是在本地win8

編譯hadoop2.6.0 cdh 5.4.5 集成snappy壓縮

編譯 lib maven倉庫 cloudera pan url 下載源碼 cloud test 原文地址:http://www.cnblogs.com/qiaoyihang/p/6995146.html 1、下載源碼:http://archive-primary.cloud

Hadoop2.6.0版本號MapReudce演示樣例之WordCount(一)

set pat -m 代碼 分享 ont extends gravity csdn 一、準備測試數據 1、在本地Linux系統/var/lib/hadoop-hdfs/file/路徑下準備兩個文件file1.txt和file2.tx

Redis5.0.0叢集搭建-centos7

    一.安裝redis 1.下載redis 開啟redis官網 https://redis.io/  下載最新版 cd /usr/local/src wget http://download.redis.io/releases/re

Ubuntu + Hadoop2.7.3叢集搭建

先搭建Hadoop偽分佈: Ubuntu + Hadoop2.7.3偽分佈搭建 1.修改/etc/hosts檔案,IP對映 內容如下: 注:10.13.7.72為master節點IP,10.13.7.71為slave節點IP。(根據自己的IP地址設定) 2.修改maste

Elasticsearch-5.4.0叢集搭建

1、Elasticsearch-5.4.0 安裝包下載地址:https://www.elastic.co/downloads/past-releases/elasticsearch-5-4-0 2、解壓檔案:tar -zxvf /home/elasticsearch-5.4.0.tar.gz -

hadoop2.6.0原始碼剖析-客戶端(第二部分--讀(open)HDFS檔案)

在讀HDFS檔案前,需要先open該檔案,這個呼叫的是org.apache.hadoop.fs.FileSystem類物件,但是由於實際建立的物件是org.apache.hadoop.hdfs.DistributedFileSystem類物件,後者是前者的子類,所以呼叫父類中的FSDataInput

hadoop2.6.0原始碼剖析-客戶端(第二部分--DFSClient)下(HA代理)

我們繼續進入到org.apache.hadoop.hdfs.NameNodeProxies的函式 public static <T> ProxyAndInfo<T> createProxy(Configuration conf,URI nameNodeUri, Class

hadoop2.6.0原始碼剖析-客戶端(第二部分--DFSClient)上(非HA代理)

我們講解完了DistributedFileSystem,隨著程式碼我們來到了DFSClient建構函式中,該函式程式碼如下: /**     * Create a new DFSClient connected to the given nameNodeUri or

hadoop2.6.0原始碼剖析-客戶端(第二部分--DistributedFileSystem)

DistributedFileSystem這個類在包package org.apache.hadoop.hdfs中,為使用者開發基於HDFS的應用程式提供了API,這個類有幾個成員變數: private Path workingDir; private URI uri; private Stri

hadoop2.6.0原始碼剖析-客戶端(第二部分--Configuration)

我們來講講Configuration類,從名字可以看出,這個類跟配置檔案有關,它的繼承關係如下: 這個類比較大,我們先從一個點切入,後面有需要會追加其他部分,我們的切入點是getDefaultUri函式,但如下: public static URI getDefaultUri(Conf