ubuntu16.04上hadoop3.2和spark3.0的安装与配置(加测试模块)

关于hadoop和spark的安装,网上有很多很多教程,但是按照教程一步一步安装下来之后发现并不能运行orzz,对新手极其不友好,因此,经过我一步步试错和总结,在这里将安装hadoop和spark的成功经验分享给大家,希望通过这篇文章,大家可以轻松愉快的在自己本地安装hadoop和spark~

一.前期准备

给linux创建hadoop新账户,并设置无密码登录

  1. 终端输入 sudo useradd -m hadoop -s /bin/bash
    创建一个名为hadoop的新用户,使用/bin/bash 作为该用户的shell
    在这里插入图片描述
  2. 终端输入 sudo passwd hadoop设置hadoop密码,为了方便,将密码设置为1
    在这里插入图片描述
  3. 为hadoop账号添加管理员权限
    sudo adduser hadoop sudo
    在这里插入图片描述
  4. 点击右上角的齿轮进入hadoop账号。
    在这里插入图片描述
  5. 打开终端,更新apt等。
    sudo apt-get install update
    sudo apt-get install upgrade
    在这里插入图片描述
  6. 安装ssh server
    sudo apt-get install openssh-server
    在这里插入图片描述
  7. 配置无密码登录
    ssh localhost
    exit
    cd ~/.ssh/
    ssh-keygen -t rsa
    cat ./id_rsa.pub >> ./authorized_keys

之后再次使用 ssh localhost可直接登录不用密码。

安装java环境

Hadoop3.0之后的版本只支持Java8以后的版本。
安装default-jdk default-jre默认安装java8

sudo apt-get install default-jre default-jdk
配置.bashrc文件
vim ~/.bashrc
将java目录添加至文件最末尾
export JAVA_HOME=/usr/lib/jvm/default-java
export PATH=$JAVA_HOME/bin:$PATH
退出后查看java版本
java -version

二. 安装hadoop

本文使用的是hadoop3.2版本

  1. 解压压缩包
    sudo tar -zxf hadoop-3.2.0.tar.gz -C /usr/local
    在这里插入图片描述

  2. 重命名
    cd /usr/loacl
    sudo mv hadoop-3.2.0/ hadoop

  3. 修改文件权限
    sudo chown -R hadoop:hadoop ./hadoop

  4. 将java环境写入hadoop-env.sh,不然hadoop依旧会找不到java环境。hadoop-env.sh 在/usr/local/hadoop/etc/hadoop目录下
    export JAVA_HOME=/usr/lib/jvm/default-java
    此处尽量使用java路径,如果写成${JAVA_HOME},hadoop有可能会报找不到JAVA_HOME的错误

  5. 查看hadoop是否安装成功
    ./bin/hadoop version
    如果显示hadoop版本信息则表示安装成功
    在这里插入图片描述

  6. 配置单机运行环境 文件在目录 /usr/local/hadoop/etc/hadoop/ 下
    6.1 配置core-site.xml文件

<configuration>
 <property>
   <name>fs.defaultFS</name>
   <value>hdfs://localhost:9000</value>
 </property>
</configuration>

6.2 配置hdfs-site.xml

<configuration>
   <property>
       <name>dfs.nameservices</name>
       <value>hadoop-cluster</value>
   </property>
   <property>
       <name>dfs.namenode.name.dir</name>
       <value>file:///data/hadoop/hdfs/nn</value>
   </property>
   <property>
       <name>dfs.namenode.ch
       eckpoint.dir</name>
       <value>file:///data/hadoop/hdfs/snn</value>
   </property>
   <property>
       <name>dfs.namenode.checkpoint.edits.dir</name>
       <value>file:///data/hadoop/hdfs/snn</value>
   </property>
   <property>
       <name>dfs.datanode.data.dir</name>
       <value>file:///data/hadoop/hdfs/dn</value>
   </property>
</configuration>

6.3配置mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

6.4.配置yarn-site.xml

<configuration>
    <!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>localhost</value>
    </property>
    <!-- 指定reducer获取数据的方式-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>file:///data/hadoop/yarn/nm</value>
    </property>
</configuration>

6.5 创建相关目录并改owner为hadoop

sudo mkdir -p /data/hadoop/hdfs/nn
sudo mkdir -p /data/hadoop/hdfs/dn
sudo mkdir -p /data/hadoop/hdfs/snn
sudo mkdir -p /data/hadoop/yarn/nm
sudo chown -R hadoop:hadoop /data

启动并验证安装成功 首先我们需要格式化文件系统bin/hdfs namenode -format 运行./sbin/start-all/sh之后浏览器输入localhost:8088/cluster 看到Hadoop界面代表安装成功!

三. 基于Hadoop3.2安装Spark3.0

spark安装需要先安装scala,若没安装运行一下sudo apt install scala即可。

将spark压缩文件解压至/usr/local目录
sudo tar zxf spark-3.0.0-bin-hadoop3.2.tgz -C /usr/local
在这里插入图片描述
类似于安装hadoop的过程,我们将其重命名为spark,并将其权限设置为hadoop用户所有 sudo chown -R hadoop:hadoop spark

配置 spark-env.sh文件,该文件在/usr/local/spark/conf目录下,

export JAVA_HOME=/usr/lib/jvm/default-java
export SCALA_HOME=/usr/share/scala-2.11
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_MASTER_IP=Master
export SPARK_LOCAL_DIRS=/usr/local/spark
export SPARK_DRIVER_MEMORY=2g

其中 scala的目录到/usr/share目录下查看,确定scala的版本号是否为2.11。如果不是需要修改SCALA_HOME的目录。

上述配置是我本机的目录配置,需要适当修改更改为当前机器的目录。 配置好相关文件之后启动即可:sbin/start-all.sh,此时输入jps命令后可以发现多了一个Master进程。访问localhost:8080,看到spark的主页就证明安装成功了!

四. 正确性测试以及辅助脚本。

由于我们把Hadoop和spark安装在文件夹/usr/local下面,我们干脆在此文件夹下新建一个文件夹help_bash来存放我们的帮助脚本: start.sh:这个脚本用于一键启动:

/usr/local/hadoop/sbin/start-all.sh
/usr/local/spark/sbin/start-all.sh

stop.sh:这个脚本用于一键启动:其实同样也是两行命令:

/usr/local/hadoop/sbin/stop-all.sh
/usr/local/spark/sbin/stop-all.sh

run_env.sh:这个脚本用于设置相关的环境变量,便于我们更方便的执行:

export HADOOP_HOME=/usr/local/hadoop
export SCALA_HOME=/usr/share/scala-2.11
export SPARK_HOME=/usr/local/spark
export PATH="${HADOOP_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH"

同样的上述脚本的目录结构都是我本机的目录结构,如果目录不一致,需要做相应的更改!

测试运行

启动hadoop和spark,并引入相关环境变量
sh start.sh
source run_env.sh
下面我们做一个Word count进行测试: 首先我们需要准备一个测试文件
ceshi.txt

a,b,c,d,a,c,d,s,c,d,s,d,f

在Hadoop文件系统中新建一个test目录
hadoop fs -mkdir /test

使用 hadoop fs -ls /
可查看刚才创建的test目录

将ceshi.txt文件hadoop中的test目录下
hadoop fs -put ceshi.txt /test

放入之后我们查看相关的目录结构:hadoop fs -ls -R /,发现ceshi.txt在目录中。
然后我们运行spark-shell

spark-shell //进入spark命令行模式
val file=sc.textFile("hdfs:/test/ceshi.txt")
val count=file.flatMap(line=>line.split(",")).map(word=>(word,1)).reduceByKey(_+_)
count.collect

在这里插入图片描述
最后看到spark将统计结果输出,安装成功~

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值