博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hadoop和spark搭建记录
阅读量:7054 次
发布时间:2019-06-28

本文共 6896 字,大约阅读时间需要 22 分钟。

因玩票需要,使用三台搭建spark(192.168.1.10,192.168.1.11,192.168.1.12),又因spark构建在hadoop之上,那么就需要先搭建hadoop。历经一个两个下午,终于搭建完成,特记录如下。

准备工作

1. jdk已经安装。

2. 文件下载

    

  包含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      master192.168.1.11      slave1192.168.1.12      slave2

hadoop安装

1.解压

tar -zxvf hadoop-2.6.0.tar.gz

2.修改配置文件

  参考文献【1】所示

在机器192.168.1.10(master)上进入hadoop配置目录,需要配置有以下7个文件:hadoop-env.shyarn-env.shslavescore-site.xmlhdfs-site.xmlmaprd-site.xmlyarn-site.xml

  1. hadoop-env.sh中配置JAVA_HOME

    # The java implementation to use.export JAVA_HOME=/home/spark/workspace/jdk1.7.0_75
  2. yarn-env.sh中配置JAVA_HOME

    # some Java parametersexport JAVA_HOME=/home/spark/workspace/jdk1.7.0_75
  3. slaves中配置slave节点的ip或者host,

    192.168.1.11192.168.1.12
  4. 修改core-site.xml

    fs.defaultFS
    hdfs://master:9000/
    hadoop.tmp.dir
    file:/home/spark/workspace/hadoop-2.6.0/tmp
  5. 修改hdfs-site.xml

    dfs.namenode.secondary.http-address
    master:9001
    dfs.namenode.name.dir
    file:/home/spark/workspace/hadoop-2.6.0/dfs/name
    dfs.datanode.data.dir
    file:/home/spark/workspace/hadoop-2.6.0/dfs/data
    dfs.replication
    3
  6. 修改mapred-site.xml

    mapreduce.framework.name
    yarn
  7. 修改yarn-site.xml

    yarn.nodemanager.aux-services
    mapreduce_shuffle
    yarn.nodemanager.aux-services.mapreduce.shuffle.class
    org.apache.hadoop.mapred.ShuffleHandler
    yarn.resourcemanager.address
    master:8032
    yarn.resourcemanager.scheduler.address
    master:8030
    yarn.resourcemanager.resource-tracker.address
    master:8035
    yarn.resourcemanager.admin.address
    master:8033
    yarn.resourcemanager.webapp.address
    master:8088

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     #格式化namenodesbin/start-dfs.sh               #启动dfs sbin/start-yarn.sh              #启动yarn

5.测试

10机器上

$ jps  #run on master3407 SecondaryNameNode3218 NameNode3552 ResourceManager3910 Jps

11,12机器上

$ jps   #run on slaves2072 NodeManager2213 Jps1962 DataNode

admin端

在浏览器中输入  ,应该有 hadoop 的管理界面出来了,并能看到 slave1 和 slave2 节点。端口配置在yarn-site.xml上

yarn.resourcemanager.webapp.address
master:8088

安装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.4export 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$ jps18470 SecondaryNameNode19096 Jps12167 -- process information unavailable19036 NodeManager18642 ResourceManager18021 DataNode17640 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.tgzmv 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.4export JAVA_HOME=/home/spark/workspace/jdk1.7.0_75export HADOOP_HOME=/home/spark/workspace/hadoop-2.6.0export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopSPARK_MASTER_IP=masterSPARK_LOCAL_DIRS=/home/spark/workspace/spark-1.3.0SPARK_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上

$ jps7949 Jps7328 SecondaryNameNode7805 Master7137 NameNode7475 ResourceManager

在slave2

$jps3132 DataNode3759 Worker3858 Jps3231 NodeManager

进入Spark的Web管理页面: 

如果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

转载地址:http://ztlol.baihongyu.com/

你可能感兴趣的文章
outlook anywhere 配置
查看>>
冲刺一 (day 3)
查看>>
Beep使用
查看>>
关于php网络爬虫phpspider。
查看>>
OpenGL的glRotatef旋转变换函数详解
查看>>
c#中 ==与equals有什么区别
查看>>
Oracle Group By ROLLUP-SubTotal
查看>>
PHP 正则表达式
查看>>
Computer Graphics Research Software
查看>>
nodejs进阶(2)—函数模块调用
查看>>
java面向对象高级分层实例_BaseDao
查看>>
iOS 从相册中拿到 图片名 ,截取后缀,图片名
查看>>
linux+nginx+tomcat负载均衡,实现session同步
查看>>
初始JavaScript Promises之二
查看>>
IntelliJ IDEA常见问题解决办法汇总
查看>>
[LeetCode] Container With Most Water 装最多水的容器
查看>>
poj 3624 Charm Bracelet 背包DP
查看>>
用dedecms自定义表单创建简易自助预约系统
查看>>
读《了解你的学生》有感
查看>>
dedecms /member/flink_main.php SQL Injection Vul
查看>>