hadoop与spark环境搭建命令简易教程(Ubuntu18.04)

  • Hadoop
    • 一.single node cluster
    • 二.multi node cluster
    • 三.快速版(远程复制)
  • Spark:
    • 一、单机版
    • 二、spark standalone
    • 三、Yarn上运行

Hadoop

一.single node cluster

1.安装jdk
java -version #查看java版本
sudo apt-get update
sudo apt install openjdk-8-jdk-headless (推荐1.8)
/或**sudo apt-get install default-jdk **
update-alternatives --display java #查看java安装路径

注:集群jdk一定要统一,否则运行spark出错!

2.SSH无密码登录
sudo apt-get install ssh
sudo apt-get install rsync
ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa #产生ssh密钥
ls -l ~/.ssh #查看产生的密钥
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #将公钥放到许可证文件中 ,登陆主机免密
ssh-copy-id user@host #登陆datanode免密

3.下载安装hadoop
3.1 下载:
官网: hadoop下载地址.
地址:找对应版本,点进去,找hadoopxxx.tar.gz,右键复制链接地址
下载:wget http://archive.apache.org/dist/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
截图:

3.2 安装:
解压:**sudo tar -zxvf hadoop-2.7.5.tar.gz **
移动: sudo mv hadoop-2.7.5 /usr/local/hadoop
查看:ls -l /usr/local/hadoop/

4.设置环境变量
4.1 打开bashrc:sudo vim ~/.bashrc
4.2 编辑:

#HADOOP ENV VAR
#set jdk path
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
#set hadoop install path
export HADOOP_HOME=/usr/local/hadoop
#set path
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
#set other env path
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
#set of link lib
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-DJava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

4.3 使生效:source ~/.bashrc

5.修改配置文件 (single node cluster)
5.1 hadoop-env.sh
命令:sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
修改:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

5.2 core-site.xml
命令:sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml
修改:

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

5.3 yarn-site.xml
命令: sudo vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
修改:

<configuration>
<!-- Site specific YARN configuration properties -->
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property>
<property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>

5.4 mapred-site.xml
命令:1:sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
2:sudo vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
修改:

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

5.5 hdfs-site.xml
命令:sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
修改:

<configuration>
<property><name>dfs.replication</name><value>2</value>
</property>
<property><name>dfs.namenode.name.dir</name><value> file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<property><name>dfs.datanode.data.dir</name><value> file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
</configuration>

6.格式化hdfs
6.1 创建:
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
6.2 更改拥有者:
sudo chown miugod:miugod -R /usr/local/hadoop
6.3 格式化hdfs:
hadoop namenode -format

7.启动hadoop
法一:
start-dfs.sh
start-yarn.sh
法二:
start-all.sh

8.打开hadoop资源管理web界面
http://localhost:8088

9.nameNode hdfs web界面
http://localhost:50070

二.multi node cluster

1.复制虚拟机:从single node那复制一台,名字叫data1

2.设置网卡:
如果是一台主机,设置虚拟机第二张网卡为 Host-Only:建立内部网络,连接虚拟机和主机
如果要搭建小型局域网hadoop集群,设置第二张网卡为桥接:可以跨主机ping通

主机名&ip地址参考如下: (修改IP地址见后面)

192.168.50.100    master
192.168.50.101    data1
192.168.50.102    data2
192.168.50.103    data3

注意:/etc/hosts ip映射一定要整对! 若127.0.0.1 master,192.168.1.201 master,会默认取第一个!
3.设置DataNode:
3.1 编辑网络配置:
作用:固定ip地址
说明:ubuntu17后弃用interfaces编辑网络配置,而是用 netplan方式,配置文件在
/etc/netplan/01-network-manager-all.yaml
命令:1. sudo vim /etc/netplan/01-network-manager-all.yaml
2. sudo netplan apply
( 无需重启)
内容:

network:version: 2renderer: NetworkManagerethernets:enp0s8:dhcp4: noaddresses: [192.168.50.101/24]gateway4: 192.168.50.1nameservers:addresses: [8.8.8.8,8.8.4.4]

参考:https://blog.csdn.net/liuqun69/article/details/88888892
命令: sudo vim /etc/network/interfaces

3.3编辑hosts:
作用:让网络中的所有计算机,知道其他计算机名和ip,让主机名映射到ip
命令:sudo vim /etc/hosts
内容:

192.168.50.100 master
192.168.50.101 data1
192.168.50.102 data2
192.168.50.103 data3

3.4编辑配置文件:
hadoop-env没配置
3.4.1 core-site.xml
命令:sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml
修改:

<configuration>
<property><name>fs.default.name</name><value>hdfs://master:9000</value>
</property>
</configuration>

3.4.2 yarn-site.xml
命令:sudo vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
修改:

<configuration>
<!-- Site specific YARN configuration properties -->
<property><name>yarn.resourcemanager.resource-tracker.address</name><value>master:8025</value>
</property>
<property><name>yarn.resourcemanager.scheduler.address</name><value>master:8030</value>
</property>
<property><name>yarn.resourcemanager.address</name><value>master:8050</value>
</property>
</configuration>

3.4.3 mapred-site.xml
#无,则需先创模板 sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
命令:sudo vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
修改:

<configuration>
<property><name>mapred.job.tracker</name><value>master:54311</value>
</property>
</configuration>

3.4.4 hdfs-site.xml
命令:sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
修改:

<configuration>
<property><name>dfs.replication</name><value>3</value>
</property>
<property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
<property><name>dfs.http.address</name><value>master:50070</value>
</property>
</configuration>

4.设置NameNode:(如之前datanode)
4.1 编辑网络配置:
作用:固定ip地址
说明:ubuntu17后弃用interfaces编辑网络配置,而是用 netplan方式,
配置文件,在/etc/netplan/01-network-manager-all.yaml
命令:

  1. sudo vim /etc/netplan/01-network-manager-all.yaml
  2. sudo netplan apply
    内容:
network:version: 2renderer: NetworkManagerethernets:enp0s8:dhcp4: noaddresses: [192.168.50.100/24]gateway4: 192.168.50.1nameservers:addresses: [8.8.8.8,8.8.4.4]

4.2 编辑hostname:
作用: 绑定ip
修改:sudo vim /etc/hostname
生效: sudo hostname $(cat /etc/hostname)
内容:

master

4.3编辑hosts:
作用:让网络中的所有计算机,知道其他计算机名和ip,让主机名映射到ip
命令:sudo vim /etc/hosts
内容:

192.168.50.100    master
192.168.50.101    data1
192.168.50.102    data2
192.168.50.103   data3

4.4 core-site.xml: #https://www.zhihu.com/question/31239901
!为防止重启后无namenode,要加tmp.dir
命令:sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml
修改:

<configuration>
<property><name>fs.default.name</name><value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/miugod/hadoop_tmp</value>
<description>A base for other temporary directories.</description>
</property>
</configuration>

4.5 hdfs-site.xml:
#!http.address 可以让集群外的机子访问50070
命令:sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
修改:

<configuration>
<property><name>dfs.replication</name><value>3</value>
</property>
<property><name>dfs.namenode.name.dir</name><value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<property><name>dfs.http.address</name><value>master:50070</value>
</property>
</configuration>

4.6 编辑masters文件
命令:sudo vim /usr/local/hadoop/etc/hadoop/masters
内容:

master

4.7 编辑slaves文件
命令:sudo vim /usr/local/hadoop/etc/hadoop/slaves
内容:

data1
data2
data3

5.name连接data,创建hdfs目录,有几个data,ssh几次!
5.1 ssh data1 (公钥相同) #连接到data1
或 ssh user@host (公钥不同,非复制)
5.2 sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs #删除旧目录
#!注意:删除旧目录是因为,datanode下面的current里有VERSION,
放着该datanode的clusterID,若已存在而格式化,namenode里的
clusterID会更新,而datanode里的因为已存在而不会重新生成,
导致不一致,从而datanode无法启动,所以要删
5.3 mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode #创建新hdfs目录
5.4 sudo chown -R miugod:miugod /usr/local/hadoop #修改所有者权限
5.5 exit #退出

*注,查看VERSION :
cd /usr/local/hadoop/hadoop_data/hdfs/datanode/current
vi Version

6.创建并格式化nameNode的hdfs
6.1 创建:
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs #删除旧目录
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode #创建新hdfs目录
**sudo chown -R miugod:miugod /usr/local/hadoop ** #修改拥有者所有者权限
6.2 格式化:
hadoop namenode -format

7.启动集群
命令:start-all.sh

三.快速版(远程复制)

1.编辑一个hadoop文件
2.远程复制:
2.1 远程后创建文件夹,更改所有者权限

ssh data1
sudo mkdir /usr/local/hadoop
sudo chown miugod:miugod /usr/local/hadoop
exit

2.2 远程复制

scp -r /usr/local/hadoop/ data1:/usr/local

3 或用:

scp -r /usr/local/hadoop/* data1:/home/miugod/hadoop
sudo mv hadoop /usr/local/

Spark:

一、单机版

1.安装scala
下载地址: scala.
解压:tar xvf scala-2.12.11.tgz
移动:sudo mv scala-2.12.11 /usr/local/scala
环境变量:
打开:sudo vim ~/.bashrc
编辑:

#SCALA Variables
export SCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin
#SCALA Variables

生效:source ~/.bashrc
启动:scala

2.安装spark
下载地址: spark.
解压:tar zxf spark-3.0.0-bin-hadoop2.7.tgz
移动:sudo mv spark-3.0.0-bin-hadoop2.7 /usr/local/spark
环境变量:
打开:sudo vim ~/.bashrc
编辑:

#SPARK Variables
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin
#SPARK Variables

生效:source ~/.bashrc
启动:spark-shell

3.spark-shell信息设置

cd /usr/local/spark/conf
cp log4j.properties.template log4j.properties
sudo vim log4j.properties

#将第三段第二行 INFO 改为WARN

二、spark standalone

1.master安装好spark单机版 √
2.master配置spark-env.sh
复制模板:cp /usr/local/spark/conf/spark-env.sh.template /usr/local/spark/conf/spark-env.sh
编辑配置:sudo vim /usr/local/spark/conf/spark-env.sh
添加内容:

export SPARK_MASTER_IP=master
export SPARK_WORKER_CORES=1
export SPARK_WORKER_MEMORY=800m
export SPARK_WORKER_INSTANCES=1

3.复制程序
ssh data1
sudo mkdir /usr/local/spark
sudo chown miugod:miugod /usr/local/spark #更改所有者
exit
scp -r /usr/local/spark/ data1:/usr/local #远程复制

4.master编辑slaves
sudo vim /usr/local/spark/conf/slaves
添加:

data1 data2 data3

5.standalone上运行spark-shell
/usr/local/spark/sbin/start-all.sh

三、Yarn上运行

1.报错:When running with master ‘yarn’ either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment
解决:
复制jar包:
hdfs dfs -mkdir -p /hadoop/spark_jars
hdfs dfs -put /usr/local/spark/jars/ /hadoop/spark_jars*
添加配置:
cp /usr/local/spark/conf/spark-defaults.conf.template /usr/local/spark/conf/spark-defaults.conf
sudo vim spark-defaults.conf
添加:

spark.yarn.jars hdfs://master:9000/hadoop/spark_jars/*

复制到data:
scp /usr/local/spark/conf/spark-defaults.conf data1:/usr/local/spark/conf/
结果:

2.报错: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.
解决:配置hadoop yarn-site.xml (有几台配几个)
命令: sudo vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
添加:

<property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value>
</property>
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value>
</property>

重启hadoop,重启spark
结果:

参考:
https://www.imooc.com/article/29065?block_id=tuijian_wz
https://www.cnblogs.com/devilmaycry812839668/p/6932960.html

hadoop与spark环境搭建命令简易教程(Ubuntu18.04)相关推荐

  1. 某简单易懂的人脸识别 API 的开发环境搭建和简易教程

    最近接了个人脸识别相关的项目,是基于某个非常简单易懂的人脸识别 API:face_recognition 做的.这个库接口非常傻瓜,很适合新手上手,而且可以研究其源码来学习 dlib 这个拥有更加灵活 ...

  2. Spark环境搭建教程

    Spark环境搭建教程 前言 Spark环境搭建-Local-本地模式 准备工作 原理 操作-开箱即用 测试 Spark环境搭建-Standalone-独立集群 原理 操作 测试 Spark环境搭建- ...

  3. Hadoop完全分子式环境搭建—问题及解决办法

    Hadoop完全分布式环境搭建 ps:本人是按照尚硅谷的教程搭建的,版本hadoop2.7,centos版本6,一台主机,两台从机. 一.版本问题 1.尽量使用hadoop版本2,尽量不要使用最新版本 ...

  4. Spark认知Spark环境搭建

    Spark认知&Spark环境搭建 1 Spark认知篇 1.1 什么是Spark? 1.2 Spark 特点 1.2.1 快 1.2.2 易用 1.2.3 通用 1.2.4 兼容性 1.3 ...

  5. adb环境搭建以及使用教程

    adb环境搭建以及使用教程 介绍 安装sdk 安装adb 配置环境变量 adb命令使用详解 monkey篇 介绍 adb工具即Android Debug Bridge,就是起到调试桥的作用,是客户端测 ...

  6. Java开发环境搭建与实验教程(适合自学)

    Java开发环境搭建与实验教程 如何配置JAVA的环境变量 下载Java  JDK(JDK包含JRE.SDK是Software Development Kit 即软件开发工具包,可以包括函数库.编译程 ...

  7. hadoop集群环境搭建准备工作

    一定要注意hadoop和linux系统的位数一定要相同,就是说如果hadoop是32位的,linux系统也一定要安装32位的. 准备工作: 1 首先在VMware中建立6台虚拟机(配置默认即可).这是 ...

  8. java linest_Java运行环境搭建的图文教程

    1.Java运行环境搭建,对于初学者来说,主要下载安装jdk即可,windows操作系统再配合记事本,即可进行java程序开发.后续的学习以及工作中需要使用IDE工具进行开发,常用IDE工具是ecli ...

  9. ESP-01S开发环境搭建及新手教程点灯教程全解详细配图(ESP8266-01s)

    ESP-01S开发环境搭建及新手教程点灯教程全解相当详细(ESP8266-01s) 一.模组简介 二.开发工具 三.开发软件 四.点亮第一盏灯 五.至此完成了ESP-01S在arduino开发环境下点 ...

最新文章

  1. 买笔记本的10大愚蠢表现
  2. 怎么理解回调函数? 回调函数合集
  3. libhiredis.so.0.13: cannot open shared object file: No such file or directory in Unknown on line
  4. jieba结巴分词--关键词抽取_结巴中文分词原理分析2
  5. python做图像识别该学什么_Python实现图片识别加翻译【高薪必学】
  6. C#压缩指定的文件并生成zip文件
  7. aud删除 oracle_Oracle 11g如何清理数据库的历史日志详解
  8. Apache配置虚拟主机后,不能访问localhost的问题
  9. 数学分析(3): 函数极限
  10. 什么叫pin脚的pad_超详细的 摄像头PIN脚功能作用
  11. 游戏策划——游戏的分类
  12. 北京摇号新政发布!每人只留一指标 60%新能源指标优先无车家庭
  13. 绑定变量窥视_窥视量子计算与密码学
  14. 购物车的制作 与注册表单验证
  15. 小米平板刷机shell怎么退_小米MI PAD(小米平板)手机快速救砖,线刷教程分享,小白轻松救活手机...
  16. Python使用opencv打开笔记本摄像头时遇到的问题及解决办法
  17. 养车记账本小程序开发教程
  18. Python的.py与Cython的.pxd.pyx.pyd 文件格式之间的主要区别
  19. OCR识别-证件识别
  20. phpyun人才招聘系统接入阿里云短信

热门文章

  1. Arduino ESP32 Web网页控制RGB灯
  2. python--webdriver驱动浏览器操作(基础知识)
  3. ABAP 金额内外部转换函数
  4. 自制Unity文件查找器,支持拼音搜索
  5. 柯达i2400批量自动扫描仪 JoySailScan控件转出的Base64尾部永远多一个'/',将导致解码失败
  6. node节点kubelet报错 node \“xxxxx“ not found
  7. 什么是浮点型?什么是单精度浮点数(float)以及双精度浮点数(double)?
  8. 漏洞:会话固定攻击(session fixation attack)
  9. L2-3 清点代码库 (25 分)
  10. 【深入理解TcaplusDB技术】入门Tcaplus-JDBC开发