hadoop和spark搭建记录
因玩票需要,使用三臺搭建spark(192.168.1.10,192.168.1.11,192.168.1.12),又因spark構建在hadoop之上,那么就需要先搭建hadoop。歷經一個兩個下午,終于搭建完成,特記錄如下。
準備工作
1. jdk已經安裝。
2. 文件下載
? ??http://pan.baidu.com/s/1o6mydYi
包含scala,hadoop,spark
3. ssh無密碼認證
? ? 三臺互相無密碼認證步驟:
第一步,生成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): #回車代表無需密碼登陸 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兩臺生成的公鑰id_rsa.pub重命名id_rsa.pub_11,id_rsa.pub_12傳送到192.168.1.10的/root/.ssh/目錄下,
然后在192.168.1.10上將所有公鑰加到用于認證的公鑰文件authorized_keys(若沒有該文件,則下面的命令會生成文件)中,命令為:
cat ~/.ssh/id_rsa.pub* >> ~/.ssh/authorized_keys第三步:將192.168.1.10上的文件分布復制到192.168.1.11,192.168.1.12兩臺機器的/root/.ssh/目錄下
最后測試,是否可以使用ssh ip地址互相登陸。
環境準備
修改主機名
我們將搭建1個master,2個slave的集群方案。首先修改主機名vi /etc/hostname,在master上修改為master,其中一個slave上修改為slave1,另一個同理。
配置hosts
在每臺主機上修改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.修改配置文件
? 參考文獻【1】所示
在機器192.168.1.10(master)上進入hadoop配置目錄,需要配置有以下7個文件: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節點的ip或者host,
| 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文件夾分發給slave機器192.168.1.11,192.168.1.12
4. 在192.168.1.10啟動
cd ~/workspace/hadoop-2.6.0 #進入hadoop目錄 bin/hadoop namenode -format #格式化namenode sbin/start-dfs.sh #啟動dfs sbin/start-yarn.sh #啟動yarn5.測試
10機器上
$ jps #run on master 3407 SecondaryNameNode 3218 NameNode 3552 ResourceManager 3910 Jps11,12機器上
$ jps #run on slaves 2072 NodeManager 2213 Jps 1962 DataNodeadmin端
在瀏覽器中輸入?http://192.168.1.10:8088?,應該有 hadoop 的管理界面出來了,并能看到 slave1 和 slave2 節點。端口配置在yarn-site.xml上
<property><name>yarn.resourcemanager.webapp.address</name><value>master:8088</value></property>安裝scala
參考文獻[1]
在三臺機器上分別操作:機器192.168.1.10,192.168.1.11,192.168.1.12
解壓
| tar -zxvf scala-2.10.4.tgz |
?
再次修改環境變量sudo vi /etc/profile,添加以下內容:
| export SCALA_HOME=$WORK_SPACE/scala-2.10.4
export PATH=$PATH:$SCALA_HOME/bin |
?
同樣的方法使環境變量生效,并驗證 scala 是否安裝成功
| $ source /etc/profile #生效環境變量
$ scala -version #如果打印出如下版本信息,則說明安裝成功
Scala code runner version 2.10.4 -- Copyright 2002-2013, LAMP/EPFL |
可能遇到的問題解決:
【1】Hadoop jps出現process information unavailable提示解決辦法:參考文獻【2】
啟動Hadoop之后,使用jps命令查看當前系統的java進程情況,顯示:???
hduser@jack:/usr/local/hadoop$ jps 18470 SecondaryNameNode 19096 Jps 12167 -- process information unavailable 19036 NodeManager 18642 ResourceManager 18021 DataNode 17640 NameNode
? ? 這時可以通過進入本地文件系統的/tmp目錄下,刪除名稱為hsperfdata_{username}的文件夾,然后重新啟動Hadoop。
【2】各種權限問題
解決方式:重做ssh無密碼認證的準備工作
?【3】啟動Hadoop HDFS時的“Incompatible clusterIDs”錯誤原因分析?
? 解決方式:“Incompatible?clusterIDs”的錯誤原因是在執行“hdfs?namenode?-format”之前,沒有清空DataNode節點的data目錄。清空之。
spark安裝
參考文獻【1】所示
在10機器上解壓
tar -zxvf spark-1.4.0-bin-hadoop2.6.tgz mv spark-1.4.0-bin-hadoop2.6 spark-1.4 #原來的文件名太長了,修改下修改配置:
| cd ~/workspace/spark-1.4/conf #進入spark配置目錄 cp spark-env.sh.template spark-env.sh #從配置模板復制 vi spark-env.sh #添加配置內容 |
?
在spark-env.sh末尾添加以下內容(這是我的配置,你可以自行修改): 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
將上述配置分發給:192.168.1.11,192.168.1.12
在10上啟動:
sbin/start-all.sh
檢查是否啟動:
master上
$ jps 7949 Jps 7328 SecondaryNameNode 7805 Master 7137 NameNode 7475 ResourceManager在slave2
$jps 3132 DataNode 3759 Worker 3858 Jps 3231 NodeManager進入Spark的Web管理頁面:?http://192.168.1.10:8080
如果8080被別的程序占用,使用8081端口。
參考文獻
【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
轉載于:https://www.cnblogs.com/davidwang456/p/5010499.html
總結
以上是生活随笔為你收集整理的hadoop和spark搭建记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zookeeper源码分析之六sessi
- 下一篇: HDFS 原理、架构与特性介绍--转载