Ubuntu Hadoop Spark集群

一、写在前面的话

我的用户名为edmond,所以在文中出现edmond的地方需要替换为你自己的用户名。

二、准备工作

有三台安装了ubuntu的电脑

主机名主机IP
master172.16.229.135
slave1172.16.229.136
slave2172.16.229.137

我们需要把主机的/etc/hosts文件中的内容修改为以下内容

172.16.229.135  master
172.16.229.136  slave1
172.16.229.137  slave2

里面不能有除节点以外的其他信息,不然在hadoop启动的时候会出现访问拒绝的问题

三、安装jdk
1.下载

jdk的安装包可以通过jdk的官网获取到,地址:
http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html

下载Linux64 tar.gz的包

2.安装

先创建安装的目录,我把它安装在/usr/lib/jdk路径下(当然你也可以自己选择),创建过程可能需要root权限

sudo mkdir /usr/lib/jdk

然后把下载下来的jdk压缩包解压缩到这个目录下(需要root权限)

sudo tar -zcvf jdk-8u111-linux-x64.tar.gz -C /usr/lib/jdk
3.配置

接下来修改/etc/profile文件添加JAVA_HOME等参数(需要root权限)

sudo vim /etc/profile

在底部添上

export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_111
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

然后需要系统重新加载/etc/profile配置信息

source /etc/profile

完成之后可以用java -version命令测试,如果配置正确会显示java虚拟机的信息

四、安装scala
1.下载

sclca的官方下载地址:http://www.scala-lang.org/download/

下载下来会是一个压缩文件

2.安装

安装过程和jdk类似创建安装目录(需要使用root权限)

sudo mkdir /usr/lib/scala

然后把压缩文件解压缩到scala目录下

sudo tar -zxvf scala-2.12.0.tgz -C /usr/lib/scala
3.配置

然后我们需要在/etc/profile中添加SCALA_HOME属性

sudo vim /etc/profile

在最后添加

export SCALA_HOME=/usr/lib/scala/scala-2.12.0
export PATH=${SCALA_HOME}/bin$PATH

重新载入配置source /etc/profile后输入scala能进入scala控制台说明配置成功

这里写图片描述

五、ssh免密登陆
1.安装openssh-server

ubunut可以通过apt-get直接安装openssh-server

sudo apt-get install openssh-server

然后生成rsa公私钥

ssh-keygen -t rsa

一路回车,会在用户目录下的.ssh目录下生成 id_rsa 和 id_rsa.pub两个文件
其中id_rsa为私钥,id_rsa.pub为公钥。
我们需要把当前用户的公钥上传上需要免密登陆的ssh服务器上。

首先将~/.ssh目录下的id_rsa.pub文件复制为~/.ssh/authorized_keys

cp ~/.ssh/id_rsa.pub authorized_keys

接着修改ssh的配置文件/etc/ssh/sshd_config(需要root权限)

sudo vim /etc/ssh/sshd_config

找到

#AuthorizedKeysFile      %h/.ssh/authorized_keys

把前面的#号去掉,让~/.ssh/authorized_keys生效

然后我们需要在slave节点中加入master节点的公钥
可以通过scp将master的~/.ssh/id_rsa.pub文件发送到所有的slave节点

scp ~/.ssh/id_rsa.pub edmond@slave1:/home/edmond

这样就将id_rsa.pub发送到了slave节点
然后在slave节点中把master节点的id_rsa.pub的内容追加到~/.ssh/authorized_keys文件的最后
可以用下列方式

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

对所有slave节点执行类似的操作
这样就可以实现从master节点到所有slave节点的ssh免密码登陆。
可以通过ssh edmond@slave1测试,如果不需要密码就可以登陆到slave1节点的话就说明免密登陆配置成功。

六、安装hadoop

1、下载
hadoop官网下载地址:http://hadoop.apache.org/releases.html#25+August%2C+2016%3A+Release+2.7.3+available
下载下来会是一个压缩文件
2、安装
我们把下载下来的压缩文件直接解压缩到/usr/lib/目录下(需要root权限)

sudo tar -zxvf hadoop-2.7.3.tar.gz -C /usr/lib

这样会在/usr/lib/目录下面会出现一个hadoop-2.7.3目录
我们把hadoop-2.7.3重新命名为hadoop

sudo mv /usr/lib/hadoop-2.7.3 /usr/lib/hadoop

我们把hadoop目录下的所有文件的所有者和用户组都改成edmond

sudo chmod edmond:edmond -R /usr/lib/hadoop

由于在hadoop启动的时候需要在这个目录下写入,所以其他用户需要对目录下的所有文件有写入权限

sudo chmod a+w -R hadoop

3、配置
先要对系统配置HADOOP_HOME等参数
打开/etc/profile

sudo vim /etc/profile

在最下面加入

export HADOOP_HOME=/usr/lib/hadoop
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH

刷新系统PATHsource /etc/profile
这样就可以在系统任何目录下执行hadoop命令了
可以在~目录下尝试执行hadoop命令,如果没有出现commnd not found的提示就说明PATH配置成功。

然后配置hadoop集群,先打开/usr/lib/hadoop/etc/hadoop/core-site.xml文件(因为刚才已经对其他用户添加了对目录的写入权限所以可以不使用root权限)

vim /usr/lib/hadoop/etc/hadoop/core-site.xml

<configuration></configuration>之间添加

    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/lib/hadoop/tmp</value>
        <description>Abasefor other temporary directories.</description>
    </property>
    <property>
        <name>hadoop.proxyuser.spark.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.spark.groups</name>
        <value>*</value>
    </property>

然后是/usr/lib/hadoop/etc/hadoop/hdfs-site.xml

vim /usr/lib/hadoop/etc/hadoop/hdfs-site.xml

<configuration></configuration>之间添加

    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/lib/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/lib/hadoop/tmp/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>

然后是/usr/lib/hadoop/etc/hadoop/yarn-site.xml

vim /usr/lib/hadoop/etc/hadoop/yarn-site.xml

<configuration></configuration>之间添加

    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

接着修改/usr/lib/hadoop/etc/hadoop/hadoop-env.sh
找到JAVA_HOME=${JAVA_HOME}修改为JAVA_HOME=/usr/lib/jdk/jdk1.8.0_111

然后添加slave节点的信息
编辑/usr/lib/hadoop/etc/hadoop/slaves
修改为

master
slave1
slave2

4、启动
首先先格式化hdfs

hdfs namenode -format

如果输出的status code为0说明格式化完成,若为1的话说明出现错误
然后启动集群

start-all.sh

可能需要等待一段时间,启动完成后会在可以通过jps命令查看
在master节点上会出现

DataNode
RecourceManager
Jps
NodeManager
NameNode
SecondaryNameNode

slave节点上会出现

DataNode
Jps
NodeManager

如果不是这样说明集群没有启动成功

七、安装spark

3、配置
1、下载
官网下载地址:http://spark.apache.org/downloads.html
2、安装
直接把压缩文件解压缩到/usr/lib目录下

sudo tar -xvf spark-2.0.2-bin-hadoop2.7.tar -C /usr/lib

修改目录的名字为spark

sudo mv spark-2.0.2-bin-hadoop2.7 spark

修改权限

sudo chmod a+w -R spark

修改用户和用户组

sudo chown edmond:edmond -R hadoop

3、配置
首先在系统路径中添加安装路径,打开/etc/profile

sudo vim /etc/profile

在最下面添加

export SPARK_HOME=/usr/lib/spark
export PATH=${SPARK_HOME}/bin$PATH

通过source /etc/profile更新系统配置

然后配置spark的集群环境

编辑/usr/lib/spark/conf/spark-env.sh

vim /usr/lib/spark/conf/spark-env.sh

添加上

export SCALA_HOME=/usr/lib/scala/scala-2.12.0
export SPARK_WORK_MEMORY=500MB
export SPARK_MASTER_IP=master
#export MASTER=spark://master

在/usr/lib/spark/conf/slaves中添加节点的信息

slave1
slave2
八、启动集群

要启动spark的集群需要先启动hadoop的集群,由于hadoop和spark的启动命令都是start-all.sh
所以如果直接使用start-all.sh会导致系统路径的冲突,所以启动的时候需要用绝对路径来启动
启动hadoop

/usr/lib/hadoop/sbin/start-all.sh

启动spark

/usr/lib/spark/sbin/start-all.sh

如果启动成功master节点会出现

DataNode
RecourceManager
Jps
NodeManager
NameNode
SecondaryNameNode
Master

slave节点会出现

DataNode
Jps
NodeManager
Worker
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值