伪分布式配置hadoop2.6和spark1.4.1

来源:互联网 发布:不要和陌生人说话知乎 编辑:程序博客网 时间:2024/06/06 03:41

伪分布式安装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 environmetexport JAVA_HOME=/home/paul/Modules/java/jdkexport CLASSPATH=.:$JAVA_HOME/lib.tools.jarexport 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 -version
java 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/hosts
192.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 master
Last 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
#set java environmentexport JAVA_HOME=/home/paul/Modules/java/jdk
加入java环境到hadoop.env.sh

slaves
master
因为是伪分布式,slave就是自己的本身

(3)配置环境
进入当前用户的环境:
[paul@localhost hadoop]$ vim ~/.bashrc
增加如下设置:
#set hadoop environmetrexport 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 environmentexport SPARK_HOME=/home/paul/Modules/sparkexport SCALA_HOME=/home/paul/Modules/scalaexport PATH=$PATH:$SPARK_HOME/bin:$SCALA_HOME/bin

配置立即生效:

[paul@localhost hadoop]$ source ~/.bashrc

(3)、验证:
[paul@localhost hadoop]$ scala
Welcome 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/sparkexport SCALA_HOME=/home/paul/Modules/scalaexport JAVA_HOME=/home/paul/Modules/java/jdkexport SPARK_MASTER=masterexport SPARK_LOCAL_IP=masterexport HADOOP_HOME=/home/paul/Modules/hadoopexport SPARK_HOME=/home/paul/Modules/sparkexport SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib/nativeexport YARN_CONF_DIR=$HADOOP_HOME/etc/hadoopexport PATH=$PATH:$SCALA_HOME/bin:$SPARK_HOME/bin
(3)、配置.bashrc
     
#set scala and spark environmentexport SPARK_HOME=/home/paul/Modules/sparkexport SCALA_HOME=/home/paul/Modules/scalaexport 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]$ jps
6895 NameNode8945 NodeManager7187 ResourceManager8539 DataNode9069 Jps8713 SecondaryNameNode

2、启动spark

进入spark的sbin目录
[paul@localhost .ssh]$ cd ~/usr/spark/sbin/
[paul@localhost sbin]$ ./start-all.sh 
[paul@localhost sbin]$ jps9161 Master6895 NameNode8945 NodeManager7187 ResourceManager9476 Jps8539 DataNode9373 Worker8713 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.
是说没有找到可用的datanode节点,查看web页面下存在livenode,说明datanode已经启动,则说明是namenode和datanode没有连接好,datanode脱离namenode的管理
解决方案:
清除namenode下的临时文件(就是core-site.xml中的 hadoop.tmp.dir和hdfs-site.xml中的namenode和datanode对应的目录),重新格式化namenode,重启hadoop。


































0 0