<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
叢集環境至少需要3個節點(也就是3臺伺服器裝置):1個Master,2個Slave,節點之間區域網連線,可以相互ping通,下面舉例說明,設定節點IP分配如下:
Hostname | IP | User | Password |
---|---|---|---|
master | 192.168.59.133 | hadoop | 123456 |
slave1 | 192.168.59.134 | hadoop | 123456 |
slave2 | 192.168.59.135 | hadoop | 123456 |
三個節點均使用CentOS 6.5
系統,為了便於維護,叢集環境設定項最好使用相同使用者名稱、使用者密碼、相同hadoop、hbase、zookeeper目錄結構。
注: 可以通過編輯/etc/sysconfig/network
檔案來修改 hostname 。
##二、準備工作
在三臺機器上設定JDK環境,下載 jdk-8u51-linux-x64.rpm
檔案直接安裝:
$ rpm -ivh jdk-8u51-linux-x64.rpm
修改組態檔 vim /etc/profile
:
export JAVA_HOME=/usr/java/jdk1.8.0_51 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
然後重新載入組態檔使之生效:
$ source /etc/profile
分別在三個節點上新增hosts對映關係:
$ vim /etc/hosts
新增的內容如下:
192.168.59.133 master
192.168.59.134 slave1
192.168.59.135 slave2
CentOS預設安裝了ssh,如果沒有你需要先安裝ssh 。
叢集環境的使用必須通過ssh無密碼登陸來執行,本機登陸本機必須無密碼登陸,主機與從機之間必須可以雙向無密碼登陸,從機與從機之間無限制。
2.3.1 設定master無密碼自登陸
主要有三步:①生成公鑰和私鑰、②匯入公鑰到認證檔案、③更改許可權
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
測試,第一次登入可能需要yes確認,之後就可以直接登入了:
$ ssh localhost Last login: Sat Jul 18 22:57:44 2015 from localhost
對於 slave1 和 slave2,進行無密碼自登陸設定,操作同上。
2.3.2 設定主機->從機的無密碼登入
$ cat ~/.ssh/id_rsa.pub | ssh hadoop@slave1 'cat - >> ~/.ssh/authorized_keys'
$ cat ~/.ssh/id_rsa.pub | ssh hadoop@slave2 'cat - >> ~/.ssh/authorized_keys'
測試:
[hadoop@master ~]$ ssh hadoop@slave1 Last login: Sat Jul 18 23:25:41 2015 from master [hadoop@master ~]$ ssh hadoop@slave2 Last login: Sat Jul 18 23:25:14 2015 from master
2.3.3 設定從機->主機的無密碼登入
分別在slave1、slave2上執行:
$ cat ~/.ssh/id_rsa.pub | ssh hadoop@master 'cat - >> ~/.ssh/authorized_keys'
這裡會將hadoop、hbase、zookeeper的安裝包都解壓到/home/hadoop/
個人主資料夾下,並重新命名為hadoop、hbase、zookeeper。
組態檔都在~/hadoop/etc/
目錄下
3.1.1 core-site.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> </property> </configuration>
3.1.2 hadoop-env.sh
新增JDK路徑:
export JAVA_HOME=/usr/java/jdk1.8.0_51
3.1.3 hdfs-site.xml
<configuration> <property> <name>dfs.name.dir</name> <value>/home/hadoop/hadoop/name</value> </property> <property> <name>dfs.data.dir</name> <value>/home/hadoop/hadoop/data</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration>
3.1.4 mapred-site.xml
<configuration> <property> <name>mapred.job.tracker</name> <value>master:9001</value> </property> </configuration>
3.1.5 修改masters檔案
master
3.1.6 修改slaves檔案
slave1
slave2
注意:三臺機器上都進行相同的設定,都放在相同的路徑下。
使用scp
命令進行從本地到遠端(或遠端到本地)的檔案拷貝操作:
scp -r /home/hadoop/hadoop slave1:/home/hadoop scp -r /home/hadoop/hadoop slave2:/home/hadoop
進入master的~/hadoop
目錄,執行以下操作:
$ bin/hadoop namenode -format
格式化namenode,第一次啟動服務前執行的操作,以後不需要執行。
然後啟動hadoop:
$ sbin/start-all.sh
通過jps
命令能看到除jps外有5個程序:
$ jps 4866 NodeManager 4370 NameNode 4899 Jps 4648 SecondaryNameNode 4779 ResourceManager 4460 DataNode
解壓zookeeper-3.3.2.tar.gz並重新命名為zookeeper。
進入~/zookeeper/conf
目錄:
$ cp zoo_sample.cfg zoo.cfg
拷貝zoo_sample.cfg
檔案為zoo.cfg
,並編輯如下:
dataDir=/home/hadoop/zookeeper/data server.1=192.168.59.133:2888:3888 server.2=192.168.59.134:2888:3888 server.3=192.168.59.135:2888:3888
在dataDir目錄下新建myid檔案,輸入一個數位(master為1
,slave1為2
,slave2為3
):
$ mkdir /home/hadoop/zookeeper/data $ echo "1" > /home/hadoop/zookeeper/data/myid
同樣使用scp
命令進行遠端複製,只不過要修改每個節點上myid
檔案中的數位。
在ZooKeeper叢集的每個結點上,執行啟動ZooKeeper服務的指令碼:
$ ~/zookeeper/bin/zkServer.sh start
1.如果啟動報類似異常:QuorumCnxManager@384] - Cannot open channel to 2 at election address slave-02/192.168.0.178:3888 是可以忽略的,因為該服務啟動時會嘗試連線所有節點,而其他節點尚未啟動。通過後面部分可以看到,叢集在選出一個Leader後,最後穩定 了。其他結點可能也出現類似問題,屬於正常。
2.關閉防火牆。在hadoop叢集環境(linux系統)中最好關閉防火牆,不然會出現很多問題,例如namenode找不到datanode等。如果不關閉防火牆,使用者端使用API操作HDFS以及ZooKeeper,可能就會出現下面常見的兩種異常:
3.使用root許可權登陸後,輸入關閉防火牆命令:
$ /etc/init.d/iptables stop $ service iptables stop
修改禁用selinux: /etc/selinux/config檔案,設定"SELINUX=disabled"
解壓hbase-1.0.1.1-bin.tar.gz並重新命名為hbase。
export JAVA_HOME=/usr/java/jdk1.8.0_51 export HBASE_CLASSPATH=/home/hadoop/hadoop/etc/hadoop/ export HBASE_MANAGES_ZK=false
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.master</name> <value>master</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master,slave1,slave2</value> </property> <property> <name>zookeeper.session.timeout</name> <value>60000000</value> </property> <property> <name>dfs.support.append</name> <value>true</value> </property> </configuration>
在 regionservers 檔案中新增slave列表:
slave1
slave2
將整個hbase安裝目錄都拷貝到所有slave伺服器:
$ scp -r /home/hadoop/hbase slave1:/home/hadoop $ scp -r /home/hadoop/hbase slave2:/home/hadoop
1. 啟動ZooKeeper
~/zookeeper/bin/zkServer.sh start
2. 啟動hadoop
~/hadoop/sbin/start-all.sh
3. 啟動hbase
~/hbase/bin/start-base.sh
4. 啟動後,master上程序和slave程序列表
[hadoop@master ~]$ jps 6225 Jps 2897 SecondaryNameNode # hadoop程序 2710 NameNode # hadoop master程序 3035 ResourceManager # hadoop程序 5471 HMaster # hbase master程序 2543 QuorumPeerMain # zookeeper程序
[hadoop@slave1 ~]$ jps 4689 Jps 2533 QuorumPeerMain # zookeeper程序 2589 DataNode # hadoop slave程序 4143 HRegionServer # hbase slave程序
5. 進入hbase shell進行驗證
[hadoop@master ~]$ hbase/bin/hbase shell 2015-07-20 00:42:11,725 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable HBase Shell; enter 'help<RETURN>' for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell Version 1.0.1.1, re1dbf4df30d214fca14908df71d038081577ea46, Sun May 17 12:34:26 PDT 2015 hbase(main):001:0> list TABLE 0 row(s) in 1.6950 seconds => [] hbase(main):002:0> status 2 servers, 0 dead, 1.0000 average load hbase(main):003:0>
[1] www.smalldeng.blog.51cto.com/1038075/1329290
[2] www.marysee.blog.51cto.com/1000292/629405
到此這篇關於Hadoop+HBase+ZooKeeper分散式叢集環境搭建的文章就介紹到這了,更多相關Hadoop HBase ZooKeeper叢集搭建內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45