spark1.6.2 on hadoop2.6.4安装流程
来源:互联网 发布:linux安装jdk报错 编辑:程序博客网 时间:2024/05/01 16:54
一、前期集群的网络环境及系统相关配置
1.前期网络环境准备工作,在所有机器上面安装CentOS6.4版本的操作系统配置相应的ip地址,最好是同一个网段的
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0HWADDR=0C:C4:7A:4D:56:ACTYPE=EthernetUUID=c3c75576-49e0-41ce-9f41-5c5164e1b5e6ONBOOT=yes //设置开机就启动BOOTPROTO=static //设置固定的ip地址IPADDR=192.168.6.128NETMASK=255.255.0.0 GATEWAY=192.168.0.1 //这个网关地址在有多张网卡的情况下只需配置一个网关,如果配置多个,可能引起网络混乱
重启网络服务
service network restart亦或/etc/rc.d/init.d/network restart
这时如果机器中有多张网卡的话,可能会报NetworkManager相关服务错误,不过没关系把它关掉就好了
service NetworkManager stopchkconfig NetworkManager off (永久性关闭,和关闭防火墙的命令类似)
然后重启网络应该就可以了
查看网卡的基本设置
ethtool eth0永久性关闭所有机器的系统自带的防火墙(软件防火墙)service iptables stop chkconfig iptables off
2.格式化所有硬盘盘,然后重新挂载
查看各台机器上面有多少块硬盘盘
fdisk -l
一般来讲/dev/sda都是作为系统盘,我们要格式化都是从/dev/sdb往后开始格式化
然后根据之前的查询结果,开始格式化
mkfs -t ext4 /dev/sdb .....mkfs.ext4 -T largefile /dev/sdx //这个是快速格式的命令
格式化的时候可以多开几个窗口同时进行格式化
blkid //获取文件系统类型、UUID挂载硬盘mkdir /data1 ...// 创建挂载目录mount /dev/sdb /data1 //挂载
vi /etc/fstab
在最后一行添加
UUID=ce7c3e05-d966-4128-93d3-4d63dc8408c9 /data1 ext4 defaults 0 0 //红色的UUID可以从上面的blkid处获取 , 0 0 分别表示不需要备份和不用开机检测
3.安装流程预览
我们先不急着安装,先来理一理大概的流程,做到心里有数就行了。
我自己习惯是先配置集群机器之间的ssh免密码登录当然仅限hadoop用户之间的免密码跳转,然后是配置NTP时钟服务器用来进行时间同步,以管理节点的机器作为服务器,其他节点机器作为客户端就行了,配置好之后就是安装jdk,hadoop(我们仅hadoop中的hdfs分布式文件系统就行了,像其他的mapreduce等配置文件就不用配,用不到),最后就是安装datacube,大致流程就是这样,当然如果你是新手的话,还是不要参照我的流程去搭建。
二、主机环境搭建:
前提是已经完成上述的步骤,然后分别完成以下操作。
(这时是用root身份登陆的)
1. 在此之前我还得重提一下网络环境,如果我们的机器想要访问外网必须得配网关地址和DNS域名解析服务器的地址,当然一般网络的问题各公司或单位的网关都可以解决,在此我就多嘴一下。如果不用上外网就算了。
配置DNS服务器
vim /etc/resolv.conf
...........nameserver x.x.x.x #Replace with your nameserver ip
- 修改主机名,打开hostname文件,分别将主机名修改为master,slave1,slave2
vim /etc/sysconfig/network
NETWORKING=yesHOSTNAME=masterGATEWAY=192.168.0.1
3. 修改主机配置文件,打开hosts文件:
vim /etc/hosts
添加如下内容
192.168.6.128 master192.168. 6.129 slave1192.168. 6.130 slave2
4.调整系统参数(这个根据自己需要去调整)
vi /etc/security/limits.conf
添加
* - nproc 65536* - nofile 65535* - sigpending 65536
重启
三、添加用户
1. 创建hadoop用户组
groupadd hadoop
2. 创建hadoop用户
useradd -g hadoop hadooppassword hadoop //默认hadoop密码
(切换成hadoop用户,此后所有操作都是默认是hadoop用户,如有例外会特别说明)
*3. 给hadoop用户添加权限,打开/etc/sudoers文件
(此时切换为root用户)*
vim /etc/sudoers(也可直接输入 visudo)
按回车键后就会打开/etc/sudoers文件了,给hadoop用户赋予root用户同样的权限在root ALL=(ALL:ALL) ALL下添加hadoop ALL=(ALL:ALL) NOPASSWD: ALL
四、配置master到slave的免密码登陆
1. 安装ssh服务(CentOS安装系统时会默认给你安装ssh服务,如没有则按下面命令来安装)
此时如何没有安装最好切换成root用户安装
# rpm -qa |grep ssh 检查是否装了SSH包没有的话yum install openssh-server和yum install openssh-clients #chkconfig --list sshd 检查SSHD是否在本运行级别下设置为开机启动 #chkconfig --level 2345 sshd on 如果没设置启动就设置下. #service sshd restart 重新启动 #netstat -antp |grep sshd 看是否启动了22端口.确认下.
#iptables -nL 看看是否放行了22口.
2. 配置master到slave的免密码登陆(这里以slave1为例,其他slave操作一致)
master生成authorized_key
ssh-keygen -t dsa
然后一路回车生私钥和公钥文件,在.ssh文件夹下会生成id_dsa和id_dsa.pub两个文件
cd .ssh/cat id_dsa.pub >> authorized_keys
将slave1 的id_dsa.pub添加到master的authorized_keys
scp hadoop@slave1:~/.ssh/id_dsa.pub ./slave1 _dsa.pubcat slave1_dsa.pub >> authorized_keys
重复以上步骤再分别将slave2,slave3机器的id_dsa.pub添加到master的authorized_keys
然后再执行命令chmod 700 .ssh
chmod 600 authorized_keys //root用户不需要权限操作
最后将生成的authorized_keys分别复制到其他机器slave1,slave2,slave3的.ssh下,然后测试
各机器之间跳转是否还要输入密码
ssh salve1
五、搭建NTP时间同步服务器(后续我会在Hbase相关的博客给大家详细写一篇,这里就忽略了)
六、安装jdk和scala,配置环境变量
jdk我们选择1.8的版本,scala选择2.10.4版本
安装jdk和Scala
tar -xvf jdk-8u11-linux-x64.tar.gzmv /jdk-8ull-linux /usr/local/jdktar -xvf scala-2.10.4.tgzmv /scala-2.10.4 /usr/local/jdk
配置jdk和scala的相关环境变量
vim /etc/profile
在最后面追加
export JAVA_HOME=/usr/local/jdkexport SCALA_HOME=/usr/local/scalaexport PATH=$PATH:$JAVA_HOME/bin:$SCALA_HOME/binexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jarsource /etc/profile
然后检查一下jdk和scala是否安装成功
java -version /scala -version
七、hadoop的安装与配置
*hadoop安装包版本是hadoop-2.6.4,安装包可以直接从apache社区下,hadoop-2.6.4.tar.gz。
将hadoop解压到/home/hadoop/hadoop-2.6.4目录下(这样的安装目录和用户手册上的有区别,我个人的习惯是这样安装,这样安装有好多好处,比如容易管理,出现错误,也很容易进行定位,二是有权限保护,除了root用户外其他普通用户很难进入这个目录进行破坏性操作,降低了误操作的风险)*
配置环境变量如下:
vim ~/.bash_profile (亦可在/etc/profile全局环境变量中配置环境,但我习惯是在 个人变量中配置)
在最后一行追加如下配置:
export HADOOP_HOME=/home/hadoop/hadoop-2.6.4export SPARK_HOME=/home/hadoop/spark#这个是spark的环境变量export HADOOP_HEAPSIZE=512 #设置一下堆栈大小,我是在vm中跑的所以要设置小一点export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PATHexport HADOOP_OPTS=-Djava.library.path=$HADOOP_HOME/lib/native
source ~/.bash_profile//使配置环境生效
注:配置环境变量应该在最后一步,各个节点都需要单独配置
以下配置文件在hadoop-2.6.4/etc/hadoop/中。
hadoop-env.sh配置
JAVA_HOME:指定hadoop系统的Java安装的位置。HADOOP_CONF_DIR:指定hadoop下的conf目录路径。HADOOP_HEAPSIZE:hadoop为各个守护进程分配的内存,默认值为1000,单位MB。HADOOP_NAMENODE_OPTS:由于namenode会在内存中存储所有文件的每个数据块的引用,因此namenode很可能会吃光分配给它的所有内存。想不改变其他hadoop守护进程的内存分配量而只增加namenode的内存分配量,可以用此参数传递一个JVM额外选项。如-Xmx2000m选项表示为namenode分配2000MB内存空间。HADOOP_SECONDARYNAMENODE_OPTS:同HADOOP_NAMENODE_OPTS。HADOOP_DATANODE_OPTS:同HADOOP_NAMENODE_OPTS,看情况设置,也可用默认。HADOOP_NAMENODE_INIT_HEAPSIZE:为namenode进程分配的初始内存。HADOOP_LOG_DIR:hadoop生成的系统日志文件存放目录。HADOOP_PID_DIR:hadoop进程文件存放目录
注意:安装时候这里没有提及的配置项不需要修改。
core-site.xml配置
<?xml version="1.0"?><!-- Put site-specific property overrides in this file. --><configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>io.file.buffer.size</name> <value>131702</value> </property></configuration>
fs.default.name:默认文件系统。URI定义主机名称和namenode的RPC服务器工作的端口号,默认值是9000。端口号与地址根据实际情况设定。该文件的其他配置项不需要修改。
hdfs-site.xml配置
<?xml version="1.0"?><!-- Put site-specific property overrides in this file. --><configuration> <property> <name>dfs.namenode.rpc-address</name> <value>master:9000</value> </property> <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.blocksize</name> <value>268435456</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/namenode</value> </property> <property> <name>dfs.namenode.http-address</name> <value>master:50070</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/datanode</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property></configuration>
dfs.namenode.name.dir:namenode存储永久性的元数据的目录列表。namenode在列表上的各个目录中均存放相同的云数据文件。
dfs.datanode.data.dir:datanode存放数据块的目录列表。各个数据块分别存放于某一个目录中。需要确定该目录所在磁盘有足够空间
该文件的其他的配置项不需要修改。
mapred-site.xml配置
<?xml version="1.0"?><!-- Put site-specific property overrides in this file. --><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.webapp.address</name> <value>master:19888</value> </property> <property> <name>mapreduce.map.memory.mb</name> <value>512</value> </property> <property> <name>mapreduce.reduce.memory.mb</name> <value>512</value> </property></configuration>
yarn-site.xml配置
<?xml version="1.0"?><!-- Put site-specific property overrides in this file. --><configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.aux-services.mapreduce_shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>1024</value> </property> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>512</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>1024</value> </property> <property> <name>yarn.nodemanager.resource.cpu-vcores</name> <value>1</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property></configuration>
slaves配置
slaves文件记录了运行datanode和tasktracker的所有机器。
slave1slave2
将配置好的hadoop分发到各个节点
启动hadoop服务
$HADOOP_HOME/bin/hadoop namenode –format$HADOOP_HOME/sbin/start-dfs.sh
启动完成后可在浏览器中输入http://192.168.6.131:50070查看hadoop状态
$HADOOP_HOME/sbin/start-yarn.sh
启动yarn
八、spark安装配置
将spark-1.6.2-bin-hadoop2.6.tgz软件包上传到集群上。解压到/home/hadoop/spark 目录下。
spark环境变量配置
vim ~/bash_profile export SPARK_HOME=/home/hadoop/spark export PATH = $PATH:$SPARK_HOME/bin
spark-env.sh配置
JAVA_HOME:指定系统的Java安装的位置。
export HADOOP_CONF_DIR=/home/hadoop/hadoop-2.6.4/etc/hadoopexport JAVA_HOME=/usr/local/jdkexport SCALA_HOME=/usr/local/scalaexport SPARK_MASTER_IP=masterexport SPARK_WORKER_MEMORY=1g
spark-defaults.conf文件配置
spark.master= spark://master:7077spark.eventLog.enabled= true#开启spark日志模式spark.eventLog.dir= hdfs://master:9000/tmp/spark/eventsspark.history.ui.port=18080spark.history.fs.logDirectory = hdfs://master:9000/tmp/spark/eventsspark.yarn.jar=hdfs:///system/spark/jars/spark-assembly-1.6.2-hadoop2.6.0.jar#将spark lib下的原包上传到hdfs上面,避免执行spark作业的时候重复上传
slaves文件配置
vim slaves
slave1 slave2
启动spark
$SPARK_HOME/sbin/ start-all.sh 启动$SPARK_HOME/sbin/ start-history-server.sh 开启日志服务(这个服务开启,才能在18080端口查看spark作业日志)
查看给进程是否已经起来
启动完成后在浏览器中输入http://192.168.6.131:8080查看spark状态
启动spark-shell
$SPARK _HOME/bin/ spark-shell
九、spark作业(后续有时间的话,我会再给大家整个作业demo样例)
后记:这篇文档其实我已经很早之前就写了,因为忙一直没时间整理,现在spark最新版本好像已经到spark2.1了吧,不过总体应该没变。后续我也会再写一些关于k8s,docker容器技术之类的博客,这大半年都是在弄这个,也算也点小的心得,有兴趣的朋友可以过来看一看
- spark1.6.2 on hadoop2.6.4安装流程
- Spark1.5.2 on Hadoop2.4.0 安装配置
- Hadoop2.6.4、zookeeper3.4.6、HBase1.2.2、Hive1.2.1、sqoop1.99.7、spark1.6.2安装
- hadoop2.4.1集群安装spark1.1.0
- Spark1.2+Hadoop2.6伪分布式安装
- hadoop2.4+spark1.3.0集群安装
- linux(centos7)基于hadoop2.5.2安装spark1.2.1
- Ubuntu16.04安装Hadoop2.6+Spark1.6+开发实例
- hadoop2.2.0安装spark1.1.0(maven编译)
- HaDoop2.6下安装并配置Spark1.6.3
- hadoop2.6.1+spark1.5.1
- Tachyon0.6.4+Spark1.3+hadoop2.6.0 配置教程详解
- Tachyon0.6.4+Spark1.3+hadoop2.6.0 配置教程详解
- Spark1.6.2安装部署方法
- Spark1.6.0 on Hadoop-2.6.3 安装配置
- Spark1.6.0 on Hadoop-2.6.3 安装配置
- hadoop2.4.1 spark1.0.1编译
- Spark1.5.0 + Hadoop2.7.1整合
- c++设计模式之简单工厂模式
- C#中调用DLL时未能加载文件或程序集错误处理方法
- android 实现蒙版引导
- 类的加载
- 实习第一天
- spark1.6.2 on hadoop2.6.4安装流程
- ARM Linux启动流程-根文件系统的加载
- 人民日报四问产权保护
- mysql笔记系列——数据类型问题
- 南阳oj 笨小熊
- 三级管知识
- Eclipse生成jar包和导入jar包
- 04、nodejs命名规范
- MySQL存储过程