1 安装JDK
 
1) 进入JDK官网
2) 下载JDK安装包
3)配置环境变量,在/etc/profile增加以下代码
JAVA_HOME=/home/hadoop/jdk1.6.0_38
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
4)使profile文件更新生效
source /etc/profile
 
2 安装Scala
Scala 官网提供各个版本的Scala,用户需要根据Spark官方规定的Scala版本进行下载和安装。Scala官网地址为http://www.scala-lang.org/
1) 下载Scala
2)在目录下解压
tar -zxvf scala-2.10.4.tgz
 
3)配置环境变量,在/etc/profile中添加下面的内容
export SCALA__HOME=/home/hadoop/scala-2.10.4/scala-2.10.4
export PATH=${SCALA_HOME}/bin:$PATH
 
4)使用profile文件更新生效
source /etc/profile
 
3 配置SSH免密码登录
在集群管理和配置中有很多工具可以使用。例如,可以采用pssh等Linux工具在集群中分发与复制文件,用户也可以自己书写Shell、Python的脚步分发包。
Spark的Master节点向Worker节点命令需要通过ssh进行发送,用户不希望Master每发送一次命令就输入一次密码,因此需要实现Master无密码登陆到所有Worker。
Master作为客户端,要实现无密码公钥认证,连接服务端Worker。需要在Master上生成一个秘钥对,包括一个公钥和一个私钥,然后将公钥复制到Worker上。当Master通过ssh连接Worker
 
1)在Master节点上,执行以下命令
ssh-keygen-trsa
 
2)打印日志执行以下命令
 
如果是root用户,则在/root/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。
把Master上的id_rsa.pub文件追加到Worker的authorized_keys内。
3)复制Master的id_rsa.pub文件
scp id_rsa.pub root@172.20.14.144:/home
/*可使用pssh对全部节点分发*/
 
4)登录worker节点,执行以下命令
cat /home/id_rsa.pub >> /root/.ssh/authorized_keys
/*可使用pssh对全部节点分发*/
 
注意:配置完毕,如果Master仍然不能访问Worker,可以修改Worker的authorized_keys文件的权限,命令为 chmod 600 authorized_keys
 
4安装Hadoop
(1)下载hadoop-2.2.0
 
 1)选取一个Hadoop镜像网址,下载Hadoop
wget http://www.trieuvan.com/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz
 
 2)解压tar包
tar -vxzf hadoop-2.2.0.tar.gz -C /usr/local
cd /usr/local
mv hadoop-2.2.0 hadoop
chown -R hduser:hadoop hadoop
 
(2)配置Hadoop环境变量
 1)编辑profile文件
vi /etc/profile
 
 2)在profile文件中增加以下内容
export JAVA_HOME=/usr/lib/jvm/jdk/
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
 
(3)编辑配置文件
 
 1)进入Hadoop所在目录
 2)配置hadoop-env.sh文件
export JAVA_HOME=/usr/lib/jvm/jdk/
 
 3)配置core-site.xml文件
<configuration>
/*这里的值指的是默认的HDFS路径*/
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>

/*缓冲区大小: io.file.buffer.size默认是4KB*/
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
/*临时文件夹路径*/
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/tmp</value>
<description> Abase for other temporary directories </description>
</property>
<property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property>
</configuration>

 
 4) 配置yarn-site.xml文件
<configuration>
<property>
<name>yarn.nodemanager.aux-services</value>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
/*resourceManager的地址*/
<property>
<name>yarn.resourcemanager.address</name>
<value>Master:8030</value>
</property>
/*调度器的端口*/
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>Master1:8030</value>
</property>
/*resource-tracker端口*/
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>Master:8031</value>
/*resourcemanager管理器端口*/
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>Master:8033</value>
</property>
/*ResourceManager 的Web端口、监控 job 的资源调度*/
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>Master:8088</value>
</property>
</configuration>
 
 5)配置mapred-site.xml文件
<configuration>
/*hadoop对map-reduce运行矿建一共提供了3种实现,在mapred-site.xml中通过“mapreduce.framework.name”这个属性来设置为"classic"."yarn"或者“local”*/
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
/*MapReduce JobHistory Server地址*/
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
/*MapReduce JobHistory Server web UI 地址*/
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
</configuration>
 
 
(4)创建namenode和datanode目录,并配置其相应路径
  1)创建namenode和datanode目录,
mkdir /hdfs/namenode
mkdir /hdfs/datanode
 
  2)执行命令后,再次回到目录,配置hdfs-site.xml文件,在文件中添加如下内容
<configuration>
/*配置主节点名和端口*/
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:9001</value>
</property>
/*配置从节点和端口号*/
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/hdfs/namenode</value>
</property>
/*配置datanode的数据存储目录*/
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/hdfs/datanode</value>
</property>
/*配置副本数*/
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
/*将dfs.webhdfs.enabled属性设置为true,否则就不能使用webhdfs的LISTSTATUS,LISTFILESTATUS等需要列出文件,文件夹状态的命令,因为这些信息都是由namenode保存的*/
<proeprty>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
 
 
(5)配置Master和Slave文件
 1)Master文件负责配置主节点的主机名
Master /*Master为主节点主机名*/
 
 
 2)配置Slaves文件添加从节点主机名
/*Slave为从节点主机名*/
Slave1
Slave2
Slave3
Slave4
Slave5
 
 
(6)将Hadoop所有文件通过pssh发送到各个节点
./pssh -h hosts.txt -r /hadoop /
 
 
(7)格式化Namenode(在Hadoop根目录下)
  ./bin/hadoop namenode -format
 
(8)启动Hadoop
./sbin/start-all.sh
 
 
(9)查看是否配置和启动成功
jps
DataNode
ResourceManager
Jps
NodeManager
NameNode
SecondaryNameNode
 
ps-aux|grep *DataNode* /*查看DataNode进程*/
 
5 安装Spark
 
1)下载spark
2)解压
3)配置
 
编辑conf/Spark-env.sh文件,加入下面的配置参数
export SCALA_HOME=/paht/to/scala-2.10.4
export SPARK_WORKER_MEMORY=7g
export SPARK_MASTER_IP=172.16.0.140
export MASTER=spark://172.16.0.140:7077
 
4)配置slaves文件
编辑conf/slaves文件,以5个Worker节点为例,将节点的主机名加入slaves文件中
Slave1
Slave2
Slave3
Slave4
Slave5
 
6 启动集群
 
(1)Spark启动与关闭
  1)在Spark根目录启动Spark
./sbin/start-all.sh
2)关闭Spark
./sbin/stop-all.sh
 
(2)Hadoop的启动与关闭
  1)在Hadoop根目录启动Hadoop
  2)关闭Hadoop
 
(3)检测是否安装成功
 1)正常状态下的Master节点如下。
 2)利用ssh登录Worker节点

【Spark】---- 在Linux集群上安装和配置Spark的更多相关文章

  1. 06、部署Spark程序到集群上运行

    06.部署Spark程序到集群上运行 6.1 修改程序代码 修改文件加载路径 在spark集群上执行程序时,如果加载文件需要确保路径是所有节点能否访问到的路径,因此通常是hdfs路径地址.所以需要修改 ...

  2. 超详细实操教程!在现有K8S集群上安装JenkinsX,极速提升CI/CD体验!

    在2018年年初,Jenkins X首次发布,它由Apache Groovy语言的创建者Jame Strachan创建.Jenkins X 是一个高度集成化的 CI/CD 平台,基于 Jenkins ...

  3. Dubbo入门到精通学习笔记(十三):ZooKeeper集群的安装、配置、高可用测试、升级、迁移

    文章目录 ZooKeeper集群的安装.配置.高可用测试 ZooKeeper 与 Dubbo 服务集群架构图 1. 修改操作系统的/etc/hosts 文件,添加 IP 与主机名映射: 2. 下载或上 ...

  4. ZooKeeper 集群的安装、配置---Dubbo 注册中心

    ZooKeeper 集群的安装.配置.高可用测试 Dubbo 注册中心集群 Zookeeper-3.4.6 Dubbo 建议使用 Zookeeper 作为服务的注册中心. Zookeeper 集群中只 ...

  5. Dubbo入门到精通学习笔记(十四):ActiveMQ集群的安装、配置、高可用测试,ActiveMQ高可用+负载均衡集群的安装、配置、高可用测试

    文章目录 ActiveMQ 高可用集群安装.配置.高可用测试( ZooKeeper + LevelDB) ActiveMQ高可用+负载均衡集群的安装.配置.高可用测试 准备 正式开始 ActiveMQ ...

  6. 大数据高可用集群环境安装与配置(06)——安装Hadoop高可用集群

    下载Hadoop安装包 登录 https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ 镜像站,找到我们要安装的版本,点击进去复制下载链接 ...

  7. 在Hadoop集群上的HBase配置

    之前,我们已经在hadoop集群上配置了Hive,今天我们来配置下Hbase. 一.准备工作 1.ZooKeeper下载地址:http://archive.apache.org/dist/zookee ...

  8. 大数据高可用集群环境安装与配置(09)——安装Spark高可用集群

    1. 获取spark下载链接 登录官网:http://spark.apache.org/downloads.html 选择要下载的版本 2. 执行命令下载并安装 cd /usr/local/src/ ...

  9. Spark在Hadoop集群上的配置(spark-1.1.0-bin-hadoop2.4)

    运行Spark服务,需要在每个节点上部署Spark. 可以先从主节点上将配置修改好,然后把Spark直接scp到其他目录. 关键配置 修改conf/spark-env.sh文件: export JAV ...

随机推荐

  1. CCF 201612-2 工资计算 java 解题

    问题描述 小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资.假设他一个月的税前工资(扣除五险一金后.未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算: 1) 个人所得 ...

  2. 【视频演示】FireBase链接已有应用&amp;实时数据库的配置与使用

    全程无编辑,一镜到底,一帧未减,带上犯傻的时间全部不到31分钟:Firebase链接与基础功能使用如此之简单,跟我一起动手,从零开始链接Firebase吧~注意: 输入声源为笔记本自带麦克风,所以风扇 ...

  3. 解决安卓TextView异常换行,参差不齐等问题

    参考:http://blog.csdn.net/u012286242/article/details/28429267?utm_source=tuicool&utm_medium=referr ...

  4. UITabBarController的一些基础设置

    利用代码添加UITabBarController - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOpti ...

  5. android132 360 05 手机定位

    .网络定位:根据ip地址定位,根据ip地址在实际地址数据库中查询实际地址. 缺点:动态ip导致地址不准确. .基站定位:3个基站就可以确定实际位置,定位范围是几百米到几公里不等. .GPS定位:美国卫 ...

  6. Linux命令查询手册--sort

    一.sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. 二.sort的参数选项 1. sort -u 在输出 ...

  7. C#基础之------委托

    一.委托的基本介绍 可以任务委托是持有一个或多个方法的对象.当然,正常情况下你不会去执行一个对象,但是委托与对象不同.可以执行委托,这是委托就会执行他所"持有"的方法. 举个栗子就 ...

  8. QChart绘制折线区域

    效果图: 代码: // 创建折线上点的序列 QLineSeries *splineSeries = new QLineSeries(); //QSplineSeries *splineSeries = ...

  9. 【LeetCode】Missing Ranges

    Missing Ranges Given a sorted integer array where the range of elements are [lower, upper] inclusive ...

  10. Docker入门笔记(1)

    Docker入门笔记(1) 1.安装Docker yum -y install docker-ce 2.查看Docker版本 [root@localhost ~]# docker -v Docker ...