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