本地虚拟机通过hadoop和spark搭建分布式环境

1.    VM

2.    VM 网卡配置

主机模式下修改静态IP

1.修改本地windows网卡配置

打开控制面板进入到网络和Internet 设置界面

点击进入网络和共享中心,点击更改适配器设置

 

当我们安装安装了vmpare软件后,会生成VMnet1和VMnet8俩个选项配置,这两个给虚拟机配置的。

我们采用主机模式的时候,需要修改VMnet1配置,点击右键属性进入,双击进入其中目录项Internet协议版本4(TCP/IPV4),

其中配置使用下面的IP地址,IP地址为192.168.150.2,会自动生成子网掩码,点击确定保存。

 

2.打开虚拟机做一下操作

vim/etc/sysconfig/network-scripts/ifcfg-eth0 进入修改模式

修改增加以下内容


ONBOOT=yes

BOOTPRPTO=none          之前是配置动态IP,改为配置静态IP

IPADDR=192.168.150.1

NETMAST=255.255.255.0

 

然后关闭防火墙

serviceiptables stop

serviceip6tables stop

serviceNetworkManager stop

保证在下次开机前防火墙仍然关闭

chkconfigiptables off

chconfigip6tables off

chconfigNetworkManager off

 

然后

getenforce  enforce增强linux安全机制,get获取

setenforce0   设置

 

servicenetwork restart   重启网卡配置

ifconfig 查看网卡信息之前配置已经生效

 

这时候就可以在windos通过xshell连接虚拟机了。

3.    修改主机名

vi /etc/sysconfig/network  编辑修改名称

vi /etc/hosts  增加三台机器的解析

192.168.130.180 hadoop01

192.168.130.181 hadoop02

192.168.130.182hadoop03

4.    配置机器内免ssh登录

       在mast上先执行

ssh-keygen -t rsa(回车)

执行完后再执行,copy到目标机器上,根据提示输出密码等。

ssh-copy-id 192.130.181

或者采用scp命令进行分发如下

scp~/.ssh/id_rsa.pub root@master:~/.ssh/id_rsa.pub.datanode01

scp~/.ssh/id_rsa.pub root@master:~/.ssh/id_rsa.pub.datanode01

在这之后需要scp命令对主机进行分发文件。

运行ssh命令严重无密码通信

ssh master

ssh datanode01

 sshdatanode02

5.    安装jdk

1)先检查当前系统是否安装了jdk,如果安装了jdk,是不是需要的版本,是否要卸载

查看安装的jdk

rpm -qa|grep jdk

可能看到类似如下的配置

java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64

java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

如果卸载然后执行

rpm -e –nodepsjava-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64

rpm -e –nodepsjava-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

或者rpm -ejava-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64    -e命令是移除

2)上传或者下载jdk包到/usr/local目录

tar -xzvf/tools/jdk-8u141-linux-x64.tar.gz  解压

配置环境变量编辑/etc/profile文件

vi /etc/profile  追加

exportJAVA_HOME=/usr/local/jdk1.8.0_141 

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib

/tools.jar  

export PATH=$PATH:$JAVA_HOME/bin

source . /etc/profile

source命令可以重新加载/etc/profile文件,使修改的内容在当前shell窗口中生效。

测试是否安装成功,如果出来信息则安装成功

Java -version

6.    安装Hadoop yarn环境

6.1  准备工作

官网下载 hadoop2.6.0 版本。本次部署采用2.6.0版本。

mkdir tools

上传hadoop到这个目录

mkdir -p /opt/server

cd /opt/server

tar -zxvf /tools/hadoop-2.6.0.tar.gz

mv hadoop-2.6.0 hadoop  改名一下

6.2  配置修改hadoop相关配置文件。

cd到hadoop目录,进入到/hadoop/etc/hadoop 配置目录, 需要配置有以下7个文件:hadoop-env.sh,yarn-env.sh,slaves,core-site.xml,hdfs-site.xml,maprd-site.xml,yarn-site.xml

1)    在hadoop-env.sh中配置JAVA_HOME

# The java implementation to use.

exportJAVA_HOME=/usr/local/jdk

2)    在yarn-env.sh中配置JAVA_HOME

# The java implementation to use.

exportJAVA_HOME=/usr/local/jdk

3)    在slaves中配置slave节点的ip或者host

datanode01

datanode02

4)    修改core-site.xml



    

        fs.defaultFS

        hdfs://master:9000/

    

    

         hadoop.tmp.dir

         file:/opt/server/hadoop/tmp

    



5)    修改hdfs-site.xml



   

       dfs.namenode.secondary.http-address

       master:9001

   

   

       dfs.namenode.name.dir

       file: /opt/server/hadoop/dfs /name

   

   

       dfs.datanode.data.dir

       file:/opt/server/hadoop/dfs/data

   

   

       dfs.replication

       3

   



6)    修改mapred-site.xml



   

       mapreduce.framework.name

       yarn

   



7)    修改yarn-site.xml



   

       yarn.nodemanager.aux-services

       mapreduce_shuffle

   

   

       yarn.nodemanager.aux-services.mapreduce.shuffle.class

       org.apache.hadoop.mapred.ShuffleHandler

   

   

       yarn.resourcemanager.address

       master:8032

   

   

       yarn.resourcemanager.scheduler.address

       master:8030

   

   

       yarn.resourcemanager.resource-tracker.address

       master:8035

   

   

       yarn.resourcemanager.admin.address

       master:8033

   

   

       yarn.resourcemanager.webapp.address

       master:8088

   



8)    将配置好的hadoop分发给所有的datanode节点

scp -r /opt/server/hadoop root@datanode01:/opt/server/

scp -r /opt/server/hadoop root@datanode02:/opt/server/

以上配置完成后,就可以启动hadoop了

 在master上执行以下操作。

启动Hadoop

cd /opt/server/hadoop                      #进入hadoop目录

bin/hadoop namenode -format    #格式化namenode

sbin/start-dfs.sh                      #启动dfs

sbin/start-yarn.sh                     #启动yarn

验证Hadoop 是否安装成功

可以通过jps命令查看各个节点启动的进程是否正常。在 master上应该有以下几个进程:

$ jps #run on master

3407 SecondaryNameNode

3218 NameNode

3552 ResourceManager

3910 Jps

在每个datanode上应该有以下几个进程:

$ jps  #run on slaves

2072 NodeManager

2213 Jps

1962 DataNode

在浏览器中输入 http://master:8088 ,应该有 hadoop 的管理界面出来了,并能看到datanode01 和 datanode02 节点。

如下图

本地虚拟机通过hadoop和spark搭建分布式环境_第1张图片

1.    sprak环境安装配置

上传spark-1.6.3-bin-hadoop2.6.tgz到tools目录

在opt/server目录下解压tar包

tar -zxvf spark-1.6.3-bin-hadoop2.6.tgz

mv spark-1.6.3-bin-hadoop2.6 sprk  #改下名称

 

配置Spark

cd ~/workspace/spark/conf   #进入spark配置目录

cp spark-env.sh.template spark-env.sh   #从配置模板复制

vi spark-env.sh     #添加配置内容

spark-env.sh末尾添加以下内容(这是我的配置,你可以自行修改):

export SCALA_HOME= ..

export JAVA_HOME=..

export HADOOP_HOME= ..

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

SPARK_MASTER_IP=master

SPARK_LOCAL_DIRS=/opt/server/spark

SPARK_DRIVER_MEMORY=1G

注:在设置Worker进程的CPU个数和内存大小,要注意机器的实际硬件条件,如果配置的超过当前Worker节点的硬件条件,Worker进程会启动失败。

cp slaves.template slaves

其中配置下

 

datanode01

datanode02

配置好的sprk进行分发到节点

scp -r/opt/server/spark/ root@datanode01:/opt/server/

scp -r/opt/server/spark/ root@datanode02:/opt/server/

启动spark

sbin/start-all.sh

验证spark是否安装成功

jps检查,在 master上应该有以下几个进程:

$ jps

7949 Jps

7328 SecondaryNameNode

7805 Master

7137 NameNode

7475 ResourceManager

slave上应该有以下几个进程:

$jps

3132 DataNode

3759 Worker

3858 Jps

3231 NodeManager

进入SparkWeb管理页面: http://master:8080

如下

6.运行案例

 

运行spark下的example案例

./bin/spark-submit--class org.apache.spark.examples.SparkPi --master yarn-cluster -

-executor-memory1G --num-executors 1 ./lib/spark-examples-1.6.3-hadoop2.6.0.jar 100

案例:

http://blog.csdn.net/hzdxw/article/details/51816494

http://blog.csdn.net/leishenop/article/details/52843899

http://blog.csdn.net/fansy1990/article/details/51356583

注意 Spark on YARN 支持两种运行模式,分别为yarn-clusteryarn-client,具体的区别可以看这篇博文,从广义上讲,yarn-cluster适用于生产环境;而yarn-client适用于交互和调试,也就是希望快速地看到application的输出。



你可能感兴趣的:(大数据)