阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop2.7.3+Spark2.1.0完全分布式集群搭建过程

222次阅读
没有评论

共计 11586 个字符,预计需要花费 29 分钟才能阅读完成。

Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程

一、修改 hosts 文件

在主节点,就是第一台主机的命令行下;

vim /etc/hosts

我的是三台云主机:

在原文件的基础上加上;

ip1 master worker0 namenode
ip2 worker1 datanode1
ip3 worker2 datanode2

其中的 ipN 代表一个可用的集群 IP,ip1 为 master 的主节点,ip2 和 iip3 为从节点。

二、ssh 互信(免密码登录)

注意我这里配置的是 root 用户,所以以下的家目录是 /root

如果你配置的是用户是 xxxx,那么家目录应该是 /home/xxxxx/

# 在主节点执行下面的命令:
ssh-keygen
-t rsa -P '' #一路回车直到生成公钥
scp /root/.ssh/id_rsa.pub root@worker1:/root/.ssh/id_rsa.pub.master #从 master 节点拷贝 id_rsa.pub 到 worker 主机上, 并且改名为 id_rsa.pub.master scp /root/.ssh/id_rsa.pub root@worker1:/root/.ssh/id_rsa.pub.master #同上,以后使用 workerN 代表 worker1 和 worker2.
scp /etc/hosts root@workerN:/etc/hosts #统一 hosts 文件,让几个主机能通过 host 名字来识别彼此
#在对应的主机下执行如下命令:
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys #master 主机 cat /root/.ssh/id_rsa.pub.master >> /root/.ssh/authorized_keys #workerN 主机

这样 master 主机就可以无密码登录到其他主机,这样子在运行 master 上的启动脚本时和使用 scp 命令时候,就可以不用输入密码了。

三、安装基础环境(Java 和 SCALA 环境)

1.Java1.8 环境搭建:

配置 master 的 java 环境

# 下载 jdk1.8 的 rpm 包 
wget
--no-check-certificate --no-cookies --header "Cookie: Oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-linux-x64.rpm rpm -ivh jdk-8u112-linux-x64.rpm
#增加 JAVA_HOME
vim etc
/profile
#增加如下行:#Java home export JAVA_HOME
=/usr/java/jdk1.8.0_112/

# 刷新配置:
source /etc/profile #当然 reboot 也是可以的

配置 workerN 主机的 java 环境

# 使用 scp 命令进行拷贝
scp jdk-8u112-linux-x64.rpm root@workerN:/root
#其他的步骤如 master 节点配置一样

2.Scala2.12.2 环境搭建:

Master 节点:

# 下载 scala 安装包:wget -O "scala-2.12.2.rpm" "https://downloads.lightbend.com/scala/2.12.1/scala-2.12.2.rpm"
# 安装 rpm 包:rpm
-ivh scala-2.12.2.rpm
#增加 SCALA_HOME vim
/etc/profile
#增加如下内容; #Scala Home export SCALA_HOME
=/usr/share/scala #刷新配置 source /etc/profile

WorkerN 节点;

# 使用 scp 命令进行拷贝
scp scala-2.12.2.rpm root@workerN:/root

#其他的步骤如 master 节点配置一样 

四、Hadoop2.7.3 完全分布式搭建

MASTER 节点:

1. 下载二进制包:

wget http://www-eu.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz

2. 解压并移动至相应目录

我的习惯是将软件放置 /opt 目录下:

tar -xvf hadoop-2.7.3.tar.gz
mv hadoop-2.7.3 /opt

3. 修改相应的配置文件:

(1)/etc/profile:

增加如下内容:

#hadoop enviroment 
export HADOOP_HOME=/opt/hadoop-2.7.3/
export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

(2)$HADOOP_HOME/etc/hadoop/hadoop-env.sh

修改 JAVA_HOME 如下:

export JAVA_HOME=/usr/java/jdk1.8.0_112/

(3)$HADOOP_HOME/etc/hadoop/slaves

worker1
worker2

(4)$HADOOP_HOME/etc/hadoop/core-site.xml

<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>/opt/hadoop-2.7.3/tmp</value>
        </property>
</configuration>

(5)$HADOOP_HOME/etc/hadoop/hdfs-site.xml

<configuration>
    <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>master:50090</value>
    </property>
    <property>
      <name>dfs.replication</name>
      <value>2</value>
    </property>
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:/opt/hadoop-2.7.3/hdfs/name</value>
    </property>
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:/opt/hadoop-2.7.3/hdfs/data</value>
    </property>
</configuration>

(6)$HADOOP_HOME/etc/hadoop/mapred-site.xml

复制 template,生成 xml:

cp mapred-site.xml.template mapred-site.xml

内容:

<configuration>
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
          <name>mapreduce.jobhistory.address</name>
          <value>master:10020</value>
  </property>
  <property>
          <name>mapreduce.jobhistory.address</name>
          <value>master:19888</value>
  </property>
</configuration>

(7)$HADOOP_HOME/etc/hadoop/yarn-site.xml

<!-- Site specific YARN configuration properties -->
         <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</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:8031</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>

至此 master 节点的 hadoop 搭建完毕

再启动之前我们需要

格式化一下 namenode

hadoop namenode -format

WorkerN 节点:

(1)复制 master 节点的 hadoop 文件夹到 worker 上:

scp -r /opt/hadoop-2.7.3 root@wokerN:/opt #注意这里的 N 要改为 1 或者 2 

(2)修改 /etc/profile:

过程如 master 一样

五、Spark2.1.0 完全分布式环境搭建:

MASTER 节点:

1. 下载文件:

wget -O "spark-2.1.0-bin-hadoop2.7.tgz" "http://d3kbcqa49mib13.cloudfront.net/spark-2.1.0-bin-hadoop2.7.tgz"

2. 解压并移动至相应的文件夹;

tar -xvf spark-2.1.0-bin-hadoop2.7.tgz
mv spark-2.1.0-bin-hadoop2.7 /opt

3. 修改相应的配置文件:

(1)/etc/profie

#Spark enviroment
export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7/
export PATH="$SPARK_HOME/bin:$PATH"

(2)$SPARK_HOME/conf/spark-env.sh

cp spark-env.sh.template spark-env.sh
# 配置内容如下:
export SCALA_HOME=/usr/share/scala export JAVA_HOME=/usr/java/jdk1.8.0_112/ export SPARK_MASTER_IP=master export SPARK_WORKER_MEMORY=1g export HADOOP_CONF_DIR=/opt/hadoop-2.7.3/etc/hadoop

(3)$SPARK_HOME/conf/slaves

cp slaves.template slaves

配置内容如下

master
worker1
worker2

WorkerN 节点:

将配置好的 spark 文件复制到 workerN 节点

scp spark-2.1.0-bin-hadoop2.7 root@workerN:/opt

修改 /etc/profile,增加 spark 相关的配置,如 MASTER 节点一样

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2017-06/144926p2.htm

六、启动集群的脚本

启动集群脚本 start-cluster.sh 如下:

#!/bin/bash
echo -e "\033[31m ========Start The Cluster======== \033[0m"
echo -e "\033[31m Starting Hadoop Now !!! \033[0m"
/opt/hadoop-2.7.3/sbin/start-all.sh
echo -e "\033[31m Starting Spark Now !!! \033[0m"
/opt/spark-2.1.0-bin-hadoop2.7/sbin/start-all.sh
echo -e "\033[31m The Result Of The Command \"jps\":  \033[0m"
jps
echo -e "\033[31m ========END======== \033[0m"

截图如下:

Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程

关闭集群脚本 stop-cluser.sh 如下:

#!/bin/bash
echo -e "\033[31m ===== Stoping The Cluster ====== \033[0m"
echo -e "\033[31m Stoping Spark Now !!! \033[0m"
/opt/spark-2.1.0-bin-hadoop2.7/sbin/stop-all.sh
echo -e "\033[31m Stopting Hadoop Now !!! \033[0m"
/opt/hadoop-2.7.3/sbin/stop-all.sh
echo -e "\033[31m The Result Of The Command \"jps\":  \033[0m"
jps
echo -e "\033[31m ======END======== \033[0m"

 截图如下:

Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程

七、测试一下集群:

这里我都用最简单最常用的 Wordcount 来测试好了!

1. 测试 hadoop

测试的源文件的内容为:

Hello hadoop
hello spark
hello bigdata

然后执行下列命令:

hadoop fs -mkdir -p /Hadoop/Input
hadoop fs -put wordcount.txt /Hadoop/Input
hadoop jar /opt/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /Hadoop/Input /Hadoop/Output

Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程

等待 mapreduce 执行完毕后,查看结果;

hadoop fs -cat /Hadoop/Output/*

Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程

hadoop 集群搭建成功!

2. 测试 spark 

为了避免麻烦这里我们使用 spark-shell,做一个简单的 worcount 的测试

用于在测试 hadoop 的时候我们已经在 hdfs 上存储了测试的源文件,下面就是直接拿来用就好了!

spark-shell

Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程

val file=sc.textFile("hdfs://master:9000/Hadoop/Input/wordcount.txt")
val rdd = file.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_)
rdd.collect()
rdd.foreach(println)

Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程

退出的话使用如下命令:

:quit

至此我们这篇文章就结束了。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-06/144926.htm

Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程

一、修改 hosts 文件

在主节点,就是第一台主机的命令行下;

vim /etc/hosts

我的是三台云主机:

在原文件的基础上加上;

ip1 master worker0 namenode
ip2 worker1 datanode1
ip3 worker2 datanode2

其中的 ipN 代表一个可用的集群 IP,ip1 为 master 的主节点,ip2 和 iip3 为从节点。

二、ssh 互信(免密码登录)

注意我这里配置的是 root 用户,所以以下的家目录是 /root

如果你配置的是用户是 xxxx,那么家目录应该是 /home/xxxxx/

# 在主节点执行下面的命令:
ssh-keygen
-t rsa -P '' #一路回车直到生成公钥
scp /root/.ssh/id_rsa.pub root@worker1:/root/.ssh/id_rsa.pub.master #从 master 节点拷贝 id_rsa.pub 到 worker 主机上, 并且改名为 id_rsa.pub.master scp /root/.ssh/id_rsa.pub root@worker1:/root/.ssh/id_rsa.pub.master #同上,以后使用 workerN 代表 worker1 和 worker2.
scp /etc/hosts root@workerN:/etc/hosts #统一 hosts 文件,让几个主机能通过 host 名字来识别彼此
#在对应的主机下执行如下命令:
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys #master 主机 cat /root/.ssh/id_rsa.pub.master >> /root/.ssh/authorized_keys #workerN 主机

这样 master 主机就可以无密码登录到其他主机,这样子在运行 master 上的启动脚本时和使用 scp 命令时候,就可以不用输入密码了。

三、安装基础环境(Java 和 SCALA 环境)

1.Java1.8 环境搭建:

配置 master 的 java 环境

# 下载 jdk1.8 的 rpm 包 
wget
--no-check-certificate --no-cookies --header "Cookie: Oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-linux-x64.rpm rpm -ivh jdk-8u112-linux-x64.rpm
#增加 JAVA_HOME
vim etc
/profile
#增加如下行:#Java home export JAVA_HOME
=/usr/java/jdk1.8.0_112/

# 刷新配置:
source /etc/profile #当然 reboot 也是可以的

配置 workerN 主机的 java 环境

# 使用 scp 命令进行拷贝
scp jdk-8u112-linux-x64.rpm root@workerN:/root
#其他的步骤如 master 节点配置一样

2.Scala2.12.2 环境搭建:

Master 节点:

# 下载 scala 安装包:wget -O "scala-2.12.2.rpm" "https://downloads.lightbend.com/scala/2.12.1/scala-2.12.2.rpm"
# 安装 rpm 包:rpm
-ivh scala-2.12.2.rpm
#增加 SCALA_HOME vim
/etc/profile
#增加如下内容; #Scala Home export SCALA_HOME
=/usr/share/scala #刷新配置 source /etc/profile

WorkerN 节点;

# 使用 scp 命令进行拷贝
scp scala-2.12.2.rpm root@workerN:/root

#其他的步骤如 master 节点配置一样 

四、Hadoop2.7.3 完全分布式搭建

MASTER 节点:

1. 下载二进制包:

wget http://www-eu.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz

2. 解压并移动至相应目录

我的习惯是将软件放置 /opt 目录下:

tar -xvf hadoop-2.7.3.tar.gz
mv hadoop-2.7.3 /opt

3. 修改相应的配置文件:

(1)/etc/profile:

增加如下内容:

#hadoop enviroment 
export HADOOP_HOME=/opt/hadoop-2.7.3/
export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

(2)$HADOOP_HOME/etc/hadoop/hadoop-env.sh

修改 JAVA_HOME 如下:

export JAVA_HOME=/usr/java/jdk1.8.0_112/

(3)$HADOOP_HOME/etc/hadoop/slaves

worker1
worker2

(4)$HADOOP_HOME/etc/hadoop/core-site.xml

<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>/opt/hadoop-2.7.3/tmp</value>
        </property>
</configuration>

(5)$HADOOP_HOME/etc/hadoop/hdfs-site.xml

<configuration>
    <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>master:50090</value>
    </property>
    <property>
      <name>dfs.replication</name>
      <value>2</value>
    </property>
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:/opt/hadoop-2.7.3/hdfs/name</value>
    </property>
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:/opt/hadoop-2.7.3/hdfs/data</value>
    </property>
</configuration>

(6)$HADOOP_HOME/etc/hadoop/mapred-site.xml

复制 template,生成 xml:

cp mapred-site.xml.template mapred-site.xml

内容:

<configuration>
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
          <name>mapreduce.jobhistory.address</name>
          <value>master:10020</value>
  </property>
  <property>
          <name>mapreduce.jobhistory.address</name>
          <value>master:19888</value>
  </property>
</configuration>

(7)$HADOOP_HOME/etc/hadoop/yarn-site.xml

<!-- Site specific YARN configuration properties -->
         <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</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:8031</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>

至此 master 节点的 hadoop 搭建完毕

再启动之前我们需要

格式化一下 namenode

hadoop namenode -format

WorkerN 节点:

(1)复制 master 节点的 hadoop 文件夹到 worker 上:

scp -r /opt/hadoop-2.7.3 root@wokerN:/opt #注意这里的 N 要改为 1 或者 2 

(2)修改 /etc/profile:

过程如 master 一样

五、Spark2.1.0 完全分布式环境搭建:

MASTER 节点:

1. 下载文件:

wget -O "spark-2.1.0-bin-hadoop2.7.tgz" "http://d3kbcqa49mib13.cloudfront.net/spark-2.1.0-bin-hadoop2.7.tgz"

2. 解压并移动至相应的文件夹;

tar -xvf spark-2.1.0-bin-hadoop2.7.tgz
mv spark-2.1.0-bin-hadoop2.7 /opt

3. 修改相应的配置文件:

(1)/etc/profie

#Spark enviroment
export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7/
export PATH="$SPARK_HOME/bin:$PATH"

(2)$SPARK_HOME/conf/spark-env.sh

cp spark-env.sh.template spark-env.sh
# 配置内容如下:
export SCALA_HOME=/usr/share/scala export JAVA_HOME=/usr/java/jdk1.8.0_112/ export SPARK_MASTER_IP=master export SPARK_WORKER_MEMORY=1g export HADOOP_CONF_DIR=/opt/hadoop-2.7.3/etc/hadoop

(3)$SPARK_HOME/conf/slaves

cp slaves.template slaves

配置内容如下

master
worker1
worker2

WorkerN 节点:

将配置好的 spark 文件复制到 workerN 节点

scp spark-2.1.0-bin-hadoop2.7 root@workerN:/opt

修改 /etc/profile,增加 spark 相关的配置,如 MASTER 节点一样

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2017-06/144926p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计11586字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中