1. 程式人生 > 實用技巧 >Centos7系統 Hadoop+HBase+Spark環境搭建

Centos7系統 Hadoop+HBase+Spark環境搭建

必須前提條件JDK環境

必須前提條件JDK環境

必須前提條件JDK環境

推薦通過yum源進行安裝。好處就是自動搞定環境變數

具體百度搜索

下載Hadoop:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ (3.2.0)

下載HBase:https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/(2.3.0)

下載spark:https://spark.apache.org/downloads.html(3.0.0)

更改主機名:
 命令: vi  /etc/hosts 

192.168.0.117 自己的IP地址 master 名稱可以自己隨意取

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

開始正式配置我們的環境:

將下載好的三個包上傳到伺服器並使用tar -xzvf 檔名帶字尾 解壓

1. 編輯Hadoop的配置檔案

hadoop-env.sh 配置環境變數

#自己的jdk所在路徑

export JAVA_HOME=/usr/local/jdk1.8.0_144

配置 core-site.xml 配置公共屬性

<configuration>

<!-- master 前面配置的主機名稱 --> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/data/tmp</value
> </property> </configuration>

配置hdfs-site.xml 配置HDFS

<configuration>
<property>

   <!--指定SecondaryNameNode位置-->
  <name>dfs.namenode.secondary.http-address</name>
  <value>master:9001</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
</configuration>

配置yarn-site.xml 配置YARN

<configuration>

<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>

</configuration>

配置mapred-site.xml 配置MapReduce

<configuration>
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
</configuration>

slaves配置DataNode節點

vi  slaves

master 

開始配置HBase:

編輯hbase-env.sh檔案

export JAVA_HOME=/usr/local/jdk1.8.0_144

編輯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>dfs.replication</name> <value>1</value> </property> <property> <name>hbase.master.maxclockskew</name> <value>180000</value> <description>Time difference of regionserver from master</description> </property> <property> <name>hbase.zookeeper.quorum</name> <value>192.168.0.124</value> </property>
<!-- 修改預設8080 埠--> <property> <name>hbase.rest.port</name> <value>8088</value> </property>

<!-- 修改2181 預設埠--> <property> <name>hbase.zookeeper.property.clientPort</name> <value>9095</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hbase/data</value> </property> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property> </configuration>

編輯regionservers檔案

vi /opt/hbase/conf/regionservers

master

配置Hadoop和HBase的環境變數

 vi /etc/profile

#Hadoop Environment Setting
export HADOOP_HOME=/opt/hadoop

#HBase Environment Setting
export HBASE_HOME=/opt/hbase

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

ssh免密登入設定

[root@master ~]#  ssh-keygen -t rsa

一路回車

你會看到 ~ 目錄下多了一個.ssh檔案

[root@master ~]# ls -a
.  anaconda-ks.cfg .bash_logout  .bashrc .oracle_jre_usage .ssh
.. .bash_history  .bash_profile .cshrc  .pki        .tcshrc

[root@master .ssh]# ls
id_rsa id_rsa.pub

[root@master .ssh]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

免密設定的目的是為了啟動hadoop每次不用輸入密碼,也就是跳過輸密碼步驟,免得麻煩

啟動Hadoop(啟動前先格式化)

hdfs  namenode  -format 

啟動後的資訊是放在/home/hadoop/data/tmp路徑檔案中,如果之後叢集出問題需要格式化,那麼需要先刪除這個檔案路徑中的內容

<property>  
   <name>hadoop.tmp.dir</name>  
   <value>/home/hadoop/data/tmp</value>   
</property>  

格式化後啟動hadoop,配置了Hadoop的環境變數的,在全域性都可以啟動

start-dfs.sh
start-yarn.sh
或
start-all.sh (這個會和spark中的一樣可以改名)

啟動完成後通過ip:50070 可以檢視web 頁面

啟動hbase,配置了Hbase的環境變數的,在全域性都可以啟動

start-hbase.sh

啟動成功訪問 ip:16010埠,HBase預設的WebUI埠

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

開始配置spark

修改spark-env.sh配置檔案

# 把SPARK_HOME/conf/下的spark-env.sh.template檔案複製為spark-env.sh
[root@master opt]# cd spark/conf/
[root@masterconf]# cp spark-env.sh.template spark-env.sh

# 修改spark-env.sh配置檔案,新增如下內容
[root@master conf]# vim spark-env.sh

# 配置JAVA_HOME,一般來說,不配置也可以,但是可能會出現問題,還是配上吧
export JAVA_HOME=/usr/local/java/jdk1.8.0_73
# 一般來說,spark任務有很大可能性需要去HDFS上讀取檔案,所以配置上
# 如果說你的spark就讀取本地檔案,也不需要yarn管理,不用配
export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop

# 設定Master的主機名
export SPARK_MASTER_HOST=master
# 提交Application的埠,預設就是這個,萬一要改呢,改這裡
export SPARK_MASTER_PORT=7077
# 每一個Worker最多可以使用的cpu core的個數,我虛擬機器就一個...
# 真實伺服器如果有32個,你可以設定為32個
export SPARK_WORKER_CORES=1
# 每一個Worker最多可以使用的記憶體,我的虛擬機器就2g
# 真實伺服器如果有128G,你可以設定為100G
export SPARK_WORKER_MEMORY=2g
#web UI埠預設8081
SPARK_MASTER_WEBUI_PORT=8090

修改slaves配置檔案

[root@master conf]# cp slaves.template slaves
[root@master conf]# vim slaves

# 裡面的內容原來為localhost,改為master 
master 

# 偽分散式就一臺機器,用localhost也可以
# 但我們畢竟搭建的是偽分散式叢集,注意,是叢集
# 改成master 心裡可能更相信它是一個分散式叢集

配置SPARK_HOME環境變數

vim /etc/profile

export SPARK_HOME=/opt/spark-2.2.0
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

source /etc/profile

啟動spark偽分散式叢集

注意:

  • 上一步配置了SPARK_HOME,所以在任意位置使用start-all.sh就可以啟動spark叢集
  • 但是,如果你也配置了HADOOP_HOME,在HADOOP_HOME/sbin目錄下,也有start-all.sh和stop-all.sh這兩個命令

可以給spark 的start-all.sh 改名為start-spark-all.sh 然後全域性

start-spark-all.sh

如果啟動過程有問題或者啟動之後一會服務掛了

請確認hadoop 、HBase、Spark 所需要的埠沒有被佔用

請確認hadoop 、HBase、Spark 所需要的埠沒有被佔用

請確認hadoop 、HBase、Spark 所需要的埠沒有被佔用

這裡有個文章記錄了一下幾個坑點可以去看看是不是你偶到的https://www.cnblogs.com/thousfeet/p/8618696.html