伪分布式安装hadoop2.6和spark1.4.1
研究生生活即将开始,以写博客的方式来记录在实验室的点滴。
因为实验室是做大数据计算的,要用hadoop和spark框架,所以本篇主要记录hadoop和spark的搭建。
一、搭建环境软硬件
1、硬件环境
服务器一台(暂时用一台服务器做实验,以后会加入剩下的几台搭建完全分布式):16核、10.6G内存
2、软件环境
- centos 7 64位
- hadoop2.6
- spark-1.4.1-bin-hadoop2.6
- scala-2.11.7
- jdk-7u67-linux-x64
二、安装
- 安装之前首先创建自己的用户:useradd paul
- 之后创建密码:passwd paul
- 然后用root用户在 /etc/sudoers中加入:paul ALL=(ALL) ALL
1、安装jdk
(1)、下载jdk,解压到相应目录。(2)、设置环境:
[paul@localhost hadoop]$ vim ~/.bashrc#set jdk environmet export JAVA_HOME=/home/paul/Modules/java/jdk export CLASSPATH=.:$JAVA_HOME/lib.tools.jar export PATH=$PATH:$JAVA_HOME/bin
加入如上设置,让配置文件立即生效:source ~/.bashrc
note that: 如果是jdk1.8,那么就如下配置。export JAVA_HOME=/home/paul/Modules/java export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_JRE/lib export PATH=$PATH:$JAVA_HOME/bin
(3)、检验
[paul@localhost hadoop]$ java -versionjava version "1.7.0_67"Java(TM) SE Runtime Environment (build 1.7.0_67-b01)Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)证明安装成功!
2、ssh无密码登录
hadoop是通过ssh服务连接各个节点,所以必须设置ssh免密码登录。(1)、修改ip地址映射(方便以后直接输入名字,免输入ip地址)
[paul@localhost ~]$ vim /etc/hosts192.168.1.106 master
(2)、输入命令:
[paul@localhost ~]$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
[paul@localhost ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
(3)、检验:
[paul@localhost ~]$ ssh masterLast login: Sun Aug 16 08:57:49 2015 from master证明免密码登录成功
3、安装hadoop
(1)、下载hadoop,解压到相应目录(2)、配置hadoop文件
进入hadoop的配置文件etc中配置如下文件:
core.site.xml<configuration> <property> <name>hadoop.tmp.dir</name> <value>/home/paul/Modules/tmp</value> </property> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> </property> </configuration>
注意更改相应的ip地址(master),我这里用的master对应的ip地址
hdfs.site.xml<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/paul/Modules/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/paul/Modules/local/hadoop/tmp/dfs/data</value> </property> </configuration>
注意配置自己的namenode 和datanode 目录
hadoop-env.sh加入java环境到hadoop.env.sh#set java environment export JAVA_HOME=/home/paul/Modules/java/jdk
slaves因为是伪分布式,slave就是自己的本身master
(3)配置环境
进入当前用户的环境:[paul@localhost hadoop]$ vim ~/.bashrc增加如下设置:#set hadoop environmetr export HADOOP_HOME=/home/paul/Modules/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
4、安装scala
因为spark是基于scala的,所以首先安装scala,类似安装jdk,很简单
(1)、下载scala,解压到相应目录
(2)、配置环境
[paul@localhost hadoop]$ vim ~/.bashrc
#set scala and spark environment export SPARK_HOME=/home/paul/Modules/spark export SCALA_HOME=/home/paul/Modules/scala export PATH=$PATH:$SPARK_HOME/bin:$SCALA_HOME/bin
配置立即生效:
[paul@localhost hadoop]$ source ~/.bashrc
(3)、验证:
[paul@localhost hadoop]$ scalaWelcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_67).Type in expressions to have them evaluated.Type :help for more information.
scala>则成功!
5、安装spark
(1)、下载spark,解压到相应目录(2)、配置spark文件
进入spark的conf,找到spark-env.sh,加入export SPARK_HOME=/home/paul/Modules/spark export SCALA_HOME=/home/paul/Modules/scala export JAVA_HOME=/home/paul/Modules/java/jdk export SPARK_MASTER=master export SPARK_LOCAL_IP=master export HADOOP_HOME=/home/paul/Modules/hadoop export SPARK_HOME=/home/paul/Modules/spark export SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib/native export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop export PATH=$PATH:$SCALA_HOME/bin:$SPARK_HOME/bin
(3)、配置.bashrc#set scala and spark environment export SPARK_HOME=/home/paul/Modules/spark export SCALA_HOME=/home/paul/Modules/scala export PATH=$PATH:$SPARK_HOME/bin:$SCALA_HOME/bin
(4)、环境立即生效
[paul@localhost conf]$ source ~/.bashrc
三、启动hadoop和spark
1、启动hadoop
进入 hadoop目录中的sbin目录下:
[paul@localhost conf]$ hadoop namenode -format[paul@localhost conf]$ start-all.sh[paul@localhost .ssh]$ jps6895 NameNode 8945 NodeManager 7187 ResourceManager 8539 DataNode 9069 Jps 8713 SecondaryNameNode
2、启动spark
进入spark的sbin目录[paul@localhost .ssh]$ cd ~/usr/spark/sbin/[paul@localhost sbin]$ ./start-all.sh[paul@localhost sbin]$ jps 9161 Master 6895 NameNode 8945 NodeManager 7187 ResourceManager 9476 Jps 8539 DataNode 9373 Worker 8713 SecondaryNameNode
存在worker 和 master证明安装成功!
四、安装过程中的异常
1、ssh无密码登录那一块可能不成功
系统自带的ssh版本太低造成的,重新安装即可。
2、/home/paul/usr/spark/sbin/spark-daemon.sh:行140: rsync: 未找到命令
系统自带的rsync(是类unix系统下的数据镜像备份工具)版本过低,重新安装最新的即可
3、15/08/31 07:32:33 WARN hdfs.DFSClient: DataStreamer Exception
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /data/data.txt._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1). There are 1 datanode(s) running and no node(s) are excluded in this operation.
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /data/data.txt._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1). There are 1 datanode(s) running and no node(s) are excluded in this operation.
是说没有找到可用的datanode节点,查看web页面下存在livenode,说明datanode已经启动,则说明是namenode和datanode没有连接好,datanode脱离namenode的管理
解决方案:
清除namenode下的临时文件(就是core-site.xml中的 hadoop.tmp.dir和hdfs-site.xml中的namenode和datanode对应的目录),重新格式化namenode,重启hadoop。
解决方案:
清除namenode下的临时文件(就是core-site.xml中的 hadoop.tmp.dir和hdfs-site.xml中的namenode和datanode对应的目录),重新格式化namenode,重启hadoop。