您的位置:首页 > 运维架构

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

2018-01-17 16:13 417 查看
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

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000/</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/opt/server/hadoop/tmp</value>

</property>

</configuration>

5)    修改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: /opt/server/hadoop/dfs /name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/opt/server/hadoop/dfs/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

</configuration>


6) 修改mapred-site.xml

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>


7) 修改yarn-site.xml

<configuration>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

<property>

<name>yarn.resourcemanager.address</name>

<value>master:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>master:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>master:8035</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>master:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>master:8088</value>

</property>

</configuration>


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 节点。

如下图



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
进入Spark的Web管理页面: 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-cluster
yarn-client
,具体的区别可以看这篇博文,从广义上讲,yarn-cluster适用于生产环境;而yarn-client适用于交互和调试,也就是希望快速地看到application的输出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: