Hadoop 3.0 zookeeper spark hive hbase scala搭建 集羣搭建

                                    Hadoop 3.0 集羣搭建

 

目錄

                                    Hadoop 3.0 集羣搭建

一、hadoop搭建

二、zookeeper搭建

三、hbase搭建

四、Spark安裝

五、安裝hive

六、搭建scala


 

一、hadoop搭建

  • 機器信息

機器

Ip

Centos7 one

192.168.1.25

Centos7 two

192.168.1.32

Centos7 three

192.168.1.193

  • 改變hostname

機器

Ip

Hostname

Centos7 one

192.168.1.25

master

Centos7 two

192.168.1.32

node1

Centos7 three

192.168.1.193

node2

  1. 查看hostname   : hostname
  2. 修改hostname   : hostnamectl set-hostname master
  3. 重啓:reboot
  • 改變hosts

      在每一個機器中執行  vim /etc/hosts  加入

      192.168.1.25 master

       192.168.1.32 node1

       192.168.1.193 node1

下面截圖有點不對

  • 先關閉防火牆
  1. 查看防火牆信息:systemctl status firewalld
  2. 關閉防火牆: systemctl stop firewalld
  3. 關閉開機自啓:systemctl disable firewalld
  • 配置SSH免密登錄

1.將三臺機器先執行以下命令 生成ssh祕鑰:ssh-keygen –t rsa,一直回車

2.把公鑰文件放入授權文件中

執行: cd .ssh/

在執行: cat id_rsa.pub >> authorized_keys

注:

authorized_keys:存放遠程免密登錄的公鑰,主要通過這個文件記錄多臺機器的公鑰
id_rsa : 生成的私鑰文件
id_rsa.pub : 生成的公鑰文件
know_hosts : 已知的主機公鑰清單

 

3.通過scp將內容寫到對方的文件中

scp -p ~/.ssh/id_rsa.pub  root@node1:/root/.ssh/authorized_keys

4.驗證是否成功

ssh  root@node1   如果進去說明正確

  • 配置jdk(全部要配置)

1.上傳解壓jdk

2.配置jdk

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

export PATH=$JAVA_HOME/bin:$PATH

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

3.source /etc/profile

  • 下載Hadoop包

官網:http://hadoop.apache.org/releases.html    //  http://archive.apache.org/dist/hadoop/common/stable2/

  • 配置hadoop環境變量

1.

export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.2

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

export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

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

 

2.source /etc/profile

  • 修改hadoop的jdk配置(只需要主機操作,其他的先不操作)
  1. cd/usr/local/hadoop/hadoop_3.1.2/etc/hadoop
  2. vim Hadoop_env.sh
  3. export JAVA_HOME=/usr/local/java/jdk1.8.0_201/

 

如果輸入hado  在用tab補全是 Hadoop 就說明好了

  • 修改hadoop配置

1.在 /usr/local/hadoop/ 下創建 tmp  hdfs/name  hdfs/data 文件

2.修改core-site.xml

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
    <description>HDFS的URI</description>
</property>

<property>
    <name>hadoop.tmp.dir</name>
    <value>file:/usr/local/hadoop/tmp</value>
    <description>節點上本地的hadoop臨時文件夾</description>
</property>

3.修改 hdfs-site.xml

<property>
                <name>dfs.namenode.http-address</name>
                <value>master:50070</value>
        </property>
        <!--
        <property>
                <name>dfs.datanode.http.address</name>
                <value>master:50075</value>
                <description>
                The datanode http server address and port.
                If the port is 0 then the server will start on a free port.
                </description>
        </property>
        -->
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop/hdfs/name</value>
                <description>namenode上存儲hdfs名字空間元數據 </description>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/hdfs/data</value>
                <description>datanode上數據塊的物理存儲位置</description>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
                <description>副本個數,默認是3,應小於datanode機器數量</description>
        </property>

    <!--後增,如果想讓solr索引存放到hdfs中,則還須添加下面兩個屬性-->
        <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>
        </property>
        <property>
            <name>dfs.permissions.enabled</name>
            <value>false</value>
        </property>

4.修改mapred-site.xml

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    <description>指定mapreduce使用yarn框架</description>
</property>

5.修改yarn-site.xml

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
    <description>指定resourcemanager所在的hostname</description>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    <description>
         NodeManager上運行的附屬服務。
         需配置成mapreduce_shuffle,纔可運行MapReduce程序
    </description>
</property>

6.輸入 vim workers 修改配置文件(老版本是slaves文件,3.0.3 用 workers 文件代替 slaves 文件)

master
node1
node2

7.將hadoop的配置拷貝到其他機器上

sudo scp -rp /usr/local/hadoop/hadoop-3.1.2 node1: /usr/local/hadoop/

sudo scp -rp /usr/local/hadoop/hadoop-3.1.2 node2: /usr/local/hadoop/
  • Hadoop搭建基本好了,下面我們來運行hadoop

1.格式化       hdfs namenode –format 第一次使用

2.添加HDFS權限,編輯如下腳本,在第二行空白位置添加HDFS權限

分別對下面兩個文件操作

[root@hadoop01 sbin]# vim sbin/start-dfs.sh 
[root@hadoop01 sbin]# vim sbin/stop-dfs.sh 

加入下面的內容

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

3.添加Yarn權限:編輯如下腳本,在第二行空白位置添加Yarn權限

操作下面兩個文件

[root@hadoop01 sbin]# vim sbin/start-yarn.sh 
[root@hadoop01 sbin]# vim sbin/stop-yarn.sh 

加入以下內容

YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root

注意:若不添加上述權限,則會報錯:缺少用戶權限定義所致。

ERROR: Attempting to launch hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting launch.
Starting datanodes
ERROR: Attempting to launch hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting launch.
Starting secondary namenodes [localhost.localdomain]
ERROR: Attempting to launch hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting l

 

  • 初始化 & 啓動

#格式化

[root@hadoop01 hadoop-3.2.0]# bin/hdfs namenode -format

#啓動(兩種方式均可啓動)

方法一:

[root@hadoop01 hadoop-3.2.0]# start-all.sh

方法二:

[root@hadoop01 hadoop-3.2.0]# sbin/start-dfs.sh 

[root@hadoop01 hadoop-3.2.0]# sbin/start-yarn.sh

 

驗證

IP根據實際情況換成自己的IP
hdfs管理界面:http://192.168.1.130:50070
yarn管理界面:http://192.168.1.130:8088

二、zookeeper搭建

1.下載zookeeper包

https://archive.apache.org/dist/zookeeper/

放在/usr/local/zookeeper  下並解壓

2.修改/etc/profilr

export ZOOKEEPER=/usr/local/zookeeper/zookeeper-3.5.6
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.2
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export HBASE_MANAGES_ZK=true
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3.拷貝zoo_sample.cfg 爲 zoo.cfg

cd /usr/local/zookeeper/zookeeper-3.5.6/conf/

cp zoo_sample.cfg zoo.cfg 

4.修改三個zookeeper節點中的zoo.cfg文件,修改dataDir,添加server.0、server.1、server.2

5.在 /usr/local/zookeeper 下面新建myid文件

cd /usr/local/zookeeper
vim myid

在master節點的myid文件中寫入1保存

6.拷貝到其他節點(環境變量和myid文件要修改)

sudo scp -rp /usr/local/zookeeper/ node2:/usr/local/

7.啓動驗證

啓動:

/usr/local/zookeeper/zookeeper-3.5-6/bin/zkServer.sh start

驗證:

輸入 jps 出現
QuorumPeerMain


三、hbase搭建


1.下載hbase包

cd /usr/local

mkdir hbase

wget  http://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.2.1/hbase-2.2.1-bin.tar.gz

或者在官網下  https://archive.apache.org/dist/hbase/

2.修改 /etc/profile 文件

export ZOOKEEPER=/usr/local/zookeeper/zookeeper-3.5.6
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.2
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export HBASE_HOME=/usr/local//hbase/hbase-2.2.1/
export HBASE_MANAGES_ZK=true
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER/bin:$HBASE_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3.在/usr/local/hbase 下面新建 tmp

cd /usr/local/hbase
mkdir tmp

4.修改master節點的配置文件hbase-site.xml(gedit /usr/local/hbase/conf/hbase-site.xml)

<configuration>

        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://master:9000/hbase</value>
        </property>

        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>

        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>master,node1,node2</value>
        </property>

        <property>
                <name>hbase.temp.dir</name>
                <value>/usr/local/hbase/tmp</value>
        </property>

        <property>
                <name>hbase.zookeeper.property.dataDir</name>
                <value>/usr/local/zookeeper</value>
        </property>

        <property>
                <name>hbase.master.info.port</name>
                <value>16010</value>
        </property>

</configuration>

 

5.修改配置文件regionservers(gedit /usr/local/hbase/conf/regionservers),刪除裏面的localhosts,改爲:

master
node1
node2

 

6.修改修改master節點的配置文件hbase-env.sh

添加 export JAVA_HOME=/usr/local/java/jdk1.8.0_201/

 

7.拷貝到從機(/etc/profile要自己配置)

scp -r /usr/local/hbase root@node1:/usr/local/
scp -r /usr/local/hbase root@node2:/usr/local/

 

8.啓動

./start-hbase.sh  (bin下面) 啓動出現下面的內容說明啓動該成功

9.驗證

(1)、啓動好了之後輸入./hbase shell 進入之後說明沒問題了

(2)、輸入jps查看

 

四、Spark安裝

 

1.下載spark

cd /usr/local/spark
wget http://mirrors.hust.edu.cn/apache/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz
tar –zxvf spark-2.4.0-bin-hadoop2.7.tgz

 

2.配置環境變量

export ZOOKEEPER=/usr/local/zookeeper/zookeeper-3.5.6
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.2
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export HBASE_HOME=/usr/local//hbase/hbase-2.2.1/
export SPARK_HOME=/usr/local/spark/spark-2.4.0-bin-hadoop2.7/
export HBASE_MANAGES_ZK=true
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$ZOOKEEPER/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 

source /etc/profile

 

3.spark集羣配置

cd /usr/local/sparck/ spark-2.4.0-bin-hadoop2.7/conf

cp spark-env.sh.template spark-env.sh

配置 /conf/sparck-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_201/
export SCALA_HOME=/usr/local/scala
export HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-3.1.2/etc/hadoop
export HADOOP_HDFS_HOME=/usr/local/hadoop/hadoop-3.1.2/
export SPARK_HOME=/usr/local/spark/spark-2.4.0-bin-hadoop2.7/
export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077
export SPARK_MASTER_HOST=master
export SPARK_WORKER_CORES=2
export SPARK_WORKER_PORT=8901
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=2g
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/hadoop-3.1.2/bin/hadoop classpath)
export SPARK_MASTER_WEBUI_PORT=8079
source spack-env.sh

 

4.配置從機

cd /usr/local/sparck/ spark-2.4.0-bin-hadoop2.7/conf
cp slaves.template slaves
vim slaves

寫入
master
node1
node2

 

5.複製spack到從機(從機需要環境變量配置)

scp -r /usr/local/spark/ root@node1:/usr/local

scp -r /usr/local/spark/ root@node2:/usr/local

 

6.啓動

cd /usr/local/sparck/ spark-2.4.0-bin-hadoop2.7
./sbin/start-all.sh
bin/run-example SparkPi 2>&1 | grep "Pi is"

 

如果出現以下情況說明成功

 

 

在虛擬機上輸入:http://master:8079 可以看到web頁面

 

五、安裝hive

 

1.下載並解壓

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz

tar –zxvf apache-hive-3.1.2-bin.tar.gz

或者   https://archive.apache.org/dist/hive/

2.配置環境變量

vim /etc/profile


寫入


export ZOOKEEPER=/usr/local/zookeeper/zookeeper-3.5.6
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.2
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export HBASE_HOME=/usr/local//hbase/hbase-2.2.1/
export SPARK_HOME=/usr/local/spark/spark-2.4.0-bin-hadoop2.7/
export HIVE_HOME=/usr/local/hive/apache-hive-3.1.2-bin/
export HBASE_MANAGES_ZK=true
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

執行
source /etc/profile

 

3.安裝設置MYSQL

新建hive數據庫:create database hive;

將hive數據庫的字符編碼設置爲latin1(重要):

cd /usr/local/hive/apache-hive-3.1.2-bin/conf

mv hive-default.xml.template hive-default.xml

上面命令是將hive-default.xml.template重命名爲hive-default.xml,然後,使用vim編輯器新建一個配置文件hive-site.xml,命令如下:

cd /usr/local/hive/conf
vim hive-site.xml

 

在hive-site.xml中添加如下配置信息,其中:USERNAME和PASSWORD是MySQL的用戶名和密碼。

上面命令是將hive-default.xml.template重命名爲hive-default.xml,然後,使用vim編輯器新建一個配置文件hive-site.xml,命令如下:

cd /usr/local/hive/conf
vim hive-site.xml

 

在hive-site.xml中添加如下配置信息,其中:USERNAME和PASSWORD是MySQL的用戶名和密碼。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
--><configuration>
  <!-- WARNING!!! This file is auto generated for documentation purposes ONLY! -->
  <!-- WARNING!!! Any changes you make to this file will be ignored by Hive.   -->
  <!-- WARNING!!! You must make your changes in hive-site.xml instead.         -->
  <!-- Hive Execution Parameters -->


 <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>Herbert@123</value>
    <description>password to use against metastore database</description>
  </property>


</configuration>

在hive-env.sh中添加下面配置


export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3/
export HIVE_CONF_DIR=/usr/local/hive/apache-hive-1.2.1-bin/conf/
                                                                    

 

然後,按鍵盤上的“ESC”鍵退出vim編輯狀態,再輸入:wq,保存並退出vim編輯器。由於Hive在連接MySQL時需要JDBC驅動,所以首先需要下載對應版本的驅動,然後將驅動移動到/usr/local/hive/lib中。

#解壓
tar -zxvf mysql-connector-java-5.1.47.tar.gz
#將mysql-connector-java-5.1.47.tar.gz拷貝到/usr/local/hive/lib目錄下
cp mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar /usr/local/hive/lib

啓動hive(啓動hive之前,請先啓動hadoop集羣)。

./usr/local/hadoop/sbin/start-all.sh #啓動hadoop,如果已經啓動,則不用執行該命令
#啓動hive
hive

 

六、搭建scala

 

1.下載scala

https://www.scala-lang.org/download/

下載 tgz 包

上傳到 /usr/local/scala

 

2.配置scala

export ZOOKEEPER=/usr/local/zookeeper/zookeeper-3.5.6
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.2
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export HBASE_HOME=/usr/local//hbase/hbase-2.2.1/
export SPARK_HOME=/usr/local/spark/spark-2.4.0-bin-hadoop2.7/
export HIVE_HOME=/usr/local/hive/apache-hive-3.1.2-bin/
export HBASE_MANAGES_ZK=true
export SCALA_HOME=/usr/local/scala/scala-2.13.1/
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$HIVE_HOME/bin:$SCALA_HOME/bin:$ZOOKEEPER/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章