Ubuntu14.04或16.04下安装JDK1.8+Scala+Hadoop2.7.3+Spark2.0.2
为了将Hadoop和Spark的安装简单化,今日写下此帖。
首先,要看手头有多少机器,要安装伪分布式的Hadoop+Spark还是完全分布式的,这里分别记录。
1. 伪分布式安装
伪分布式的Hadoop是将NameNode,SecondaryNameNode,DataNode等都放在一台机器上执行,Spark同理,一般用于开发环境。
1.1 准备工作
系统准备:一台Ubuntu16.04机器,最好能够联网
准备好四个安装包:jdk-8u111-linux-x64.tar.gz,scala-2.12.0.tgz,hadoop-2.7.3.tar.gz,spark-2.0.2-bin-hadoop2.7.tgz
1.2 配置SSH免密码登录
SSH是集群不同机器间实现自由数据传输通信的根本保障。安装完成后试试ssh到本机是否需要密码即可。
sudo apt-get install ssh openssh-server
# 安装SSH ssh-keygen -t rsa -P ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 配置秘钥 service ssh start
# 启动SSH服务
1.3 解压四个软件包并配置环境变量
解压四个软件包:
tar -zxvf jdk-8u111-linux-x64.tar.gz
sudo mv jdk1.8.0_111 /usr/lib/
# 解压JDK并移动到/usr/lib/下 tar -zxvf scala-2.12.0.tgz
sudo mv scala-2.12.0 /usr/lib/
# 解压scala并移动到/usr/lib/下 tar -zxvf hadoop-2.7.3.tar.gz
# 解压hadoop包 tar -zxvf spark-2.0.2-bin-hadoop2.7.tgz
# 解压spark包
配置环境变量:
当前用户的环境变量位于~/.profile,root用户的环境变量位于/etc/profile。这里我们将环境变量按当前用户配置。vim ~/.profile
vim ~/.profile
# 打开环境变量 # 添加下面的变量
export JAVA_HOME=/usr/lib/jdk1.8.0_111
export SCALA_HOME=/usr/lib/scala-2.12.0
export HADOOP_HOME=/home/user/hadoop-2.7.3
export SPARK_HOME=/home/user/spark-2.0.2-bin-hadoop2.7
export PATH=$PATH:$JAVA_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # 保存后使其立即生效
source ~/.profile
1.4 配置Hadoop
需要配置三个文件:core-site.xml,mapred-site.xml,hdfs-site.xml。
在core-site.xml中添加如下信息:
vim hadoop-2.7.3/etc/hadoop/core-site.xml
# 打开文件 <configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/user/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
在mapred-site.xml中添加如下信息:
cp hadoop-2.7.3/etc/hadoop/mapred-site.xml.template hadoop-2.7.3/etc/hadoop/mapred-site.xml
# 复制一份 vim hadoop-2.7.3/etc/hadoop/mapred-site.xml
# 打开文件 <configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
在hdfs-site.xml中添加如下信息,其中replication是机器数量,此处为1,user为当前用户名:
vim hadoop-2.7.3/etc/hadoop/hdfs-site.xml
# 打开文件 <configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/user/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/user/hadoop/tmp/dfs/data</value>
</property>
</configuration>
如果在启动Hadoop时找不到环境变量,可以在hadoop-2.7.3/etc/hadoop/hadoop-env.sh中明确:export JAVA_HOME=/usr/lib/jdk1.8.0_111
1.5 配置Spark
Spark只需要配置spark-env.sh文件。
vim /home/user/spark-2.0.2-bin-hadoop2.7/conf/spark-env.sh
# 打开文件 export JAVA_HOME=/usr/lib/jdk1.8.0_111
export SCALA_HOME=/usr/lib/scala-2.12.0
export SPARK_MASTER_HOST=localhost #单机下配置为localhost
export HADOOP_CONF_DIR=/home/user/hadoop-2.7.3/etc/hadoop/ #hadoop配置目录
export SPARK_WORKER_MEMORY=8g #给spark分配8G内存
export SPARK_WORKER_CORES=16 #允许spark以16核并行运算
# 配置项很多,请参考文件中的提示
1.6 启动Hadoop和Spark
先格式化hadoop的HDFS(分布式文件系统),这是必要的步骤,否则NameNode无法启动。但也不需要每次启动Hadoop时都格式化,否则会造成Data和Name不兼容,使得DataNode无法启动,若出现这种情况,删掉tmp/data/current/下的VERSION文件。重新格式化HDFS即可。
启动Hadoop和Spark命令为:
$HADOOP_HOME/bin/hdfs namenode -format
# 格式化HDFS
$HADOOP_HOME/sbin/start-all.sh
# 启动Hadoop
$SPARK_HOME/sbin/start-all.sh
# 启动Spark
启动后,输jps命令,若Hadoop的DataNode,NameNode,SecondaryNameNode,***Manager都启动,Spark的Master和Worker都启动,则集群成功启动,缺一不可。
此时,访问http://localhost:50070可访问Hadoop集群Web任务查看页面,访问http://localhost:8080可访问Spark集群Web任务查看页面。
注意:如果装的是双系统,ubuntu访问ntfs盘符可以使用这条命令激活:ntfsfix /dev/sda5
2. 完全分布式安装
顾名思义,完全分布式安装是真正的集群部署,一般用于生产环境。
2.1 准备工作
系统准备:一台Ubuntu16.04机器作为master(ip:192.168.1.1),最好能够联网;1台及其以上Ubuntu16.04机器作为slave节点(ip:192.168.1.2 ...)
准备好四个安装包:jdk-8u111-linux-x64.tar.gz,scala-2.12.0.tgz,hadoop-2.7.3.tar.gz,spark-2.0.2-bin-hadoop2.7.tgz
2.2 配置SSH免密码登录
SSH是集群不同机器间实现自由数据传输通信的根本保障。安装完成后试试ssh到本机是否需要密码即可。
此处步骤与1.2中相同,但是要将master上的RSA秘钥拷贝到其他机器,实现机器间自由访问。
scp ~/.ssh/id_rsa.pub user@slave01:/home/user/
# 远程拷贝RSA秘钥 ssh slave01;
# 登录slave01
mkdir ~/.ssh;cat ~/id_rsa.pub >> ~/.ssh/authorized_keys;exit;
# 将秘钥生成公钥并退出
ssh slave11;
# 重新连接看是否需要密码,自动登录则成功
依次类推,对所有的slave节点做相同操作,最后实现master到任意slave节点的SSH无密码登录。
此外,我们还需要对每台机器上的hosts文件做配置,以实现SSH到hostname即可访问机器,无需显式IP地址。
sudo vim /etc/hosts
# 打开hosts # 存入下面的IP与hostname映射
192.168.1.1 master
192.168.1.2 slave01
192.168.1.3 slave02
192.168.1.4 slave03
...
依次类推,对所有的slave节点做相同操作。
2.3 解压四个软件包并配置环境变量
在master主节点机器上解压四个软件包和配置环境变量,与1.3相同,不同的是,还需要通过scp命令将配置好的jdk和scala整体拷贝到其他从节点。
2.4 配置Hadoop
需要配置三个文件:core-site.xml,mapred-site.xml,hdfs-site.xml,slaves。
前三个与1.4都相同,只需将localhost改成master(主节点的hostname名),replication改成具体的机器个数。
最后,还需要通过scp命令将配置好的hadoop整体拷贝到其他从节点。
2.5 配置Spark
Spark只需要配置spark-env.sh文件,这一步与1.5相同。最后,通过scp命令将配置好的spark整体拷贝到其他从节点。
2.6 启动Hadoop和Spark
在主节点上启动hadoop和spark,通过jps验证是否成功启动集群。
到此,您就可以在单机上用Eclipse或Intellij做开发,在集群上运行整个集群任务咯!
Ubuntu14.04或16.04下安装JDK1.8+Scala+Hadoop2.7.3+Spark2.0.2的更多相关文章
- Ubuntu14.04用apt在线/离线安装CDH5.1.2[Apache Hadoop 2.3.0]
目录 [TOC] 1.CDH介绍 1.1.什么是CDH和CM? CDH一个对Apache Hadoop的集成环境的封装,可以使用Cloudera Manager进行自动化安装. Cloudera-Ma ...
- 在ubuntu16.04+python3.5情况下安装nltk,以及gensim时pip3安装不成功的解决办法
在ubuntu16.04+python3.5情况下安装nltk,以及gensim时pip3安装不成功的解决办法,我刚开始因为不太会用linux命令,所以一直依赖于python 的pip命令,可是怎么都 ...
- buntu14.04和16.04官方默认更新源sources.list和第三方源推荐(干货!)转
配置完成后: sudo apt-get update 安装和删除软件: sudo apt-get install sudo apt-get remove buntu14.04和16.04官方默认更新源 ...
- CentOS 6系统下安装 JDK1.6
CentOS 6系统下安装 JDK1.6 JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品.自从Java推出以来,JDK已经成为使用最广泛的 ...
- centos 7下安装jdk1.8
本篇文章主要介绍在centos7 环境下安装jdk1.8并配置环境变量. 安装步骤 1.下载网址 https://www.oracle.com/technetwork/java/javase/do ...
- Linux下安装jdk1.7
Linux下安装jdk1.7 1.进入 /usr/local下创建一个文件夹software,用来存放安装包. [root@192 ~]# cd /usr/local/ 2.创建文件夹 [root@1 ...
- Change default network name (ens33) to old “eth0” on Ubuntu 18.04 / Ubuntu 16.04
Change default network name (ens33) to old “eth0” on Ubuntu 18.04 / Ubuntu 16.04 By Raj Last updated ...
- CentOS6.5下安装JDK1.7+MYSQL5.5+TOMCAT7+nginx1.7.5环境安装文档
----------------CentOS6.5下安装JDK1.7+MYSQL5.5+TOMCAT7+nginx1.7.5环境安装文档----------------------- [JDK1.7安 ...
- linux: ubuntu 14.04 和16.04 快速下载
由于官网服务器在国外,下载速度奇慢,所以我们可以利用阿里云镜像下载ubuntuubuntu 14.04:http://mirrors.aliyun.com/ubuntu-releases/14.04/ ...
随机推荐
- Python: 处理mongodb文档,怎么让UTC时间转换为本地时间?
存储数据到MongoDB数据库时,一般我们会加一个更新数据的时间update_time.这时在python代码中 会用到datetime模块以便获取当前系统时间,但是存入到MongoDB数据库时,存储 ...
- iOS 通信常用小功能
打电话 a.最简单最直接的方式:直接跳到拨号界面 NSURL *url = [NSURL URLWithString:@"tel://10010"]; [[UIApplicatio ...
- Python 实现Windows开机运行某软件
开机运行:随系统启动的应用程序,当系统启动之后会自动加载的应用 在注册表中添加启动项便可实现开机启动. 代码如下: # -*- coding:utf-8 -*- import win32api imp ...
- POCO库——Foundation组件之核心Core
核心Core: Version.h:版本控制信息,宏POCO_VERSION,值格式采用0xAABBCCDD,分别代表主版本.次版本.补丁版本.预发布版本: Poco.h:简单地包含了头文件Found ...
- Duilib源码分析(四)绘制管理器—CPaintManagerUI—(前期准备二)
接下来,我们继续分析UIlib.h文件中余下的文件,当然部分文件可能顺序错开分析,这样便于从简单到复杂的整个过程的里面,而避免一开始就出现各种不理解的地方. 1. UIManager.h:UI管理器, ...
- mysql中ip和整数的转换
INET_ATON(expr) 给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数.地址可以是4或8比特地址. mysql> SELECT INET_ATON('209.20 ...
- [Linux] 查看jar包内容
jar vtf fileName.jar 用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] file ...
- 五分钟搭建起一个包含CRUD功能的JqGrid表格
之前的项目也曾用过JgGrid对它的基本功能也是略有了解,网上有个国外的开源的项目,但是不适合个人的风格,所以花了3天空余的时间封装了下JqGrid,也算是参加开发工作10个月以来写的第一个比较完整的 ...
- TDD学习笔记【二】---单元测试简介
大纲 Testing 的第一个切入点:单元测试. 本篇文章将针对单元测试进行简介,主要内容包含了5W: Why What Where Who When 而How 的部分,属于实现部分,将于下一篇文章介 ...
- SQL谜题(楼层谜题)
Multiple DwellingsBaker, Cooper, Fletcher, Miller and Smith live on different floors of an apartment ...