因爲是在windows7上配置hadoop,所以須要使用虛擬機,這裏我用的是vmware虛擬機,以後在虛擬機上安裝centos,並安裝jdk,怎麼安裝就很少說了。今天主要是講hadoop的配置。java
因爲hadoop使用SSH進行通訊,所以先要在centos系統上安裝ssh,經過命令yum install openssh-server 就能夠安裝了。而後須要設置免密碼登錄,經過ssh-keygen -t rsa -P "" 生成公鑰與私鑰。此時會有生成.ssh文件夾,並在其下會有id_rsa和id_rsa.pub這兩個文件。而後將id_rsa.pub追加到.ssh/authorized_keys下。authorized_keys用於保存全部容許以當前身份登錄到ssh客戶端的公鑰內容。以後ssh localhost(第一次還會讓你輸入yes)看看是否能免密碼登錄。node
從http://mirrors.cnnic.cn/apache/hadoop/common/stable/ 上下載最新版本的hadoop並解壓。web
以後修改hadoop目錄下,etc目錄下的hadoop-env.sh,加入JAVA安裝信息,也就是加入export JAVA_HOME=java路徑。保存並用source命令讓配置生效。這樣Hadoop的單機模式就配置完畢了。爲了方便調用命令能夠把hadoop下的bin和sbin目錄加入PATH。apache
而後能夠運行下自帶的wordcount程序,首先建立input目錄,並將etc下的文件都複製過去。用命令hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordcount input ouputwindows
首先配置core-site.xml,主要是配置hdfs地址和端口號,在configuration節點下加入:centos
<property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>你的tmp文件夾路徑</value> </property>
而後配置hdfs-site.xml文件,主要是配置replication,在configuration節點下加入:bash
<property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>你的name文件夾路徑</value> </property> <property> <name>dfs.data.dir</name> <value>你的data文件夾路徑</value> </property>
而後用命令hdfs namenode -format進行namenode格式化,結束後用start-dfs.sh啓動hadoop,用jps查看守衛進程,應該有namenode,datanode和secondarynamenode。服務器
能夠經過 http://localhost:50070/ Web 界面來查看 NameNode 和 Datanode 信息,還可在線查看 HDFS 中的文件。在「Utilities」菜單下「Browse the file system」中可看到在hdfs上創建的目錄「/user/hadoop」等app
單機模式下運行「grep/WordCount」等例子讀取的是本地數據,而僞分佈式讀取的則是 HDFS 上的數據。爲了使用 HDFS,須要在 HDFS 中建立用戶目錄,增刪改查文件和目錄,具體命令以下:框架
(注:僞分佈式模式運行的MapReduce 做業的方式跟單機模式相同,但區別在於僞分佈式讀取的是HDFS中的文件,而不是本地的output和input目錄;能夠將單機模式步驟中建立的本地 input 文件夾,輸出結果 output 文件夾都刪掉來驗證這一點)
而後運行wordcount。
啓動 Hadoop 後,沒有原來的JobTracker 和 TaskTracker,由於新版Hadoop使用了新的MapReduce V2框架,稱爲 YARN(Yet Another Resource Negotiator)。YARN 從MapReduce 中分離出來,負責資源管理與任務調度。
經過 start-dfs.sh 啓動Hadoop後,僅是啓動了供MapReduce使用的HDFS環境,爲了啓動 YARN來負責資源管理與任務調度。須要修改配置文件 mapred-site.xml:
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
再修改配置文件 yarn-site.xml:
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
start-yarn.sh 啓動yarn(需先啓動HDFS/MR)
mr-jobhistory-daemon.sh start historyserver 啓動歷史服務器,才能在Web中查看任務運行狀況
經過 jps命令查看到(NodeManager,ResourceManager,NameNode,DataNode)進程都啓動了
啓動 YARN 以後,運行實例的方法仍是同樣,不過內存不夠可能會致使失敗。但資源管理方式和任務調度不一樣.啓動 YARN的好處是經過Web界面http://localhost:8088/cluster能夠查看任務運行狀況。
首先再建立2個虛擬機,並按上述進行配置,hostname分別是Master,Node1,Node2。
分別在3臺機子上配置hosts,並用ping命令確保能夠相互ping通。
接下來須要配置SSH無密碼登錄。咱們將2個子節點的id_rsa.pub傳給master,而後在master上將它們追加到authorized_keys。最後把master的authorized_keys付諸到2個子節點下。而後用ssh驗證它們能夠相互免密碼登錄。
接下來修改配置文件,core-site.xml以下:
<property> <name>fs.default.name</name> <value>hdfs://Master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>你的tmp文件夾路徑</value> </property>
hdfs-site.xml:
<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.name.dir</name> <value>你的name文件夾路徑</value> </property> <property> <name>dfs.data.dir</name> <value>你的data文件夾路徑</value> </property>
slaves:
Node1 Node2
mapred-site.xml:
<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.webapp.address</name> <value>Master:19888</value> </property>
yarn-site.xml
<property> <name>yarn.resourcemanager.hostname</name> <value>Master</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
全部機器配置好後,還須要將tmp,data和name下的文件都刪除,以避免錯誤。
而後hdfs namenode -format格式化,最後啓動。
經過命令jps能夠查看各個節點所啓動的進程。正確的話,在Master節點上能夠看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 進程。在Slave節點能夠看到 DataNode 和 NodeManager 進程。缺乏任一進程都表示出錯。
而後就是將文件上傳,並用wordcount測試。若是卡在mapreduce一直不動,多是內存緣由,能夠加大內存或者改變yarn配置。
總之,Hadoop基本配置就是上面這些啦!
Spark的配置須要在hadoop配置完成的基礎之上進行,而且須要scala。
解壓spark和scala以及將SPARK_HOME,SCALA_HOME和它們bin加入.bashrc就很少說了,下面講一下Spark的配置,進入spark解壓目錄下的conf目錄,將spark-env.sh.template拷貝成spark-env.sh,並加入如下配置信息:
export JAVA_HOME=你的java目錄 export SCALA_HOME=你的scala目錄 export SPARK_MASTER_IP=MasterIP export HADOOP_CONF_DIR=你的hadoop配置文件的目錄
還須要在slaves文件下加入節點信息,加入Node1和Node2
而後經過sbin下的start-all.sh啓動便可。注意hadoop的bin下start-all.sh,所以不要執行錯文件了。
而後用jps應該在主節點看到Master,在子節點看到Worker了。
這樣Spark就配置完畢了。