hadoop和spark搭建记录
因玩票需要,使用三臺(tái)搭建spark(192.168.1.10,192.168.1.11,192.168.1.12),又因spark構(gòu)建在hadoop之上,那么就需要先搭建hadoop。歷經(jīng)一個(gè)兩個(gè)下午,終于搭建完成,特記錄如下。
準(zhǔn)備工作
1. jdk已經(jīng)安裝。
2. 文件下載
? ??http://pan.baidu.com/s/1o6mydYi
包含scala,hadoop,spark
3. ssh無(wú)密碼認(rèn)證
? ? 三臺(tái)互相無(wú)密碼認(rèn)證步驟:
第一步,生成rsa公約私鑰:
[root@jw01 .ssh]# ssh-keygen -t rsa [root@jw02 .ssh]# ssh-keygen -r rsa [root@kt01 .ssh]# ssh-keygen -t rsa [root@kt02 .ssh]# ssh-keygen -t rsaGenerating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): #回車代表無(wú)需密碼登陸 Enter passphrase (empty for no passphrase): #回車 Enter same passphrase again: #回車 Your identification has been saved in /root/.ssh/id_rsa. #代表私鑰 Your public key has been saved in /root/.ssh/id_rsa.pub. #代表公鑰 The key fingerprint is: 04:45:0b:47:10:92:0c:b2:b9:d7:11:5b:49:05:e4:d9 root@jw01第二步,將192.168.1.11,192.168.1.12兩臺(tái)生成的公鑰id_rsa.pub重命名id_rsa.pub_11,id_rsa.pub_12傳送到192.168.1.10的/root/.ssh/目錄下,
然后在192.168.1.10上將所有公鑰加到用于認(rèn)證的公鑰文件authorized_keys(若沒(méi)有該文件,則下面的命令會(huì)生成文件)中,命令為:
cat ~/.ssh/id_rsa.pub* >> ~/.ssh/authorized_keys第三步:將192.168.1.10上的文件分布復(fù)制到192.168.1.11,192.168.1.12兩臺(tái)機(jī)器的/root/.ssh/目錄下
最后測(cè)試,是否可以使用ssh ip地址互相登陸。
環(huán)境準(zhǔn)備
修改主機(jī)名
我們將搭建1個(gè)master,2個(gè)slave的集群方案。首先修改主機(jī)名vi /etc/hostname,在master上修改為master,其中一個(gè)slave上修改為slave1,另一個(gè)同理。
配置hosts
在每臺(tái)主機(jī)上修改host文件
| vi /etc/hosts192.168.1.10 master
192.168.1.11 slave1
192.168.1.12 slave2 |
hadoop安裝
1.解壓
tar -zxvf hadoop-2.6.0.tar.gz2.修改配置文件
? 參考文獻(xiàn)【1】所示
在機(jī)器192.168.1.10(master)上進(jìn)入hadoop配置目錄,需要配置有以下7個(gè)文件:hadoop-env.sh,yarn-env.sh,slaves,core-site.xml,hdfs-site.xml,maprd-site.xml,yarn-site.xml
在hadoop-env.sh中配置JAVA_HOME
| # The java implementation to use.
export JAVA_HOME=/home/spark/workspace/jdk1.7.0_75 |
在yarn-env.sh中配置JAVA_HOME
| # some Java parameters
export JAVA_HOME=/home/spark/workspace/jdk1.7.0_75 |
在slaves中配置slave節(jié)點(diǎn)的ip或者h(yuǎn)ost,
| 192.168.1.11 192.168.1.12 |
修改core-site.xml
| <configuration><property><name>fs.defaultFS</name><value>hdfs://master:9000/</value></property><property><name>hadoop.tmp.dir</name><value>file:/home/spark/workspace/hadoop-2.6.0/tmp</value></property>
</configuration> |
修改hdfs-site.xml
| <configuration><property><name>dfs.namenode.secondary.http-address</name><value>master:9001</value></property><property><name>dfs.namenode.name.dir</name><value>file:/home/spark/workspace/hadoop-2.6.0/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/home/spark/workspace/hadoop-2.6.0/dfs/data</value></property><property><name>dfs.replication</name><value>3</value></property>
</configuration> |
修改mapred-site.xml
| <configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration> |
修改yarn-site.xml
| <configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</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:8035</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> |
3.?將配置好的hadoop-2.6.0文件夾分發(fā)給slave機(jī)器192.168.1.11,192.168.1.12
4. 在192.168.1.10啟動(dòng)
cd ~/workspace/hadoop-2.6.0 #進(jìn)入hadoop目錄 bin/hadoop namenode -format #格式化namenode sbin/start-dfs.sh #啟動(dòng)dfs sbin/start-yarn.sh #啟動(dòng)yarn5.測(cè)試
10機(jī)器上
$ jps #run on master 3407 SecondaryNameNode 3218 NameNode 3552 ResourceManager 3910 Jps11,12機(jī)器上
$ jps #run on slaves 2072 NodeManager 2213 Jps 1962 DataNodeadmin端
在瀏覽器中輸入?http://192.168.1.10:8088?,應(yīng)該有 hadoop 的管理界面出來(lái)了,并能看到 slave1 和 slave2 節(jié)點(diǎn)。端口配置在yarn-site.xml上
<property><name>yarn.resourcemanager.webapp.address</name><value>master:8088</value></property>安裝scala
參考文獻(xiàn)[1]
在三臺(tái)機(jī)器上分別操作:機(jī)器192.168.1.10,192.168.1.11,192.168.1.12
解壓
| tar -zxvf scala-2.10.4.tgz |
?
再次修改環(huán)境變量sudo vi /etc/profile,添加以下內(nèi)容:
| export SCALA_HOME=$WORK_SPACE/scala-2.10.4
export PATH=$PATH:$SCALA_HOME/bin |
?
同樣的方法使環(huán)境變量生效,并驗(yàn)證 scala 是否安裝成功
| $ source /etc/profile #生效環(huán)境變量
$ scala -version #如果打印出如下版本信息,則說(shuō)明安裝成功
Scala code runner version 2.10.4 -- Copyright 2002-2013, LAMP/EPFL |
可能遇到的問(wèn)題解決:
【1】Hadoop jps出現(xiàn)process information unavailable提示解決辦法:參考文獻(xiàn)【2】
啟動(dòng)Hadoop之后,使用jps命令查看當(dāng)前系統(tǒng)的java進(jìn)程情況,顯示:???
hduser@jack:/usr/local/hadoop$ jps 18470 SecondaryNameNode 19096 Jps 12167 -- process information unavailable 19036 NodeManager 18642 ResourceManager 18021 DataNode 17640 NameNode
? ? 這時(shí)可以通過(guò)進(jìn)入本地文件系統(tǒng)的/tmp目錄下,刪除名稱為hsperfdata_{username}的文件夾,然后重新啟動(dòng)Hadoop。
【2】各種權(quán)限問(wèn)題
解決方式:重做ssh無(wú)密碼認(rèn)證的準(zhǔn)備工作
?【3】啟動(dòng)Hadoop HDFS時(shí)的“Incompatible clusterIDs”錯(cuò)誤原因分析?
? 解決方式:“Incompatible?clusterIDs”的錯(cuò)誤原因是在執(zhí)行“hdfs?namenode?-format”之前,沒(méi)有清空DataNode節(jié)點(diǎn)的data目錄。清空之。
spark安裝
參考文獻(xiàn)【1】所示
在10機(jī)器上解壓
tar -zxvf spark-1.4.0-bin-hadoop2.6.tgz mv spark-1.4.0-bin-hadoop2.6 spark-1.4 #原來(lái)的文件名太長(zhǎng)了,修改下修改配置:
| cd ~/workspace/spark-1.4/conf #進(jìn)入spark配置目錄 cp spark-env.sh.template spark-env.sh #從配置模板復(fù)制 vi spark-env.sh #添加配置內(nèi)容 |
?
在spark-env.sh末尾添加以下內(nèi)容(這是我的配置,你可以自行修改): export SCALA_HOME=/home/spark/workspace/scala-2.10.4 export JAVA_HOME=/home/spark/workspace/jdk1.7.0_75 export HADOOP_HOME=/home/spark/workspace/hadoop-2.6.0 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop SPARK_MASTER_IP=master SPARK_LOCAL_DIRS=/home/spark/workspace/spark-1.3.0 SPARK_DRIVER_MEMORY=1G 修改slaves文件cp slaves.template slaves
? 修改配置:
192.168.1.11
192.168.1.12
將上述配置分發(fā)給:192.168.1.11,192.168.1.12
在10上啟動(dòng):
sbin/start-all.sh
檢查是否啟動(dòng):
master上
$ jps 7949 Jps 7328 SecondaryNameNode 7805 Master 7137 NameNode 7475 ResourceManager在slave2
$jps 3132 DataNode 3759 Worker 3858 Jps 3231 NodeManager進(jìn)入Spark的Web管理頁(yè)面:?http://192.168.1.10:8080
如果8080被別的程序占用,使用8081端口。
參考文獻(xiàn)
【1】http://wuchong.me/blog/2015/04/04/spark-on-yarn-cluster-deploy/
【2】http://my.oschina.net/zhangjie830621/blog/417252
【3】http://blog.chinaunix.net/uid-20682147-id-4214553.html
轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/5010499.html
總結(jié)
以上是生活随笔為你收集整理的hadoop和spark搭建记录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: zookeeper源码分析之六sessi
- 下一篇: Linux CentOS PhpMyAd