1. 程式人生 > >虛擬機器搭建haddoop、zookeeper、hbase叢集

虛擬機器搭建haddoop、zookeeper、hbase叢集

安裝jdk

開啟一個虛擬機器,右鍵單擊桌面選擇Open in Terminal,進入編輯介面:

1.假設使用者名稱是wxx(獲取root許可權)

(1)使wxx成為sudoer

       su 

cd  /etc

vi  sudoers

   i  進入編輯狀態

   在root ALL=(ALL) ALL的下一行編輯

     wxx  ALL=(ALL) ALL

   按ESC

   按Shift + :

   輸入wq!

(2)建立hadoop資料夾

cd

mkdir  hadoop

將jdk-7u79-linux-x64安裝包複製到hadoop檔案目錄下(與windows環境下類似)。

(3)解壓jdk-7u79-linux-x64.gz檔案

cd

cd  hadoop

tar  -zxvf  jdk-7u79-linux-x64.gz

(4)設定jdk環境變數

cd

cd  hadoop

su

gedit  /etc/profile

進入後在最後一行新增以下指令:

export  JAVA_HOME=/home/wxx/hadoop/jdk1.7.0_79

export  PATH=$JAVA_HOME/bin:$PATH

export  CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

點選儲存後關閉,輸入以下指令使jdk生效:

source  /etc/profile

(5)檢查jdk是否安裝成功

java  -version

成功後顯示如下資訊:

java version"1.7.0_79"

Java(TM) SE RuntimeEnvironment (build 1.7.0_79-b15)

Java HotSpot(TM) 64-Bit ServerVM (build 24.79-b02, mixed mode)

四、建立叢集

1.克隆虛擬機器

將已經安裝好jdk的虛擬機器克隆兩個,建立三個虛擬機器的叢集。

2.修改後hostname

su

vi  /etc/sysconfig/network

將三個虛擬機器分別命名masterslave1slave2

如圖:(完成後重啟虛擬機器reboot)

3.將三個虛擬機器的ip地址相互連線

首先必須確保虛擬機器聯網,如果NET模式連不上網,則選中橋接模式。

網路通暢後執行以下操作:

(1)分別對三個虛擬機器執行指令ifconfig,檢視各虛擬機器ip地址

(2)在master中執行以下指令

su

cd  /etc

gedit  /etc/hosts

進入編輯介面後按“IP地址   hostname”填寫資訊,如圖:

填寫完後按Save按鈕,關閉編輯頁。

(3)將配置好的檔案複製到slave1、slave2中

在master中執行以下指令:

scp  /etc/hosts  [email protected]:/etc/

scp  /etc/hosts  [email protected]:/etc/

(4)檢查各虛擬機器是否互聯

在master中執行以下指令:

ping  slave1

ping  slave2

連通後顯示如下:

 

4.配置SSH無金鑰登入

(1)關閉防火牆

對每個虛擬機器進行如下操作:

su

chkconfig  iptables  off

執行後重啟虛擬機器: reboot

(2)關閉防火牆後在master下執行以下指令:

cd

ssh-keygen  –t  rsa

cd  .ssh

cat  id_rsa.pub >>  authorized_keys

chmod  600 authorized_keys

scp  authorized_keys  [email protected]:~/.ssh/

scp  authorized_keys  [email protected]:~/.ssh/

(3)檢查無金鑰登入是否成功

ssh  slave1

ssh  slave2

ssh  master

成功後顯示如下:

 

5.安裝並配置hadoop-2.6.4(在master中)

(1)將hadoop-2.6.4.tar.gz安裝包複製到hadoop檔案目錄下(與windows環境下類似)。

(2)解壓hadoop-2.6.4.tar.gz

cd

cd  hadoop

tar  -zxvf  hadoop-2.6.4.tar.gz

(3)配置hadoop-2.6.4的各項檔案

cd

cd  hadoop/hadoop-2.6.4

cd  etc/hadoop

gedit  hadoop-env.sh     

在最後一行新增:export JAVA_HOME=/home/wxx/hadoop/jdk1.7.0_79

gedit  core-site.xml

新增程式碼:

<property>

<name>fs.default.name</name>

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

<final>true</final>

</property>

<property>

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

<value>/home/wxx/hadoop/tmp</value>

</property>

<property>

<name>ds.default.name</name>

<value>hdfs://master:54310</value>

<final>true</final>

</property>

gedit  hdfs-site.xml

新增程式碼:

<property>

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

<value>file:/home/wxx/hadoop/dfs/name</value>

<final>true</final>

</property>

<property>

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

<value>file:/home/wxx/hadoop/dfs/data</value>

<final>true</final>

</property>

<property>        

<name>dfs.replication</name>

<value>2</value>

</property>

gedit  mapred-site.xml

(注意:必須先複製mapred-site.xml.template檔案更名為mapred-site.xml

新增程式碼:

<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>

gedit  yarn-site.xml

新增程式碼:

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property> 

<property>

  <name>yarn.resourcemanager.hostname</name>

<value>master</value>

</property>

<property>

 <name>yarn.resourcemanager.address</name>

 <value>master:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>master:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>master:8031</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>master:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>master:8088</value>

</property>

gedit  master

新增程式碼:

master

gedit  slaves

新增程式碼:

master

slave1

slave2

(4)將配置好的檔案複製到slave1、slave2中

cd

cd  hadoop

scp  -r  hadoop-2.6.4 slave1:~/hadoop

scp  -r  hadoop-2.6.4  slave2:~/hadoop

(5)啟動叢集

cd

cd  hadoop/hadoop-2.6.4

bin/hdfs  namenode  -format    

// 格式化namenode

sbin/start-dfs.sh         //如果不能執行就是許可權問題需要給安裝目錄開通許可權

sbin/start-yarn.sh

sbin/hadoop-daemon.sh  start  secondarynamenode

(6)檢查叢集情況

jps (master 出現這幾個說明安裝成功!!!)

 

jps(slave1、slave2 出現一下出現下圖)

 

1、先安裝zookeeper,再安裝hbase,重中之重是先把三個主機的防火牆關掉,不然你會發現怎麼都搞不定的;

root賬戶下,

service iptables stop(關閉防火牆立即生效,但重啟後無效)

chkconfig iptables off(關閉防火牆重啟生效,但不會立即生效)

建議兩條命令都執行一遍,當然之前關過的,不必擔心了。

2、tar -zxvf zookeeper-*.gz(*是版本號,自己補齊) ,

然後在conf目錄下,

1)     cp zoo-simple.cfg zoo.cfg

2)     mkdirdata

3)     touchdata/myid  (myid檔案裡寫上server序號)

4)     gedit zoo.cfg

dataDir=/home/cc/hadoop/zookeeper-3.4.9/data/ (安裝目錄      

在尾部新增三行:

server.0=master:2888:3888

server.1=slave1:2888:3888

server.2=slave2:2888:3888

這裡的2888是leader的port,3888是follower的port。可以是其他值。

       5)然後

#scp -r ~/zookeeper-*slave1:~/hadoop

scp -r ~/zookeeper-3.4.9slave1:~/hadoop

#scp -r ~/zookeeper-*slave2:~/hadoop

scp -r ~/zookeeper-3.4.9slave2:~/hadoop

6)需要在/home/cc/hadoop/zookeeper-3.4.9/data/myidmyid是新建的

master裡面myid0

slave1裡面myid1

slave2裡面myid2

3、安裝hbase,

tar -zxvf hbase-*.gz,

①在conf/hbase-env.sh中,新增

export JAVA_HOME=/home/cc/hadoop/jdk1.8.0_121/(你的JDK目錄)還有

export HBASE_MANAGES_ZK=false

這句話的意思是不使用hbase自帶的zookeeper,其實這兩句話

       都是有的,被註釋了,但取值可能是不一樣的;

②在conf/hbase-site.xml

configuration標籤之間新增如下程式碼:

<property>

<name>hbase.rootdir</name>

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

  <!--hbase目錄的位置,開啟之後,你會發現eclipsehadoop目錄裡邊多了個hbase目錄-->

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

  <!--分散式叢集-->

</property>

<property>

     <name>hbase.zookeeper.quorum</name>

<value>master:2181,slave1:2181,slave2:2181</value>

  <!--這是叢集裡邊的機器-->

</property>

<property>

<name>dfs.replication</name>

<value>1</value>

  <!---->

</property>

       ③在conf/regionservers檔案裡邊寫入

master

slave1

slave2

兩個從屬機的名稱,這個是連線遠端伺服器的名單,因為,我們一般是在master上開啟hbase的,要遠端連線另外兩臺的。

       ④同樣的

#scp -r ~/hbase-* slave1:~/hadoop

scp -r hbase-1.2.5 slave1:~/hadoop

#scp -r ~/hbase-* slave2:~/hadoop

scp -r hbase-1.2.5 slave2:~/hadoop

(注意替換)

!!!配置zookeeperhbasePATH

vi /etc/profile(3個虛擬機器一起新增

新增

exportJAVA_HOME=/home/cc/hadoop/jdk1.8.0_121

exportPATH=$JAVA_HOME/bin:$PATH

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

exportHADOOP_HOME=/home/cc/hadoop/hadoop-2.6.5/

exportPATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

exportZOOKEEPER_HOME=/home/cc/hadoop/zookeeper-3.4.9/

exportPATH=$ZOOKEEPER_HOME/bin:$PATH

exportHBASE_HOME=/home/cc/hadoop/hbase-1.2.5/

exportPATH=$HBASE_HOME/bin:$PATH

scp -r  /etc/profile  slave1:/etc/profile

scp -r   /etc/profile   slave2:/etc/profile

source   /etc/profile

重啟

4、啟動叢集,啟動順序hadoop->zookeeper->hbase

1start-all.sh(啟動hadoop叢集)

2zkServer.sh start(每臺機器都要執行該命令)然後你可以檢視

zkServer.sh status  (會顯示是leader還是follower,(我的是slave1是leader,哪個是leader不要緊的)然後執行

// zkCli.sh  -server master:2181,slave1:2181,slave2:2181(2181是zookeeper的監聽埠)

3start-hbase.sh   (可能要等上一分鐘

4jps

出現:

3650 DataNode

3986 ResourceManager

3812 SecondaryNameNode

4421 QuorumPeerMain

4744 Jps

3544 NameNode

4571 HMaster

4700 HRegionServer

4094 NodeManager

5hbaseshell

出現:(成功!!!)

2017-04-1719:29:25,502 WARN  [main]util.NativeCodeLoader: Unable to load native-hadoop library for your platform...using builtin-java classes where applicable

SLF4J:Class path contains multiple SLF4J bindings.

SLF4J:Found binding in[jar:file:/home/cc/hadoop/hbase-1.2.5/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J:Found binding in[jar:file:/home/cc/hadoop/hadoop-2.6.5/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J:See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J:Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]

HBaseShell; enter 'help<RETURN>' for list of supported commands.

Type"exit<RETURN>" to leave the HBase Shell

Version1.2.5, rd7b05f79dee10e0ada614765bb354b93d615a157, Wed Mar 1 00:34:48 CST 2017

hbase(main):001:0>

相關推薦

虛擬機器搭建haddoopzookeeperhbase叢集

安裝jdk 開啟一個虛擬機器,右鍵單擊桌面選擇Open in Terminal,進入編輯介面: 1.假設使用者名稱是wxx(獲取root許可權) (1)使wxx成為sudoer        su  cd  /etc vi  sudoers    i

階段總結——用虛擬機器搭建一個高可用負載均衡叢集架構

搭建一個高可用負載均衡叢集架構出來,並執行三個站點,具體需求如下。 ------------------------------------------------------------------------------------------ 基礎: 1 設計你認為合理的架構,用visio把架構圖

hadoopzookeeperhbase的啟動關閉

ado bsp nbsp serve star 目錄 per slave -h      hadoop     啟動:進入到hadoop目錄,sbin/start-all.sh   關閉:sbin/stop-all.sh   zookeeper   啟動:進入到zook

Java虛擬機器自動記憶體管理機制物件建立及記憶體分配

  1、物件是如何建立: 步驟:    (1)、虛擬機器遇到new <類名>的指令---->根據new的引數是否在常量池中定位一個類的符號引用    (2)、檢測該符號引用代表的類是否已經被載入、解析、和初始化。(如果沒有則

mysqlflumezookeeperkafka快速搭建

準備做實時資料計算。 資料來源為mysql的20張表吧。通過flume解析binlog日誌,然後sink到kafka,由sparkstreaming消費,實時處理業務資料生成目標資料寫到我們的mysql中。   一.mysql搭建 0. 檢查是否已安裝並刪除已安裝的包

Java虛擬機器自動記憶體管理機制執行時資料區域深入瞭解

執行時資料區域:     (1)、程式計數器         a、定義:是一塊較小的記憶體空間,可以看作是當前執行緒所執行的位元組碼的行號指示器。         b、執行緒私有:因為多執行緒是通過執行緒輪流切換並且分配處理器執行時間的方式來實現的,任何時刻,        

一個虛擬機器部署多個tomcattomcat啟動慢問題

(一) 、一個虛擬機器內部署連個tomcat 以tomcat8為例: 1、解壓tomcat的tar包到兩個不同的資料夾: /usr/local/tomcat8-1 /usr/local/tomcat8-2 2、配置 /etc/profile 在 /etc/p

VMware14 安裝CentOS7 實現宿主機ping通虛擬機器虛擬機器ping通宿主機虛擬機器能上網且能ping通百度

本文旨在通過通過虛擬機器VMware14來安裝CentOS7 系統,並配置固定IP來實現在Windows系統中使用Linux環境。 本文目錄: 0、本機環境 1、VMware14 初始化 1.1、安裝VMware14

VMware Workstation虛擬機器找不到IP虛擬機器不能正常啟動

之前碰到好多次如題所示的問題,也在網上找了許多教程。最後總結只需一個方法基本全部可以解決。1)右擊我的電腦->管理->服務和應用程式->服務在“服務”裡找到和VMware相關的程序,將VMware NAT Service、VMware DHCP Servic

XenAPI中查詢虛擬機器或主機的CPU記憶體等一些資訊

因為公司需要做這方面的介面所以自己在網上查了好久才發現方法做了出來,其中遇到了不少的坑寫一下以便以後再次遇到。 1、首先在xenAPI給的一些介面中雖然有關於這方面的介面但是現在的版本不能直接得到,如果直接呼叫VM_guest_metrics中的方法返回的資料是空的。

Java虛擬機器(四)——物件的建立儲存和定位

物件的建立   Java是一門面向物件的程式語言,Java 程式執行過程中無時無刻都有物件被創建出來,在語言層面上,建立物件(例如克隆,反序列化)通常僅僅是一個new關鍵字而已,例如下面的語句。 Object obj = new Object(); 其實

多臺虛擬機器搭建zookeeper叢集

一、什麼是zookeeper(摘自百度百科) ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務

Mac 虛擬機器Parallels Desktop安裝win7 win10系統

mac上非常優秀的虛擬機器 Parallels Desktop 13,那麼如何安裝windows系統呢,今天博主給大家演示一下win7 旗艦版和win 10的安裝過程。mac上非常優秀的虛擬機器 Parallels Desktop 13裡邊內含win7 旗艦版的安裝過程和wi

【Linux】虛擬機器+Ubuntu14.04安裝版本分割槽筆記

1.虛擬機器與Linux系統版本 VM12+ubuntu14.04.1或ubuntu14.04.2 VM12: 因為付費。需要自己尋找下載安裝 Ubuntu14: 官方下載列表 ubuntu14.04.1官網下載連結 ubuntu14.04.

virtualbox虛擬機器使用筆記-安裝增強功能網路usb裝置共享目錄

》。 9.設定vbox的usb裝置 這部分主要摘自 http://forum.ubuntu.org.cn/viewtopic.php?f=65&t=164209 照著做就行了 ------------------------------------------* 為virtualbox開啟usb裝置支

在linux上基於KVM虛擬機器搭建lamp

1.準備網路拓撲圖實現基於KVM的虛擬化,需要三臺kvm虛擬機器,分別安裝mysql,php-fpm,httpd,其次,需要在安裝php-fpm上安裝php-mysql,用來使php能夠連線上mysql資料庫,同時需要兩個虛擬網橋,以及一個物理橋用來保證外部與php-fpm伺服器的連線,同時保證mysql伺服

nginx 虛擬機器搭建設定配置檔案

server{ charset utf-8; client_max_body_size 128M; listen 80; server_name demo.com; root /Users/playcrab/www/demo; index index.php index.html; acces

【轉】【Redis】分散式鎖的幾種使用方式(rediszookeeper資料庫)

https://blog.csdn.net/u010963948/article/details/79006572?utm_source=blogxgwz9 https://blog.csdn.net/qq_37606901/article/details/79569250?utm_source

虛擬機器環境下使用java訪問hbase進行表操作2

1:建立student表,表結構包含info和course兩個列族 java程式碼: package myhbase; import java.io.IOException; import org.apache.hadoop.conf.Configuration;  //匯入hadoop和h

虛擬機器環境下使用java訪問hbase進行表操作3

該篇內容是承接2的: 1. public static void deleTable(String myTableString)throws IOException{ 2.          &n