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