天天看點

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

1.配置 hosts、hostname(添加hosts的映射關系)

指令:vi /etc/hosts

3台虛拟機的 hosts 配置檔案如下:

(注:主從虛拟機的命名應該為master、slave1、slave2,由于不小心打錯了下面命名都為salve了)

IP 虛拟機名

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

2.配置 SSH無密登陸(叢集和僞分布式需要配置)

2.1 首先在 master 上生成 ssh 公鑰

指令:ssh-keygen -t rsa

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

然後連續按 3 個回車即可。

2.2 到生成 ssh 密鑰的目錄下檢視是否成功

指令:cd ~/.ssh/

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

2.3 将 id_rsa.pub 中的内容複制到 authorized_keys 檔案中。

指令:cat id_rsa.pub >> authorized_keys

2.4 将 authorized_keys 分發給另外兩個節點

指令:scp authorized_keys salve1:~/.ssh/

scp authorized_keys salve2:~/.ssh/

或者将主機id_rsa.pub檔案中内容複制到其他兩台機器authorized_keys中

2.5 測試 ssh 無密登陸是否成功

指令: ssh master

ssh salve1

ssh slave2

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

3 安裝jdk 并配置環境變量

3.1首先解除安裝虛拟機自帶jdk

檢視自帶jdk的版本:java -version

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

檢視具體安裝在虛拟機上面的java資訊:rpm -qa | grep java

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

删除原有虛拟機預設的JDK版本(除了noarch結尾的)

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

再次檢視java資訊:rpm -qa | grep java

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

此時自帶jdk删除成功。

将要安裝的jdk包拉至root/Downloads下:

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

在usr/local下建立java目錄:mkdir java

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

進入root/Downloads将jdk解壓至/usr/local/java下:

tar -zxvf jdk-8u212-linux-x64.tar.gz -C /usr/local/java/

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

解壓成功後檢視/usr/local/java下:

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

配置java的環境變量:vi /etc/profile

添加如下:

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

使配置生效:source /etc/profile

測試是否配置成功

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

4.關閉防火牆

centos7中:systemctl stop firewalld.service(停止firewall)

systemctl disable firewalld.service(禁止firewall開機啟動)

firewall-cmd --state

(檢視預設防火牆狀态–關閉後顯示not running,開啟後顯示running)

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

其他:service iptables stop(關閉)

5.安裝zookeeper(完全分布式叢集)

5.1下載下傳并解壓到指定目錄

解壓指令:tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local/

修改名字為:zookeeper

mv zookeeper-3.4.5 zookeeper

5.2 在主目錄下建立data和logs兩個目錄用于存儲資料和日志:

cd /usr/local/zookeeper

mkdir data

mkdir logs

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

在conf目錄下複制zoo_sample.cfg為zoo.cfg檔案或将zoo_sample.cfg改名為zoo.cfg,修改其中的内容:

tickTime=2000

dataDir=/usr/local/zookeeper/data

dataLogDir=/usr/local/zookeeper/logs

clientPort=2181

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

5.3 data目錄下myid的修改

master中:echo ‘1’ > myid

slave1中:echo ‘2’ > myid

slave2中:echo ‘3’ > myid

修改完成後檢視cat myid

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

5.4 将master主機上的zookeeper複制到salve1和salve2中相同目錄下

指令:scp -r /usr/local/zookerper slave1:/usr/local/

scp -r /usr/local/zookerper slave2:/usr/local/

複制完成後記得修改myid檔案(分别為2和3)

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

5.5分别在三台主機上執行bin目錄下的zkServer.sh檢視是否配置成功

指令:進入bin目錄,啟動、停止、重新開機和檢視目前節點狀态(包括叢集中是何角色)分别執行:

./zkServer.sh start 啟動

./zkServer.sh stop 停止

./zkServer.sh restart 重新開機

./zkServer.sh status 狀态

啟動完畢後執行檢視狀态指令,若一個是leader,另外兩個是follower則證明配置成功

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置
Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置
Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

6.配置HADOOP

6.1:下載下傳并解壓到指定目錄

解壓指令:tar -zxvf hadoop-3.1.2.tar.gz -C /usr/local

6.2:修改配置檔案

配置檔案的路徑在 hadoop-3.1.2/etc/hadoop中

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

1)hadoop-env.sh

vi hadoop-env.sh

添加一行

export JAVA_HOME=/usr/local/java/jdk1.8.0_212

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

2)core-site.xml

vi core-site.xml

fs.defaultFS

hdfs://master/

<!-- 指定 hadoop 運作時産生檔案的存儲路徑 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop-3.1.2/tmp</value>
</property>
           

![在這裡插入圖檔描述](https://img-blog.csdnimg.cn/20190703155831443.png)

3)hdfs-site.xml

vi hdfs-site.xml

<!-- namenode 上存儲 hdfs 名字空間中繼資料-->
	<property>
    	<name>dfs.namenode.name.dir</name>
    	<value>/usr/local/hadoop-3.1.2/namenode</value>
	</property>

	<!-- datanode 上資料塊的實體存儲位置-->
	<property>
    	<name>dfs.datanode.data.dir</name>
    	<value>/usr/local/hadoop-3.1.2/datanode</value>
	</property>

	<!-- 設定 hdfs 副本數量 -->
	<property>
    	<name>dfs.replication</name>
    	<value>3</value>
           
Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

4)mapred-site.xml

vi mapred-site.xml

<!-- 指定yarn運作-->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

<property>
    <name>yarn.app.mapreduce.am.env</name>
    <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.2</value>
</property>

<property>
    <name>mapreduce.map.env</name>
    <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.2</value>
</property>

<property>
    <name>mapreduce.reduce.env</name>
    <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.2</value>
</property>
           

![在這裡插入圖檔描述](https://img-blog.csdnimg.cn/20190703155854455.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY2NzgzNQ==,size_16,color_FFFFFF,t_70)

5)yarn-site.xml

<!-- 指定ResourceManager的位址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
</property>

<!-- reducer取資料的方式是mapreduce_shuffle -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
           

![在這裡插入圖檔描述](https://img-blog.csdnimg.cn/2019070315590430.png)

6)workers

将原有的localhost删除,添加如下内容:

salve1

salve2

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

7)start-dfs.sh 和 stop-dfs.sh

進入/usr/local/hadoop-3.1.2/sbin,分别在 start-dfs.sh 和 stop-dfs.sh 中的頭部空白處添加如下内容:

HDFS_DATANODE_USER=root

HDFS_DATANODE_SECURE_USER=hdfs

HDFS_NAMENODE_USER=root

HDFS_SECONDARYNAMENODE_USER=root

8)start-yarn.sh 和 stop-yarn.sh

進入/usr/local/hadoop-3.1.2/sbin,分别在 start-yarn.sh 和 stop-yarn.sh 中的頭部空白處添加如下内容:

YARN_RESOURCEMANAGER_USER=root

HADOOP_SECURE_DN_USER=yarn

YARN_NODEMANAGER_USER=root

9)配置Hadoop環境變量

在/etc/profile中添加下面内容:

export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.2 export PATH= P A T H : : PATH:: PATH::HADOOP_HOME/bin:$HADOOP_HOME/sbin

由于之前配置了java的環境變量,故配置如下:

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

source /etc/profile

6.3 同步三台機器

指令: scp -r hadoop-3.1.2/ salve1:/usr/local/

scp -r hadoop-3.1.2/ salve2:/usr/local/

修改salve1、salve2上的環境變量與master保持一緻

6.4 啟動hadoop(主節點master,隻需要在第一次啟動時執行)

1)格式化名稱節點,在hadoop的bin目錄下執行:

指令:cd /usr/local/hadoop/hadoop-3.1.2/bin

hdfs namenode -format

出現以下資訊證明格式化成功

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

2)在master節點上啟動hadoop

指令:cd sbin/

./start-all.sh

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

3)檢視是否啟動成功(jps指令檢視程序)

master節點:

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

salve1節點:

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

salve2節點:

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

當 3 台節點分别出現這些 java 程序,則 hadoop 啟動成功(QuorunPeerMain是zookeeper的程序)

7.Habase配置

7.1解壓habse到指定目錄

解壓指令:tar -zxvf hbase-1.2.9.tar.gz -C /usr/local

(實際配置中未配置hbase的環境變量,仍可啟動成功)

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

7.2修改配置檔案

在hbase的conf目錄下

1)hbase-env.sh

加入以下内容:

export JAVA_HOME=/usr/local/java/jdk1.8.0_212

export HBASE_CLASSPATH=/usr/local/hadoop-3.1.2/etc/hadoop/

export HBASE_MANAGES_ZK=false

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

注:BASE_MANAGES_ZK 來切換zookeeper。如果未true,是讓Hbase啟動的時候同時也啟動zookeeper。如果自己安裝了zookeeper,則這裡要配置成false。

2)hbase-site.xml

hbase.tmp.dir

/usr/local/hbase-1.2.9/tmp

zookeeper.session.timeout

3600000

<property>
    <name>hbase.rootdir</name>
    <value>hdfs://master/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,salve1,salve2</value>
</property>
<property>
    <name>zookeeper.session.timeout</name>
    <value>60000000</value>
           

dfs.support.append true

<!--禁止magor compaction-->
<property>
    <name>hbase.hregion.majorcompaction</name>
    <value>0</value>
</property>
<!--禁止split-->
 <property>
    <name>hbase.hregion.max.filesize</name>
    <value>536870912000</value>
 </property>
 <!---->
 <property>
    <name>hbase.hstore.blockingStoreFiles</name>
    <value>2100000000</value>
 </property>
 <property>
    <name>hbase.regionserver.handler.count</name>
    <value>100</value>
 </property>
<property>
    <name>hbase.master.info.port</name>
    <value>60010</value>
</property>
           

3)regionservers

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

7.3将配置好的hbase拷貝到另外兩台機器中

scp -r hbase-1.2.9/ salve1:/usr/local/

scp -r hbase-1.2.9/ salve2:/usr/local/

7.4 在master中啟動hbase

在bin目錄下執行./start-hbase.sh

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

7.5: jps檢視程序

master節點出現:18552 HMaster

slave1節點出現:13201 HRegionServer

slave2節點出現:xxxxx HRegionServer

則代表啟動成功

8.phoenix(操作hbase)配置

8.1将和hbase對應版本的phoenix解壓到指定目錄

解壓指令:tar -zxvf apache-phoenix-4.14.1-HBase-1.2-bin.tar.gz -C /usr/local

8.2 将phoenix安裝目錄下的

phoenix-4.8.0-HBase-0.98-server.jar

phoenix-core-4.8.0-HBase-0.98.jar

拷貝到hbase的lib目錄下

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

将hbase-1.2.9/conf中的hbase-site.xml檔案複制到phoenix的bin目錄下

需先将phoenix的bin目錄下原有的hbase-site.xml删除,再進行複制

指令:cp /usr/local/hbase-1.2.9/conf/hbase-site.xml /usr/local/phoenix/apache-phoenix-4.14.1-HBase-1.2-bin/bin

8.3 将master上的phoenix拷貝到salve1、salve2兩台機器上

再分别将phoenix安裝目錄下的phoenix-4.8.0-HBase-0.98-server.jar、phoenix-core-4.8.0-HBase-0.98.jar拷貝到hbase的lib目錄下

8.4在master上啟動phoenix:

bin目錄下執行:./sqlline.py master:2181

如無報錯資訊則啟動成功

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

8.5 sqlline操作使用hbase的一些語句:

-> !tables

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

建立表、插入資料、查詢資料:

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

退出phoenix:!q

Zookerper3.4.14+hadoop-3.1.2+hbase-1.2.9完全分布式叢集配置

繼續閱讀