1. 程式人生 > >阿里雲學生機搭建spark、hadoop叢集(踩坑之路)

阿里雲學生機搭建spark、hadoop叢集(踩坑之路)

伺服器:三臺阿里雲學生機(三個賬號,都在華南1c)系統:ubuntu

一、通過外網ip登入伺服器

需要修改安全組,出入方向都一樣,都加入這兩條。為何加這兩條後續慢慢說明。第一條安全組功能之一就是為了能夠本地ssh到伺服器。(網上第一條几乎所有的埠配置都是22/22,後續解釋為何改成1/65000)
授權策略協議型別埠範圍授權型別授權物件描述優先順序建立時間操作
允許自定義 TCP1/65000地址段訪問0.0.0.0/0all12018-04-04 14:24:48修改描述|克隆|刪除
允許全部 ICMP-1/-1地址段訪問0.0.0.0/0-12018-04-02 15:28:49修改描述|克隆|刪除
然後直接ssh [email protected]公網IP,輸入密碼後即可登入。

二、修改hostName、hosts、關閉防火牆

1、在三臺伺服器上關閉防火牆

sudo ufw disable關閉之後可以用sudo ufw status看一下防火牆狀態

2、vi  /etc/hostName

把localhost改成想要改成的主機名把三臺分別改成master,slave1,slave2

3、vi /etc/hosts

注意這裡用公網IP後續起Hadoop是起不來的,必須要用私網IP.否則報如下的錯:2018-04-04 14:27:37,876 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.新增:私網IP1 slave1私網IP2 slave2私網IP3 master刪除:127.0.0.1 localhost不清楚的這裡看一下,icmp協議用於在IP主機、路由器之間傳遞控制訊息。控制訊息指網路通不通、主機是否可達、路由是否可用等網路本身的訊息(百度的)。ping就是用的icmp協議,所以上面安全組需要新增第二條。但改完hosts檔案之後發現內網IP竟然互相ping不通。
解決完之後就可以ping通內網了。

三、ssh無密登入

sudo apt-get install openssh-serversudo apt-get updatessh-keygen -t rsa -P ""//提示選擇目錄時,按 Enter 鍵,那麼 id_rsa 和 id_rsa.pub 會生成到 root/.ssh 目錄下在三臺伺服器上執行:cd root/.ssh,cat id_rsa.pub>>authorized_keys,將 id_rsa.pub 追加到 authorized_keys。將 slave1 和 slave2 的 id_rsa.pub 拷貝到 master(傳輸檔案可用 scp),並將其內容追加到 master 的 root/.ssh/authorized_keys 中。同理,將 slave1 和 master 的 id_rsa.pub 追加到 slave2 的 authorized_keys,將 slave2 和 master 的 id_rsa.pub 追加到 slave1 的 authorized_keys。
最後驗證互相無密登入:ssh masterssh slave1ssh slave2

四、安裝jdk

sudo add-apt-repository ppa:webupd8team/javasudo apt-get updatesudo apt-get install oracle-java8-installer安裝目錄在/usr/lib/jvm/java-8-openjdk-amd64vim /etc/profile新增export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64export PATH=${JAVA_HOME}/bin:$PATH儲存完退出source /etc/profilejava -version 驗證

五、安裝Scala

本人所有包都在/root/sparkFiles下下載scala-2.12.5.tgztar xvzf scala-2.12.5.tgz解壓到sparkFiles下,改名為scala-2.12.5Vim /etc/profile新增:export SCALA_HOME=/root/sparkFiles/scala-2.12.5export PATH=$SCALA_HOME/bin:$PATH儲存完退出source /etc/profile

六、安裝Hadoop

下載hadoop-2.7.5.tar.gztar xvzf hadoop-2.7.5.tar.gz解壓到sparkFiles下,改名為hadoop-2.7.5Vim /etc/profile新增:export HADOOP_HOME=/root/sparkFiles/hadoop-2.7.5export PATH=$PATH:$HADOOP_HOME/binexport PATH=$PATH:$HADOOP_HOME/sbinexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport YARN_HOME=$HADOOP_HOMEexport HADOOP_ROOT_LOGGER=INFO,consoleexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib”儲存完退出source /etc/profile修改$HADOOP_HOME/etc/hadoop/hadoop-env.shexport JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64修改$HADOOP_HOME/etc/hadoop/slaves,將原來的localhost刪除,改成如下內容:slave1slave2修改$HADOOP_HOME/etc/hadoop/core-site.xml<configuration>      <property>          <name>fs.defaultFS</name>      </property>      <property>         <name>io.file.buffer.size</name>         <value>131072</value>     </property>     <property>          <name>hadoop.tmp.dir</name>          <value>/root/sparkFiles/hadoop-2.7.5/tmp</value>     </property></configuration>修改$HADOOP_HOME/etc/hadoop/hdfs-site.xml<configuration>    <property>      <name>dfs.namenode.secondary.http-address</name>      <value>master:50090</value>    </property>    <property>      <name>dfs.replication</name>      <value>2</value>    </property>    <property>      <name>dfs.namenode.name.dir</name>      <value>file:/root/sparkFiles/hadoop-2.7.5/hdfs/name</value>    </property>    <property>      <name>dfs.datanode.data.dir</name>      <value>file:/root/sparkFiles/hadoop-2.7.5/hdfs/data</value>    </property></configuration>複製template,生成xml,命令如下:cp mapred-site.xml.template mapred-site.xml修改$HADOOP_HOME/etc/hadoop/mapred-site.xml<configuration><property>    <name>mapreduce.framework.name</name>    <value>yarn</value>  </property>  <property>          <name>mapreduce.jobhistory.address</name>          <value>master:10020</value>  </property>  <property>          <name>mapreduce.jobhistory.address</name>          <value>master:19888</value>  </property></configuration>修改$HADOOP_HOME/etc/hadoop/yarn-site.xml<configuration>     <property>         <name>yarn.nodemanager.aux-services</name>         <value>mapreduce_shuffle</value>     </property>     <property>         <name>yarn.resourcemanager.address</name>         <value>master:8032</value>     </property>     <property>         <name>yarn.resourcemanager.scheduler.address</name>         <value>master:8030</value>     </property>     <property>         <name>yarn.resourcemanager.resource-tracker.address</name>         <value>master:8031</value>     </property>     <property>         <name>yarn.resourcemanager.admin.address</name>         <value>master:8033</value>     </property>     <property>         <name>yarn.resourcemanager.webapp.address</name>         <value>master:8088</value>     </property></configuration>複製master節點的hadoop資料夾到slave1和slave2上。scp -r /sparkFiles/hadoop-2.7.5 [email protected]:/root/sparkFilesscp -r /sparkFiles/hadoop-2.7.5 [email protected]:/root/sparkFiles在slave1和slave2上分別修改/etc/profile,過程同master一樣。在master節點啟動叢集,啟動之前格式化一下namenode:cd /sparkFiles//hadoop-2.7.5/sbinhadoop namenode -format啟動./start-all.sh檢視叢集是否啟動成功:jpsmaster顯示:SecondaryNameNodeResourceManagerNameNodeslave顯示:NodeManagerDataNode注:在啟動之後,在本地用公網IP加8088打不開,檢視slave日誌,發現報錯:WARNorg.apache.hadoop.hdfs.server.datanode.DataNode:Problem connectingtoserver:master/192….:9000這就是為什麼安全組第一條這樣配1/65000的原因了,因為slave不能訪問master的Hadoop需要的各種預設埠,如果只是按網上配的22/22,就只能訪問22埠,就會報錯。1/65000就包含了Hadoop的所有預設埠,這樣slave就能訪問master所需的埠了。本地可用公網ip加8088埠檢視UI驗證

七、安裝spark

下載spark-2.2.0-bin-hadoop2.7.tgztar xvzf spark-2.2.0-bin-hadoop2.7.tgz解壓到sparkFiles下,改名為spark-2.2.0Vim /etc/profile新增:export SPARK_HOME=/root/sparkFiles/spark-2.2.0export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin儲存完退出source /etc/profilemv spark-env.sh.template spark-env.shmv log4j.properties.template log4j.propertiesmv slaves.template slaves在 spark-env.sh 結尾新增export SCALA_HOME=/root/sparkFiles/scala-2.12.5export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64export HADOOP_CONF_DIR=/root/sparkFiles/hadoop-2.7.5/etc/hadoop修改 slaves 檔案masterslave1slave2將配置資訊複製到其它伺服器cd /root/sparkFiles/spark-2.2.0/sbin./start.all.shjps命令看master下是否出現master和worker,在 slave節點下是否出現 worker執行 Spark 例項run-example SparkPi 10最後本地訪問master的8080埠檢視

相關推薦

阿里生機搭建sparkhadoop叢集

伺服器:三臺阿里雲學生機(三個賬號,都在華南1c)系統:ubuntu一、通過外網ip登入伺服器需要修改安全組,出入方向都一樣,都加入這兩條。為何加這兩條後續慢慢說明。第一條安全組功能之一就是為了能夠本地ssh到伺服器。(網上第一條几乎所有的埠配置都是22/22,後續解釋為何改

阿里生機搭建FTP實戰日後完善

機型 1核2G 40SSD 應用映象 LNMP環境 基於CentOS 7.x **老規矩 科普(不喜直接跳過) **【轉】 我們知道計算機網路具有五層結構: 物理層 鏈路層 網路層 傳輸層 應用層 在每一層都有其特有的協議幫助資料進行通訊交流。比如我們比較熟悉的

如何搭建自己的Git倉庫小白

1、首先開啟GitHub官網,建立一個賬號,參考https://blog.csdn.net/javaandroid730/article/details/53522872裡“GitHub的簡單使用”的第一步;2、然後在新建SSH KEY,操作步驟詳見:https://blog

阿里訊息佇列MQTT阿里MQTT Android客戶端

最近需求需要實現收款語音的播報,如果不考慮費用問題,使用推送與百度AL開發平臺的語音合成功能就可也實現收款語音的播報功能,但是考慮到費用問題,同時還考慮到ios與Android可以同步使用的問題(ps:ios如果使用推送需要把應用上架到蘋果商店,需要有證書,而且還需要通過稽核

一鍵配置高可用Hadoop叢集hdfs HA+zookeeper HA

準備環境 3臺節點,主節點 建議 2G 記憶體,兩個從節點 1.5G記憶體, 橋接網路    關閉防火牆 配置ssh,讓節點之間能夠相互 ping 通 準備  軟體放到 autoInstall  目錄下,已存放 hadoop-2.9.0.tar.g

使用phpstorm連線虛擬主機上的MySQL資料庫

         早上接到阿里雲客服的電話,告知我之前買的雲虛擬機器快到期了,問我要不要續費,我去看了下控制檯,感覺自己留著這個還是蠻有用的,就續費了,隨便翻了下控制檯,看見虛擬機器上面的資料庫還沒怎麼用過,就想著利用一下,再加上自己最近在搗鼓一些小玩意,零零總總的也學到一些

SparkHadoop大資料平臺搭建

下載安裝包 Spark 分散式計算 spark-2.3.2-bin-hadoop2.7,安裝包大小:220M 支援Hadoop 2.7以後的版本 Scala Scala環境,Spark的開發語言 scala-2.12.8.tgz,安裝包大小:20M Hadoo

三臺阿里伺服器搭建完全分散式hadoop叢集並實現sparkstreaming詳細步驟

本文基於三臺阿里雲ECS例項搭建完全分散式hadoop叢集,並整合flume + kafka + sparkstreaming實現實時流處理。詳細步驟會在本文後續一一寫出,包括在搭建叢集過程中遇到的坑以及應對辦法。 前言 三臺ECS主機的規劃如下: 外網ip

阿里ECS上搭建Hadoop叢集環境——使用兩臺ECS伺服器搭建“Cluster mode”的Hadoop叢集環境

Ingredient: 之前在: 這4篇文章裡講述了搭建Hadoop環境時在本地“/etc/hosts”裡面的ip域名配置上應該注意的事情,以及如何配置伺服器之間的ssh免密碼登入,啟動Hadoop遇到的一些問題的解決等等,這些都是使用ECS伺服器搭

阿里三臺節點,搭建完全分散式hadoop叢集,超簡單

完全分散式的安裝     1、叢集規劃             角色分配 NODE-47 NODE-101      NODE-106 HDFS Namenode Datanode Secondary

申請阿里伺服器及搭建Java開發環境教程 -- 購買阿里伺服器1

注:雲伺服器開發環境如下   (CentOS + JDK1.7 +  Mysql + ZooKeeper + Redis + Nginx + maven中央庫Nexus)一、購買阿里雲伺服器    1、百度搜索阿里雲官網或位址列輸入 https://www.aliyun.co

安裝Spark+hadoopsparkhadoop分散式叢集搭建...(親自搭建過!!)

首先說一下我所用的版本: spark-2.1.1-bin-hadoop2.7.tgz hadoop-2.7.3.tar.gz jdk-8u131-linux-x64.rpm 我們實驗室有4臺伺服器:每個節點硬碟:300GB,記憶體:64GB。四個

阿里虛擬機器搭建Hadoop-2.6.0-cdh5.7.1安裝詳解偽分散式環境

首先先搭配安全組 開啟映象後輸入以下內容:             重要:  yum -y install lrzsz HOSTNAME=(自己的主機名字) hostname $HOSTNAME echo "$(grep -E '127|::1' /etc/host

阿里ECS伺服器部署HADOOP叢集Hadoop完全分散式叢集環境搭建

準備: 兩臺配置CentOS 7.3的阿里雲ECS伺服器; hadoop-2.7.3.tar.gz安裝包; jdk-8u77-linux-x64.tar.gz安裝包; hostname及IP的配置: 更改主機名: 由於系統為CentOS 7,可以直接使用‘hostnamectl set-hostname 主機

sparkhadoop動態增減節點

hadoop 動態 節點 之前在搭建實驗環境的時候按部就班的配置好,然後就啟動了。後來再一琢磨,有點不對勁。分布式系統的一個優勢就是動態可伸縮性,如果增刪節點需要重啟那肯定是不行的。後來研究了一下,發現的確是不需要重啟的。仍以Spark和Hadoop為例:對於spark來說很簡單,增加一個節點就是

windows系統上執行sparkhadoop報錯Could not locate executable null\bin\winutils.exe in the Hadoop binaries

1.下載 winutils.exe:https://download.csdn.net/download/u010020897/10745623 2.將此檔案放置在某個目錄下,比如C:\winutils\bin\中。 3.在程式的一開始宣告:System.s

阿里centos7.3 安裝mysqlinfluxdbrabbitmq

截圖連結:連結 1. Centos7.3  MySQL安裝        1.1 安裝rpm包                rpm -Uvh http://dev.

【轉】阿里Ubuntu系統搭建SVN伺服器

##SVN伺服器相關軟體安裝 1、使用SSH遠端伺服器 (1)對於MAC OS/Liunx的使用者直接開啟終端輸入 ssh  使用者名稱@例項名,例如 ssh [email protected] 執行上面的命令後終端會提示輸入密碼,驗證通過後會出現如下資訊: We

阿里音樂趨勢預測初賽複賽資料集下載

初賽資料集 連結:https://pan.baidu.com/s/1d1pmDM1HZiEPrO2Cenx6uA 密碼:z1gw 連結:https://pan.baidu.com/s/1dNMRQLkjWW74JYfBT7VCeg 密碼:bulk 複賽資料集 連結:htt

阿里ubantu16.04 搭建LAMP環境

1.登入伺服器 2.sudo apt-get update 更新軟體列表 3.sudo apt-get install lamp-server^  (注意右上角的' ^ '這個不能少) 輸入apache2 -v 測試是否安裝成功   4.此時就可以在自己的機器上的瀏覽器輸入i