日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转]大数据环境搭建步骤详解(Hadoop,Hive,Zookeeper,Kafka,Flume,Hbase,Spark等安装与配置)

發(fā)布時(shí)間:2023/12/4 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]大数据环境搭建步骤详解(Hadoop,Hive,Zookeeper,Kafka,Flume,Hbase,Spark等安装与配置) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

?

大數(shù)據(jù)環(huán)境安裝和配置(Hadoop2.7.7,Hive2.3.4,Zookeeper3.4.10,Kafka2.1.0,Flume1.8.0,Hbase2.1.1,Spark2.4.0等)

  • 系統(tǒng)說明
  • 搭建步驟詳述
    • 一、節(jié)點(diǎn)基礎(chǔ)配置
      • ?
    • 二、Hadoop安裝和配置
    • 三、Hive安裝和配置
    • 四、ZooKeeper安裝和配置
    • 五、Kafka安裝和配置
    • 六、Flume安裝和配置
    • 七、Hbase安裝和配置
    • 八、Spark安裝和配置
  • 總結(jié)

?

?

前言:本篇文章是以Hadoop為基礎(chǔ),搭建各種可能會(huì)用到的環(huán)境的基本步驟,包括:Hadoop,Hive,Zookeeper,Kafka,Flume,Hbase,Spark等。在實(shí)際應(yīng)用中可能未必需要用到所有的這些,請(qǐng)讀者們按需取舍。
注意:因?yàn)橛行┉h(huán)境之間存在相互依賴,所以在搭建環(huán)境或者使用其的過程中要注意順序。比如說Hive是依賴于Hadoop的,搭建使用Hive前,Hadoop集群肯定要提前搭建好并啟動(dòng)起來;搭建使用Hbase時(shí),由于其依賴于Hadoop和Zookeeper,所以需要提前搭建并啟動(dòng)好Hadoop和ZooKeeper集群。一定要注意哦!
另外,本人為了給廣大讀者提供方便,不需要每次都自己去找相關(guān)安裝包下載,我已將本篇文章搭建時(shí)涉及的安裝包都下載好放入百度云鏈接:https://pan.baidu.com/s/1gjQuTECI2LliFc5qDdqTIg 提取碼:l5p3 ),大家直接一次性下載下來到你的主機(jī)就行了,到時(shí)候后直接上傳到你們自己的虛擬機(jī)系統(tǒng)里就可以了(上傳主機(jī)文件到虛擬機(jī)里可以用WinSCP軟件)

?

系統(tǒng)說明

?

  • 系統(tǒng):CentOS 7.6
  • 節(jié)點(diǎn)信息:

?

節(jié)點(diǎn)ip
master192.168.185.150
slave1192.168.185.151
slave2192.168.185.152

搭建步驟詳述

?

一、節(jié)點(diǎn)基礎(chǔ)配置

?

1、配置各節(jié)點(diǎn)網(wǎng)絡(luò)

?

# 注意:centos自從7版本以后網(wǎng)卡名變成ens33而不是我這里的eth0了,我是習(xí)慣eth0了所以在安裝的時(shí)候修改了網(wǎng)卡名,如果你的centos網(wǎng)卡名是ens33不要緊,就把我這里eth0的地方都換成你的ens33,對(duì)后面沒影響。[root@master ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE="Ethernet" BOOTPROTO="static" NAME="eth0" DEVICE="eth0" ONBOOT="yes" IPADDR=192.168.185.150 NETMASK=255.255.255.0 GATEWAY=192.168.185.2[root@master ~]# vim /etc/resolv.conf nameserver 192.168.185.2# 對(duì)其他兩個(gè)slave節(jié)點(diǎn)也同樣做上述操作,只不過在IPADDR值不一樣,分別填其節(jié)點(diǎn)對(duì)應(yīng)的ip

?

?

2、修改每個(gè)節(jié)點(diǎn)主機(jī)名,添加各節(jié)點(diǎn)映射

?

# 在其他兩個(gè)子節(jié)點(diǎn)的hostname處分別填slave1和slave2 [root@master ~]# vim /etc/hostname master[root@master ~]# vim /etc/hosts 192.168.185.150 master 192.168.185.151 slave1 192.168.185.152 slave2

?

3、關(guān)閉防火墻

?

# 三個(gè)節(jié)點(diǎn)都要做# 把SELINUX那值設(shè)為disabled [root@master ~]# vim /etc/selinux/config SELINUX=disabled[root@master ~]# systemctl stop firewalld [root@master ~]# systemctl disable firewalld [root@master ~]# systemctl status firewalld

?

4、都重啟以生效

?

[root@master ~]# reboot [root@master ~]# ping www.baidu.com# 注意下,重啟后若ping百度不通,可能是因?yàn)閚amesever那重啟后自動(dòng)被改了,所以導(dǎo)致ping百度不通,如果這樣的話就再重新寫下上面的resolv.conf [root@master ~]# vim /etc/resolv.conf nameserver 192.168.185.2# 這下應(yīng)該就通了,ping下百度試試看 [root@master ~]# ping www.baidu.com PING www.a.shifen.com (119.75.217.109) 56(84) bytes of data. 64 bytes from 119.75.217.109: icmp_seq=1 ttl=128 time=30.6 ms 64 bytes from 119.75.217.109: icmp_seq=2 ttl=128 time=30.9 ms 64 bytes from 119.75.217.109: icmp_seq=3 ttl=128 time=30.9 ms

?

5、配置節(jié)點(diǎn)間ssh免密登陸

?

[root@master ~]# ssh-keygen -t rsa # 上面這條命令,遇到什么都別管,一路回車鍵敲下去# 拷貝本密鑰到三個(gè)節(jié)點(diǎn)上 [root@master ~]# ssh-copy-id master [root@master ~]# ssh-copy-id slave1 [root@master ~]# ssh-copy-id slave2# master節(jié)點(diǎn)上做完后,再在其他兩個(gè)節(jié)點(diǎn)上重復(fù)上述操作

?

都做完后,用ssh命令節(jié)點(diǎn)間相互測(cè)試下:

?

[root@master ~]# ssh slave1 # 就會(huì)發(fā)現(xiàn)在master節(jié)點(diǎn)上免密登陸到了slave1,再敲logout就退出slave1了

?

?

6、安裝java

?

# 之后我們所有的環(huán)境配置包都放到/usr/local/下# 新建java目錄,把下載好的jdk的二進(jìn)制包拷到下面(你可以直接在centos里下載,或者在你主機(jī)下載好,上傳到虛擬機(jī)的centos上) [root@master ~]# cd /usr/local [root@master local]# mkdir java [root@master local]# cd java [root@master java]# tar -zxvf jdk-8u191-linux-x64.tar.gz # 配置環(huán)境變量,在profile文件最后添加java的環(huán)境變量 [root@master ~]# vim /etc/profile export JAVA_HOME=/usr/local/java/jdk1.8.0_191 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin[root@master ~]# source /etc/profile [root@master ~]# java -version java version "1.8.0_191" Java(TM) SE Runtime Environment (build 1.8.0_191-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)# 在其他兩個(gè)節(jié)點(diǎn)上重復(fù)上述操作

?

到此為止,基本配置就結(jié)束了。

?

二、Hadoop安裝和配置

?

– 介紹:
Hadoop是一個(gè)由Apache基金會(huì)所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。Hadoop的框架最核心的設(shè)計(jì)就是:HDFS和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),而MapReduce則為海量的數(shù)據(jù)提供了計(jì)算。
HDFS,Hadoop Distributed File System,是一個(gè)分布式文件系統(tǒng),用來存儲(chǔ) Hadoop 集群中所有存儲(chǔ)節(jié)點(diǎn)上的文件,包含一個(gè) NameNode 和大量 DataNode。NameNode,它在 HDFS 內(nèi)部提供元數(shù)據(jù)服務(wù),負(fù)責(zé)管理文件系統(tǒng)名稱空間和控制外部客戶機(jī)的訪問,決定是否將文件映射到 DataNode 上。DataNode,它為 HDFS 提供存儲(chǔ)塊,響應(yīng)來自 HDFS 客戶機(jī)的讀寫請(qǐng)求。
MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集的并行運(yùn)算。概念"Map(映射)“和"Reduce(歸約)”,是它們的主要思想,即指定一個(gè)Map(映射)函數(shù),用來把一組鍵值對(duì)映射成一組新的鍵值對(duì),指定并發(fā)的Reduce(歸約)函數(shù),用來保證所有映射的鍵值對(duì)中的每一個(gè)共享相同的鍵組。

?

1、下載解壓

?

# 在/usr/local下創(chuàng)建hadoop文件夾,將下載好的hadoop-2.7.7壓縮包上傳進(jìn)去解壓 [root@master ~]# cd /usr/local [root@master local]# mkdir hadoop [root@master local]# cd hadoop [root@master hadoop]# tar -zxvf hadoop-2.7.7.tar

?

2、配置環(huán)境變量

?

[root@master hadoop]# vim /etc/profile export JAVA_HOME=/usr/local/java/jdk1.8.0_191 export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin[root@master hadoop]# source /etc/profile

?

3、 配置core-site.xml

?

# 配置文件主要在hadoop-2.7.7/etc/hadoop下面 [root@master hadoop]# cd hadoop-2.7.7/etc/hadoop# 把該文件<configuration>那塊按如下修改 [root@master hadoop]# vim core-site.xml <configuration> <property><name>fs.defaultFS</name><value>hdfs://master:9000</value> </property> <property><name>hadoop.tmp.dir</name><value>/usr/local/data</value> </property> </configuration># 配置文件中的/usr/local/data是用來存儲(chǔ)臨時(shí)文件的,所以該文件夾需要手動(dòng)創(chuàng)建 [root@master hadoop]# mkdir /usr/local/data

?

4、配置hdfs-site.xml

?

[root@master hadoop]# vim hdfs-site.xml <configuration> <property><name>dfs.name.dir</name><value>/usr/local/data/namenode</value> </property> <property><name>dfs.data.dir</name><value>/usr/local/data/datanode</value> </property> <property><name>dfs.replication</name><value>2</value> </property> </configuration>

?

5、配置mapred-site.xml

?

# 先修改文件名字 [root@master hadoop]# mv mapred-site.xml.template mapred-site.xml[root@master hadoop]# vim mapred-site.xml <configuration> <property><name>mapreduce.framework.name</name><value>yarn</value> </property> </configuration>

?

6、配置yarn-site.xml

?

[root@master hadoop]# vim yarn-site.xml <configuration> <!-- Site specific YARN configuration properties --> <property><name>yarn.resourcemanager.hostname</name><value>master</value> </property> <property><name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>

?

7、修改slaves

?

[root@master hadoop]# vim slaves slave1 slave2

?

8、修改hadoop-env.sh文件

?

# 在“export JAVA_HOME=”那一行把java環(huán)境修改成自己的路徑 [root@master hadoop]# vim hadoop-env.sh export JAVA_HOME=/usr/local/java/jdk1.8.0_191

?

9、直接把配置好的hadoop包傳到剩下兩個(gè)子節(jié)點(diǎn)同樣的位置下

?

[root@master hadoop]# cd /usr/local [root@master local]# scp -r hadoop root@192.168.185.151:/usr/local/ [root@master local]# scp -r hadoop root@192.168.185.152:/usr/local/

?

10、在其他兩個(gè)子節(jié)點(diǎn)別漏掉的操作

?

# 別忘了!在兩個(gè)子節(jié)點(diǎn)/usr/local/下也要?jiǎng)?chuàng)建好data目錄。# 別忘了!在兩個(gè)子節(jié)點(diǎn)重復(fù)下步驟2, 配置好hadoop環(huán)境變量。

?

11、測(cè)試是否成功

?

# 只要在主節(jié)點(diǎn)上啟動(dòng),執(zhí)行過程可能稍慢,耐心等待# 先格式化 [root@master ~]# hdfs namenode -format# 啟動(dòng)hdfs [root@master ~]# cd /usr/local/hadoop/hadoop-2.7.7/ [root@master hadoop-2.7.7]# sbin/start-dfs.sh# 啟動(dòng)yarn [root@master hadoop-2.7.7]# sbin/start-yarn.sh

?

在主節(jié)點(diǎn)上輸入jps命令查看,以下就對(duì)了:

在子節(jié)點(diǎn)上輸入jps命令查看,以下就對(duì)了:

在瀏覽器上訪問可視化頁面:http://192.168.185.150:50070

到此為止,hadoop配置就結(jié)束了。

?

三、Hive安裝和配置

?

– 介紹:

?

Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供簡(jiǎn)單的sql查詢功能,可以將sql語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。 其優(yōu)點(diǎn)是學(xué)習(xí)成本低,可以通過和SQL類似的HiveQL語言快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce統(tǒng)計(jì),不必開發(fā)專門的MapReduce應(yīng)用,十分適合數(shù)據(jù)倉庫的統(tǒng)計(jì)分析。同時(shí),這個(gè)語言也允許熟悉 MapReduce 開發(fā)者的開發(fā)自定義的 mapper 和 reducer 來處理內(nèi)建的 mapper 和 reducer 無法完成的復(fù)雜的分析工作。
Hive 沒有專門的數(shù)據(jù)格式。所有Hive 的數(shù)據(jù)都存儲(chǔ)在Hadoop兼容的文件系統(tǒng)(例如HDFS)中。Hive 在加載數(shù)據(jù)過程中不會(huì)對(duì)數(shù)據(jù)進(jìn)行任何的修改,只是將數(shù)據(jù)移動(dòng)到HDFS中Hive 設(shè)定的目錄下,因此,Hive 不支持對(duì)數(shù)據(jù)的改寫和添加,所有的數(shù)據(jù)都是在加載的時(shí)候確定的。

?

1、環(huán)境配置

?

# 注意:Hive只需要在master節(jié)點(diǎn)上安裝配置[root@master ~]# cd /usr/local [root@master local]# mkdir hive [root@master local]# cd hive [root@master hive]# tar -zxvf apache-hive-2.3.4-bin.tar.gz [root@master hive]# mv apache-hive-2.3.4-bin hive-2.3.4# 添加Hive環(huán)境變量 [root@master hive]# vim /etc/profile export JAVA_HOME=/usr/local/java/jdk1.8.0_191 export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export HIVE_HOME=/usr/local/hive/hive-2.3.4 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin[root@master hive]# source /etc/profile

?

2、修改 hive-site.xml

?

[root@master hive]# cd hive-2.3.4/conf [root@master conf]# mv hive-default.xml.template hive-site.xml# 在hive-site.xml中找到下面的幾個(gè)對(duì)應(yīng)name的property,然后把value值更改 # 這里提醒一下,因?yàn)閔ive-site.xml幾千多行,根據(jù)name找property的話不太方便,有兩種建議: # 1、把這個(gè)xml文件弄到你自己的主機(jī)上,用軟件(比如notepad++)修改好,在上傳回centos上相應(yīng)位置 # 2、在之前給你的百度云鏈接里,我也上傳了修改好的hive-site.xml文件,如果你版本跟我用的一樣,可以直接拿去用[root@master conf]# vim hive-site.xml <property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://master:3306/hive_metadata?createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBC metastore.To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.</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>hive</value><description>Username to use against metastore database</description></property><property><name>javax.jdo.option.ConnectionPassword</name><value>hive</value><description>password to use against metastore database</description></property><property><name>hive.querylog.location</name><value>/usr/local/hive/hive-2.3.4/tmp/hadoop</value><description>Location of Hive run time structured log file</description></property><property><name>hive.server2.logging.operation.log.location</name><value>/usr/local/hive/hive-2.3.4/tmp/hadoop/operation_logs</value><description>Top level directory where operation logs are stored if logging functionality is enabled</description></property><property><name>hive.exec.local.scratchdir</name><value>/usr/local/hive/hive-2.3.4/tmp/hadoop</value><description>Local scratch space for Hive jobs</description></property><property><name>hive.downloaded.resources.dir</name><value>/usr/local/hive/hive-2.3.4/tmp/${hive.session.id}_resources</value><description>Temporary local directory for added resources in the remote file system.</description></property><property><name>hive.metastore.schema.verification</name><value>false</value><description>Enforce metastore schema version consistency.True: Verify that version information stored in is compatible with one from Hive jars. Also disable automaticschema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensuresproper metastore schema migration. (Default)False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.</description></property>

?

3、修改hive-env.sh文件

?

[root@master conf]# mv hive-env.sh.template hive-env.sh# 找到下面的位置,做對(duì)應(yīng)修改 [root@master conf]# vim hive-env.sh # Set HADOOP_HOME to point to a specific hadoop install directory HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7# Hive Configuration Directory can be controlled by: export HIVE_CONF_DIR=/usr/local/hive/hive-2.3.4/conf# Folder containing extra libraries required for hive compilation/execution can be controlled by: # export HIVE_AUX_JARS_PATH= export JAVA_HOME=/usr/local/java/jdk1.8.0_191 export HIVE_HOME=/usr/local/hive/hive-2.3.4

?

4、把下載好的mysql-connector-java.jar這個(gè)jar包拷到/usr/local/hive/hive-2.3.4/lib/下面,在給你們的百度云鏈接里都有

?

5、安裝并配置mysql(因?yàn)閔ive的元數(shù)據(jù)是存儲(chǔ)在mysql里的)

?

[root@master ~]# cd /usr/local/src/ [root@master src]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm [root@master src]# rpm -ivh mysql-community-release-el7-5.noarch.rpm [root@master src]# yum install mysql-community-server# 這里時(shí)間較長(zhǎng),耐心等待...# 安裝完成后,重啟服務(wù) [root@master src]# service mysqld restart [root@master src]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.6.42 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql># mysql安裝成功

?

6、在mysql上創(chuàng)建hive元數(shù)據(jù)庫,創(chuàng)建hive賬號(hào),并進(jìn)行授權(quán)

?

# 在mysql上連續(xù)執(zhí)行下述命令: # create database if not exists hive_metadata; # grant all privileges on hive_metadata.* to 'hive'@'%' identified by 'hive'; # grant all privileges on hive_metadata.* to 'hive'@'localhost' identified by 'hive'; # grant all privileges on hive_metadata.* to 'hive'@'master' identified by 'hive'; # flush privileges; # use hive_metadata;[root@master src]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.6.42 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database if not exists hive_metadata; Query OK, 1 row affected (0.00 sec)mysql> grant all privileges on hive_metadata.* to 'hive'@'%' identified by 'hive'; Query OK, 0 rows affected (0.00 sec)mysql> grant all privileges on hive_metadata.* to 'hive'@'localhost' identified by 'hive'; Query OK, 0 rows affected (0.00 sec)mysql> grant all privileges on hive_metadata.* to 'hive'@'master' identified by 'hive'; Query OK, 0 rows affected (0.00 sec)mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)mysql> use hive_metadata; Database changed mysql> exit Bye

?

7、初始化

?

[root@master src]# schematool -dbType mysql -initSchema

?

8、測(cè)試驗(yàn)證hive

?

# 我們先創(chuàng)建一個(gè)txt文件存點(diǎn)數(shù)據(jù)等下導(dǎo)到hive中去 [root@master src]# vim users.txt 1,浙江工商大學(xué) 2,杭州 3,I love 4,ZJGSU 5,加油哦# 進(jìn)入hive,出現(xiàn)命令行就說明之前搭建是成功的 [root@master src]# hive hive># 創(chuàng)建users表,這個(gè)row format delimited fields terminated by ','代表我們等下導(dǎo)過來的文件中字段是以逗號(hào)“,”分割字段的 # 所以我們上面users.txt不同字段中間有逗號(hào) hive> create table users(id int, name string) row format delimited fields terminated by ','; OK Time taken: 7.29 seconds# 導(dǎo)數(shù)據(jù) hive> load data local inpath '/usr/local/src/users.txt' into table users; Loading data to table default.users OK Time taken: 1.703 seconds# 查詢 hive> select * from users; OK 1 浙江工商大學(xué) 2 杭州 3 I love 4 ZJGSU 5 加油哦 Time taken: 2.062 seconds, Fetched: 5 row(s)# ok,測(cè)試成功!

?

到此為止,hive配置就結(jié)束了,其實(shí)hive的配置挺繁瑣的,不要急慢慢來,加油!

?

四、ZooKeeper安裝和配置

?

– 介紹:
ZooKeeper是一個(gè)分布式的應(yīng)用程序協(xié)調(diào)服務(wù),是Hadoop和Hbase的重要組件。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等。其目標(biāo)就是封裝好復(fù)雜易出錯(cuò)的關(guān)鍵服務(wù),將簡(jiǎn)單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。
那么Zookeeper能做什么事情呢?舉個(gè)簡(jiǎn)單的例子:假設(shè)我們有20個(gè)搜索引擎的服務(wù)器(每個(gè)負(fù)責(zé)總索引中的一部分的搜索任務(wù))和一個(gè)總服務(wù)器(負(fù)責(zé)向這20個(gè)搜索引擎的服務(wù)器發(fā)出搜索請(qǐng)求并合并結(jié)果集),一個(gè)備用的總服務(wù)器(負(fù)責(zé)當(dāng)總服務(wù)器宕機(jī)時(shí)替換總服務(wù)器),一個(gè)web的cgi(向總服務(wù)器發(fā)出搜索請(qǐng)求)。搜索引擎的服務(wù)器中的15個(gè)服務(wù)器提供搜索服務(wù),5個(gè)服務(wù)器正在生成索引。這20個(gè)搜索引擎的服務(wù)器經(jīng)常要讓正在提供搜索服務(wù)的服務(wù)器停止提供服務(wù)開始生成索引,或生成索引的服務(wù)器已經(jīng)把索引生成完成可以提供搜索服務(wù)了。使用Zookeeper可以保證總服務(wù)器自動(dòng)感知有多少提供搜索引擎的服務(wù)器并向這些服務(wù)器發(fā)出搜索請(qǐng)求,當(dāng)總服務(wù)器宕機(jī)時(shí)自動(dòng)啟用備用的總服務(wù)器。

?

1、環(huán)境配置

?

[root@master local]# mkdir zookeeper [root@master local]# cd zookeeper# 將下載好的zookeeper壓縮包上傳進(jìn)來解壓 [root@master zookeeper]# tar -zxvf zookeeper-3.4.10.tar.gz # 配置zookeeper環(huán)境變量 [root@master zookeeper]# vim /etc/profile export JAVA_HOME=/usr/local/java/jdk1.8.0_191 export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export HIVE_HOME=/usr/local/hive/hive-2.3.4 export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.10 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin[root@master zookeeper]# source /etc/profile

?

2、配置zoo.cfg文件

?

[root@master zookeeper]# cd zookeeper-3.4.10/conf [root@master conf]# mv zoo_sample.cfg zoo.cfg# 把 dataDir 那一行修改成自己的地址,在文件最后再加上三行server的配置 [root@master conf]# vim zoo.cfg dataDir=/usr/local/zookeeper/zookeeper-3.4.10/dataserver.0=master:2888:3888 server.1=slave1:2888:3888 server.2=slave2:2888:3888

?

3、配置myid文件

?

[root@master conf]# cd .. [root@master zookeeper-3.4.10]# mkdir data [root@master zookeeper-3.4.10]# cd data [root@master data]# vim myid 0

?

4、配置另外兩個(gè)節(jié)點(diǎn)

?

# 把上面配置好的zookeeper文件夾直接傳到兩個(gè)子節(jié)點(diǎn) [root@master data]# cd ../../.. [root@master local]# scp -r zookeeper root@192.168.185.151:/usr/local/ [root@master local]# scp -r zookeeper root@192.168.185.152:/usr/local/# 注意在兩個(gè)子節(jié)點(diǎn)上把myid文件里面的 0 給分別替換成 12# 注意在兩個(gè)子節(jié)點(diǎn)上像步驟1一樣,在/etc/profile文件里配置zookeeper的環(huán)境變量,保存后別忘source一下

?

5、測(cè)試一下

?

# 在三個(gè)節(jié)點(diǎn)上分別執(zhí)行命令,啟動(dòng)服務(wù): zkServer.sh start# 在三個(gè)節(jié)點(diǎn)上分別執(zhí)行命令,查看狀態(tài): zkServer.sh status # 正確結(jié)果應(yīng)該是:三個(gè)節(jié)點(diǎn)中其中一個(gè)是leader,另外兩個(gè)是follower# 在三個(gè)節(jié)點(diǎn)上分別執(zhí)行命令: jps # 檢查三個(gè)節(jié)點(diǎn)是否都有QuromPeerMain進(jìn)程

?

到此為止,zookeeper配置就結(jié)束了,這個(gè)應(yīng)該不難。

?

五、Kafka安裝和配置

?

– 介紹:
Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費(fèi)者規(guī)模的網(wǎng)站中的所有動(dòng)作流數(shù)據(jù)。Producer即生產(chǎn)者,向Kafka集群發(fā)送消息,在發(fā)送消息之前,會(huì)對(duì)消息進(jìn)行分類,即主題(Topic),通過對(duì)消息指定主題可以將消息分類,消費(fèi)者可以只關(guān)注自己需要的Topic中的消息。Consumer,即消費(fèi)者,消費(fèi)者通過與kafka集群建立長(zhǎng)連接的方式,不斷地從集群中拉取消息,然后可以對(duì)這些消息進(jìn)行處理。

?

1、安裝Scala

?

Kafka由Scala和Java編寫,所以我們先需要安裝配置Scala:

?

[root@master ~]# cd /usr/local [root@master local]# mkdir scala [root@master local]# cd scala/ # 下載好的scala壓縮包上傳進(jìn)去解壓 [root@master scala]# tar -zxvf scala-2.11.8.tgz# 配置環(huán)境變量 [root@master scala]# vim /etc/profile export JAVA_HOME=/usr/local/java/jdk1.8.0_191 export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export HIVE_HOME=/usr/local/hive/hive-2.3.4 export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.10 export SCALA_HOME=/usr/local/scala/scala-2.11.8 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$SCALA_HOME/bin[root@master scala]# source /etc/profile# 驗(yàn)證 [root@master scala-2.11.8]# scala -version Scala code runner version 2.11.8 -- Copyright 2002-2018, LAMP/EPFL and Lightbend, Inc.# 然后在剩下兩個(gè)子節(jié)點(diǎn)中重復(fù)上述步驟!

?

2、安裝配置Kafka

?

# 創(chuàng)建目錄,把下載好的壓縮包上傳解壓 [root@master local]# mkdir kafka [root@master local]# cd kafka [root@master kafka]# tar -zxvf kafka_2.11-2.1.0.tgz [root@master kafka]# mv kafka_2.11-2.1.0 kafka-2.1.0# 配置環(huán)境變量 [root@master kafka]# vim /etc/profile export JAVA_HOME=/usr/local/java/jdk1.8.0_191 export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export HIVE_HOME=/usr/local/hive/hive-2.3.4 export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.10 export KAFKA_HOME=/usr/local/kafka/kafka-2.1.0 export SCALA_HOME=/usr/local/scala/scala-2.11.8 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin:$SCALA_HOME/bin[root@master kafka]# source /etc/profile# 修改server.properties文件,找到對(duì)應(yīng)的位置,修改如下 [root@master kafka]# vim kafka-2.1.0/config/server.properties broker.id=0 listeners=PLAINTEXT://192.168.185.150:9092 advertised.listeners=PLAINTEXT://192.168.185.150:9092 zookeeper.connect=192.168.185.150:2181,192.168.185.151:2181,192.168.185.152:2181# 把master節(jié)點(diǎn)上修改好的kafka整個(gè)文件夾傳到其余兩個(gè)子節(jié)點(diǎn) [root@master kafka]# cd /usr/local [root@master local]# scp -r kafka root@192.168.185.151:/usr/local/ [root@master local]# scp -r kafka root@192.168.185.152:/usr/local/# 在另外兩個(gè)節(jié)點(diǎn)上,對(duì)server.properties要有幾處修改 # broker.id 分別修改成: 12 # listeners 在ip那里分別修改成子節(jié)點(diǎn)對(duì)應(yīng)的,即 PLAINTEXT://192.168.185.151:9092 和 PLAINTEXT://192.168.185.152:9092 # advertised.listeners 也在ip那里分別修改成子節(jié)點(diǎn)對(duì)應(yīng)的,即 PLAINTEXT://192.168.185.151:9092 和 PLAINTEXT://192.168.185.152:9092 # zookeeper.connect 不需要修改 # 另外兩個(gè)節(jié)點(diǎn)上也別忘了配置kafka環(huán)境變量

?

3、測(cè)試

?

# 在三個(gè)節(jié)點(diǎn)都啟動(dòng)kafka [root@master local]# cd kafka/kafka-2.1.0/ [root@master kafka-2.1.0]# nohup kafka-server-start.sh /usr/local/kafka/kafka-2.1.0/config/server.properties & # 在主節(jié)點(diǎn)上創(chuàng)建主題TestTopic [root@master kafka-2.1.0]# kafka-topics.sh --zookeeper 192.168.185.150:2181,192.168.185.151:2181,192.168.185.152:2181 --topic TestTopic --replication-factor 1 --partitions 1 --create# 在主節(jié)點(diǎn)上啟動(dòng)一個(gè)生產(chǎn)者 [root@master kafka-2.1.0]# kafka-console-producer.sh --broker-list 192.168.185.150:9092,192.168.185.151:9092,192.168.185.152:9092 --topic TestTopic# 在其他兩個(gè)節(jié)點(diǎn)上分別創(chuàng)建消費(fèi)者 [root@slave1 kafka-2.1.0]# kafka-console-consumer.sh --bootstrap-server 192.168.185.151:9092 --topic TestTopic --from-beginning [root@slave2 kafka-2.1.0]# kafka-console-consumer.sh --bootstrap-server 192.168.185.152:9092 --topic TestTopic --from-beginning# 在主節(jié)點(diǎn)生產(chǎn)者命令行那里隨便輸入一段話: > hello world# 然后你就會(huì)發(fā)現(xiàn)在其他兩個(gè)消費(fèi)者節(jié)點(diǎn)那里也出現(xiàn)了這句話,即消費(fèi)到了該數(shù)據(jù)

?

到此為止,kafka配置就結(jié)束了。

?

六、Flume安裝和配置

?

– 介紹:
Flume是Cloudera提供的一個(gè)高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),Flume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時(shí),Flume提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力。Flume提供了從console(控制臺(tái))、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系統(tǒng)),支持TCP和UDP等2種模式),exec(命令執(zhí)行)等數(shù)據(jù)源上收集數(shù)據(jù)的能力。
使用Flume,我們可以將從多個(gè)服務(wù)器中獲取的數(shù)據(jù)迅速的移交給Hadoop中,可以高效率的將多個(gè)網(wǎng)站服務(wù)器中收集的日志信息存入HDFS/HBase中。

?

注意:flume只需要在主節(jié)點(diǎn)配置,不需要在其他節(jié)點(diǎn)配置

?

1、環(huán)境配置

?

# 創(chuàng)建目錄,將下載好的壓縮包上傳并解壓 [root@master local]# mkdir flume [root@master local]# cd flume/ [root@master flume]# tar -zxvf apache-flume-1.8.0-bin.tar.gz [root@master flume]# mv apache-flume-1.8.0-bin flume-1.8.0# 環(huán)境變量 [root@master flume]# vim /etc/profile export JAVA_HOME=/usr/local/java/jdk1.8.0_191 export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export HIVE_HOME=/usr/local/hive/hive-2.3.4 export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.10 export KAFKA_HOME=/usr/local/kafka/kafka-2.1.0 export SCALA_HOME=/usr/local/scala/scala-2.11.8 export FLUME_HOME=/usr/local/flume/flume-1.8.0 export FLUME_CONF_DIR=$FLUME_HOME/conf export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin:$SCALA_HOME/bin:$FLUME_HOME/bin[root@master flume]# source /etc/profile

?

2、修改flume-conf.properties文件

?

[root@master flume]# cd flume-1.8.0/conf [root@master conf]# mv flume-conf.properties.template flume-conf.properties# 在文件最后加上下面的內(nèi)容 [root@master conf]# vim flume-conf.properties #agent1表示代理名稱 agent1.sources=source1 agent1.sinks=sink1 agent1.channels=channel1 #配置source1 agent1.sources.source1.type=spooldir agent1.sources.source1.spoolDir=/usr/local/flume/logs agent1.sources.source1.channels=channel1 agent1.sources.source1.fileHeader = false agent1.sources.source1.interceptors = i1 agent1.sources.source1.interceptors.i1.type = timestamp #配置channel1 agent1.channels.channel1.type=file agent1.channels.channel1.checkpointDir=/usr/local/flume/logs_tmp_cp agent1.channels.channel1.dataDirs=/usr/local/flume/logs_tmp #配置sink1 agent1.sinks.sink1.type=hdfs agent1.sinks.sink1.hdfs.path=hdfs://master:9000/logs agent1.sinks.sink1.hdfs.fileType=DataStream agent1.sinks.sink1.hdfs.writeFormat=TEXT agent1.sinks.sink1.hdfs.rollInterval=1 agent1.sinks.sink1.channel=channel1 agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d# 我們看到上面的配置文件中代理 agent1.sources.source1.spoolDir 監(jiān)聽的文件夾是/usr/local/flume/logs,所以我們要手動(dòng)創(chuàng)建一下 [root@master conf]# cd ../.. [root@master flume]# mkdir logs# 上面的配置文件中 agent1.sinks.sink1.hdfs.path=hdfs://master:9000/logs下,即將監(jiān)聽到的/usr/local/flume/logs下的文件自動(dòng)上傳到hdfs的/logs下,所以我們要手動(dòng)創(chuàng)建hdfs下的目錄 [root@master flume]# hdfs dfs -mkdir /logs

?

3、測(cè)試

?

# 啟動(dòng)服務(wù) [root@master flume]# flume-ng agent -n agent1 -c conf -f /usr/local/flume/flume-1.8.0/conf/flume-conf.properties -Dflume.root.logger=DEBUG,console# 先看下hdfs的logs目錄下,目前什么都沒有 [root@master flume]# hdfs dfs -ls -R /

?

?

# 我們?cè)?span id="ozvdkddzhkzd" class="operator token">/usr/local/flume/logs隨便創(chuàng)建個(gè)文件 [root@master flume]# cd logs [root@master logs]# vim flume_test.txt hello world ! guang 浙江工商大學(xué)# 然后我們發(fā)現(xiàn)hdfs的logs下自動(dòng)上傳了我們剛剛創(chuàng)建的文件 [root@master logs]# hdfs dfs -ls -R /

?

?

[root@master logs]# hdfs dfs -cat /logs/2018-12-31.1546242551842 hello world ! guang 浙江工商大學(xué)

?

到此為止,flume配置就結(jié)束了。

?

七、Hbase安裝和配置

?

– 介紹:
HBase – Hadoop Database,是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng)。Hadoop HDFS為HBase提供了高可靠性的底層存儲(chǔ)支持,Hadoop MapReduce為HBase提供了高性能的計(jì)算能力,Zookeeper為HBase提供了穩(wěn)定服務(wù)和failover機(jī)制。

?

1、環(huán)境配置

?

創(chuàng)建目錄,將下載好的壓縮包上傳并解壓 [root@master local]# mkdir hbase [root@master local]# cd hbase [root@master hbase]# tar -zxvf hbase-2.1.1-bin.tar.gz# 環(huán)境變量 [root@master hbase]# vim /etc/profile export JAVA_HOME=/usr/local/java/jdk1.8.0_191 export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export HIVE_HOME=/usr/local/hive/hive-2.3.4 export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.10 export KAFKA_HOME=/usr/local/kafka/kafka-2.1.0 export SCALA_HOME=/usr/local/scala/scala-2.11.8 export FLUME_HOME=/usr/local/flume/flume-1.8.0 export FLUME_CONF_DIR=$FLUME_HOME/conf export HBASE_HOME=/usr/local/hbase/hbase-2.1.1 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin:$SCALA_HOME/bin:$FLUME_HOME/bin:$HBASE_HOME/bin[root@master hbase]# source /etc/profile

?

2、修改hbase-env.sh文件

?

[root@master hbase]# cd hbase-2.1.1/conf [root@master conf]# vim hbase-env.sh export JAVA_HOME=/usr/local/java/jdk1.8.0_191 export HBASE_LOG_DIR=${HBASE_HOME}/logs export HBASE_MANAGES_ZK=false

?

3、修改hbase-site.xml 文件

?

[root@master conf]# vim 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,slave1,slave2</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/usr/local/zookeeper/zookeeper-3.4.10/data</value> </property> <property><name>hbase.tmp.dir</name><value>/usr/local/hbase/data/tmp</value></property><property> <name>hbase.master</name> <value>hdfs://master:60000</value> </property><property><name>hbase.master.info.port</name><value>16010</value></property><property><name>hbase.regionserver.info.port</name><value>16030</value></property> </configuration>

?

4、修改regionservers文件

?

[root@master conf]# vim regionservers master slave1 slave2

?

5、其他兩個(gè)子節(jié)點(diǎn)的配置

?

# 把上面配置好的hbase整個(gè)文件夾傳過去 [root@master conf]# cd ../../.. [root@master local]# scp -r hbase root@192.168.185.151:/usr/local/ [root@master local]# scp -r hbase root@192.168.185.152:/usr/local/# 別忘在另外兩個(gè)節(jié)點(diǎn)也要在/etc/profile下配置環(huán)境變量并source一下使生效! # 在所有節(jié)點(diǎn)上都手動(dòng)創(chuàng)建/usr/local/hbase/data/tmp目錄,也就是上面配置文件中hbase.tmp.dir屬性的值,用來保存臨時(shí)文件的。

?

6、測(cè)試

?

# 注意:測(cè)試Hbase之前,zookeeper和hadoop需要提前啟動(dòng)起來 [root@master local]# cd hbase/hbase-2.1.1 [root@master hbase-2.1.1]# bin/start-hbase.sh [root@master hbase-2.1.1]# jps # 正確結(jié)果:主節(jié)點(diǎn)上顯示:HMaster / 子節(jié)點(diǎn)上顯示:HRegionServer

?

在主機(jī)瀏覽器上訪問:http://192.168.185.150:16010

到此為止,Hbase配置就結(jié)束了。

?

八、Spark安裝和配置

?

– 介紹:
Apache Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎,是類似于Hadoop MapReduce的通用并行框架。Spark擁有Hadoop MapReduce所具有的優(yōu)點(diǎn),但不同于MapReduce的是——Job中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的MapReduce的算法。Spark實(shí)際上是對(duì)Hadoop的一種補(bǔ)充,可以很好的在Hadoop 文件系統(tǒng)中并行運(yùn)行。

?

1、環(huán)境配置

?

# 創(chuàng)建目錄,將下載好的壓縮包上傳并解壓 [root@master local]# mkdir spark [root@master local]# cd spark [root@master spark]# tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz [root@master spark]# mv spark-2.4.0-bin-hadoop2.7 spark-2.4.0# 配置環(huán)境變量 [root@master spark]# vim /etc/profile export JAVA_HOME=/usr/local/java/jdk1.8.0_191 export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export HIVE_HOME=/usr/local/hive/hive-2.3.4 export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.10 export KAFKA_HOME=/usr/local/kafka/kafka-2.1.0 export SCALA_HOME=/usr/local/scala/scala-2.11.8 export FLUME_HOME=/usr/local/flume/flume-1.8.0 export FLUME_CONF_DIR=$FLUME_HOME/conf export HBASE_HOME=/usr/local/hbase/hbase-2.1.1 export SPARK_HOME=/usr/local/spark/spark-2.4.0 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin:$SCALA_HOME/bin:$FLUME_HOME/bin:$HBASE_HOME/bin:$SPARK_HOME/bin[root@master spark]# source /etc/profile

?

2、修改spark-env.sh文件

?

[root@master spark]# cd spark-2.4.0/conf/ [root@master conf]# mv spark-env.sh.template spark-env.sh [root@master conf]# vim spark-env.sh export JAVA_HOME=/usr/local/java/jdk1.8.0_191 export SCALA_HOME=/usr/local/scala/scala-2.11.8 export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7 export HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-2.7.7/etc/hadoop

?

3、修改slaves文件

?

[root@master conf]# mv slaves.template slaves [root@master conf]# vim slaves master slave1 slave2

?

4、在其余兩個(gè)子節(jié)點(diǎn)上操作

?

# 把上面配置好的spark整個(gè)文件夾傳過去 [root@master conf]# cd ../../.. [root@master local]# scp -r spark root@192.168.185.151:/usr/local/ [root@master local]# scp -r spark root@192.168.185.152:/usr/local/# 別忘在另外兩個(gè)節(jié)點(diǎn)也要在/etc/profile下配置環(huán)境變量并source一下使生效!

?

5、啟動(dòng)

?

[root@master local]# cd spark/spark-2.4.0/ [root@master spark-2.4.0]# sbin/start-all.sh

?

啟動(dòng)完畢后在主機(jī)瀏覽器訪問界面:http://192.168.185.150:8080/

OK成功,到此為止,Spark配置就結(jié)束了!現(xiàn)在我們來測(cè)試運(yùn)行一個(gè)spark內(nèi)部自帶的計(jì)算圓周率的例子代碼:

?

[root@master spark-2.4.0]# ./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master local \ examples/jars/spark-examples_2.11-2.4.0.jar

?

在控制臺(tái)輸出中我們可以找到計(jì)算結(jié)果:

?

總結(jié)

?

以上就是《基于Hadoop的大數(shù)據(jù)環(huán)境搭建步驟詳解(Hadoop,Hive,Zookeeper,Kafka,Flume,Hbase,Spark等安裝與配置)》。一定要耐心操作一遍,遇到問題不要緊張,慢慢來,加油!
寫完這篇也夠長(zhǎng)的,算是2019年的新年禮物了,休息休息啦!


---------------------
作者:原來浙小商啊
來源:CSDN
原文:https://blog.csdn.net/pig2guang/article/details/85313410
版權(quán)聲明:本文為作者原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!

總結(jié)

以上是生活随笔為你收集整理的[转]大数据环境搭建步骤详解(Hadoop,Hive,Zookeeper,Kafka,Flume,Hbase,Spark等安装与配置)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。