分布式环境下Spark与HDFS的配置

本文详细介绍了在Ubuntu 14.04系统上配置Spark 1.4.0和Hadoop 2.7.0的步骤,包括准备软件、配置JAVA、HDFS以及Spark,并提供了集群间复制的两种方法,确保集群正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面以ubuntu系统的两个计算机节点为例,介绍配置方法。


一、准备工作

笔者各软件包的使用版本为

spark:1.4.0

hadoop:2.7.0

jdk:Oracle JDK 7

操作系统: ubuntu, 14.04

两台计算机的host name分别为spark-cluster-1和spark-cluster-2 。

(1)按照上文所述,去各个软件的官网下载对应版本的软件包。下载好后,使用scp命令拷贝到服务器上(或者你想配置在本机上也可以)。

(2)在/etc/hosts文件里,添加IP地址和对应的hostname,例如:

192.168.124.38 spark-cluster-1
192.168.124.37 spark-cluster-2

(3)在机器之间,配置免密码登陆ssh。方法是在~/.ssh文件夹下,使用ssh-keygen, 将会生成两个文件:id_rsa   id_rsa.pub。对方机器的~/.ssh/authorized_keys 文件里加入id_rsa.pub的字符串后,我方可以用ssh -i id_rsa name@ip 来登录对方机器。


二、配置JAVA

首先,我们来配置java。

(1)将java包jdk-7u79-linux-x64.gz解压到自己喜欢的目录,如/usr/lib/java

(2)在home目录下的.bashrc文件中,配置环境变量。

export JAVA_HOME=/usr/lib/java/jdk1.7.0_79
export JRE_HOME=/usr/lib/java/jdk1.7.0_79/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

(3)打一下java命令,运行正常说明配置完成。


三、配置HDFS

下面,配置Hadoop File System。

(1)把hadoop软件包解压在自己喜欢的目录,比如home下

(2)进入/hadoop-2.7.0/etc/hadoop下。

(3)配置hadoop-env.sh里面的JAVA_HOME,与上文保持一致。

(4)配置slaves文件

删除原内容,添加slave机器的host name

spark-cluster-2

(5)配置core-site.xml

<configuration>
 <property>
     <name>fs.default.name</name>
     <value>hdfs://spark-cluster-1:9000</value>
 </property>
  <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/${user.name}/hadoop_data/${user.name}</value>
    </property>
</configuration>

(6)配置hdfs-site.xml

<configuration>
  <property>
     <name>dfs.replication</name>
     <value>2</value>
  </property>
</configuration>

(7)配置mapred-site.xml

<configuration>
<property>
     <name>mapred.job.tracker</name>
     <value>spark-cluster-1:9001</value>
   </property>
</configuration>

(8) 执行完前面步骤之后,执行文中第五部分“五、集群间复制”。然后去bin目录下,执行./hdfs namenode -format 

(9)sbin目录下,执行./start-dfs.sh来启动HDFS服务,执行后执行jps命令,看看name node,data node,secondary name node三个是否都起来

(10)上一步成功后,基本上就算是配置成功了!现在可以去bin目录下,执行几个基本命令玩玩,比如./hdfs dfs -ls /


四、配置Spark

下面开始配置Spark。

(1)将spark安装包解压在你喜欢的目录,比如home下。

(2)在conf文件夹下,配置spark-env.sh文件

export JAVA_HOME=/usr/lib/java/jdk1.7.0_79
export SPARK_MASTER_IP=192.168.124.38
export HADOOP_CONF_DIR=/home/ubuntu/hadoop-2.7.0/etc/hadoop

(3)在conf文件夹下,配置slaves文件

删除原内容,添加slave机器的host name

spark-cluster-2

(4)执行完前面步骤之后,执行文中第五部分“五、集群间复制”。然后在sbin下执行./start-all.sh,启动Spark服务,执行后执行jps命令,看看master,worker是否都起来

(5)在bin下面执行spark-submit, 后面跟一个python程序或者scala程序,执行没问题说明配置成功!


五、集群间复制

上面四步只是配好了一台机器,如何配置多个节点的集群呢?

一种方法是,把上文这些配好的文件目录,一股脑儿全部scp复制到其他想要配的机器上。

另一种方法是,如果各个计算机节点是你可以随意创建删除的虚拟机的话,配置好一台机器上,马上snapshot,然后用这个snapshot起若干台机器就可以了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值