Mapreduce,Hive,Spark平台搭建

本文详细介绍了在Ubuntu环境下,如何搭建Mapreduce、Hive和Spark平台。通过配置Hadoop环境,包括Java和Hadoop的安装,实现节点间的SSH无密码登录。接着部署Hive数据仓库,包括安装MySQL、配置Hive-site.xml以及测试Hive。最后,讲解了Spark的配置和测试,包括在YARN上部署Spark以及运行Spark实例。
摘要由CSDN通过智能技术生成

Mapreduce,Hive,Spark平台搭建

欢迎光临我的github page

说明

平台搭建成功后,使用Scala语言进行算法设计和应用的开发。文末有使用scala设计的Item-Based Collaboration Filtering和SlopeOne 两个协同过滤算法

一、搭建准备

VMWare Workstation

Ubuntu 14.04 Server.iso

Xshell——远程连接主机终端

Server 版安装配置
新建三台虚拟机,安装时选择OpenSHH Server预安装环境

一台作为master

另两台作为slave,命名为slave1和slave2

master的配置比slave要稍微高一些

IP 设置
VMnet8是VM配置的虚拟网卡

设置VMnet8,选择「NAT 模式」

设置子网IP (192.168.142.0)和子网掩码(255.255.255.0)

Ubuntu 系统的登录和 IP 的固化

输入 ifconfig 回车查询当前的 ip 地址,准备将其长期绑定到当前虚拟机,为了方便后续实验。

master的ip:192.168.142.128

slave1的ip:192.168.142.130

slave2的ip:192.168.142.132

此时的 IP 地址是由 DHCP 服务器动态分配的,为了让这个 IP 地址能一直与这台
虚拟机绑定,我们需要改变系统启动时获取 IP 的方式,从 DHCP 切换到静态 IP
地址,为此需要编辑 Linux 的网卡配置文件(/etc/network/interfaces),输入命令

sudo vi /etc/network/interfaces

回车,可以看到 eth0 的 IP 获取方式是 dhcp:

此时需要修改 ip 的获取方式从 DHCP 到 static,设置静态的 ip 地址、子网掩码和
默认网关。

把这个文件更改为:

#This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.142.128
gateway 192.168.142.2
netmask 255.255.255.0

为了进一步固化 DNS 服务器 IP,输入

sudo vi /etc/resolvconf/resolv.conf.d/bas

将里面的内容替换成nameserver 192.168.142.2,vi 保存

系统的登录和 IP 的固化重启后完成

使用Xshell连接三个虚拟机终端

Xshell.png

下载lrzsz工具
用于虚拟机与宿主机之间文件的上传和下载

sudo apt-get update

sudo apt-get install lrzsz

rz命令,从宿主机传文件至虚拟机

sz命令,从虚拟机获取文件至宿主机

二、Hadoop 及相关环境的安装

开源分布式平台 Hadoop 可以聚合多个计算机形成集群,在各个节点上安装配置完Hadoop后可以直接提交分布式代码到集群计算。本次实验可以在个人电脑上用VMware完成,或使用天河二号上的 OpenStack平台创建内存为2G的虚拟机资源完成。

安装包准备

Hadoop环境——hadoop-2.6.0.tar.gz

Java环境——jdk-8u60-linux-x64.tar.gz

虚拟机ip配置测试

sudo vi /etc/hosts #编辑 /etc/hosts 文件,插入角色与 IP 映射

ping master -c 4 #尝试用角色名 ping 其它主机,一次 4 个包

hosts文件修改为:

127.0.0.1       localhost

192.168.142.128 master
192.168.142.130 slave1
192.168.142.132 slave2

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

三个虚拟机能够使用主机名(不是ip)ping通即配置正确

配置 SSH 无密码登录
保障了 Hadoop 可以通过角色名在局域网里找到各个节点,为了让 Hadoop 可以进
一步读取、操作各个节点,需要赋予其登录的权限,意即让 Hadoop 拥有各个节点的普通用户账
号,从而在需要操作各个节点时直接用对应的账号登录获取操作权限。SSH 协议可以为节点上的
账户创建唯一的公私钥,然后利用这些公私钥实现无密码登录,从而让 Hadoop 直接绕开传统的
账号密码登录过程,直接用公私钥访问节点。

生成各个节点的 SSH 公私钥:

cd ~/.ssh # 如果没有该目录,先执行一次 ssh localhost
rm ./id_rsa* # 删除之前生成的公匙(如果有)
ssh-keygen -t rsa # 一直按回车就可以

为了让每个节点都拥有其它节点的公钥,要先把所有公钥放进一个文件里

  1. 在 master 上,将 master 的公钥复制到 authorized_keys 文件里:
cat ./id_rsa.pub >> ./authorized_keys # cat 命令用于提取内容,>>输出重定向
  1. 将 slave1、slave2 的公钥文件发送给 master,此时的传送要输入密码:
scp ~/.ssh/id_rsa.pub hadoop@master:/home/hadoop/
  1. Master 将接收到的 slave1 的公钥文件里的内容提取追加到 authorized_keys 文
    件里:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
  1. 将 slave2 的公钥内容也放进 authorized_keys 文件,然后将
    authorized_keys 文件分别发送到两个 slave 的~/.ssh/下:
scp ~/.ssh/authorized_keys hadoop@slave1:/home/hadoop/.ssh/

搭建成功表现:每个节点尝试使用 ssh <角色名>的命令直接登录其它节点,直到每个节点都可以
成功免密码登录其它节点,则免密码登录配置成功! 如在 master 上输入:ssh slave1即可直接登陆slave1的虚拟机,不需要再输入密码登陆,便于后续实验操作。

配置 Java环境和Hadoop环境

安装包准备:
jdk-8u60-linux-x64.tar

hadoop-2.6.0.tar.gz

  1. 安装 JDK
    将上传的 JDK 压缩包(jdk-8u60-linux-x64.tar)放到根目录/home/hadoop/,解
    压并放到指定的文件夹:
sudo mkdir -p /usr/local/jvm
tar -zxvf jdk-8u60-linux-x64.tar.gz -C /usr/local/jvm
  1. 安装 Hadoop

在各个节点上将 hadoop 解压到/usr/local/目录下,改变其所属用户和所属组(让
hadoop 软件用 hadoop 账号登录时对 hadoop 文件夹拥有最高权限):

tar -zxvf hadoop-2.6.0.tar.gz -C /usr/local/
sudo mv /usr/loca/hadoop-2.6.0 /usr/local/hadoop #mv 实现重命名
sudo chown -R hadoop:hadoop /usr/local/hadoop

将当前的 PATH 环境变量提取保存到 P.sh

环境变量如下:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/jvm/jdk1.8.0_60/bin:/usr/local/jvm/jdk1.8.0_60/bin:/usr/local/hadoop/bin:/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/jvm/jdk1.8.0_60/bin:/usr/local/hive/bin

export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
export JAVA_HOME=/usr/local/jvm/jdk1.8.0_60
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export PATH=$PATH:${JAVA_HOME}/bin:$HADOOP_HOME/bin:$HADOOP/sbin:$PATH:${HIVE_HOME}/bin

之后每次重启系统都需要重定向环境变量

echo $PATH >> ~/setenv.sh
vi ~/P.sh

使环境变量生效:

source ~/setenv.sh

查看java版本信息,如果出现版本信息则环境配置成功

java -version
javac -version

重点:hadoop节点配置

修改 slaves 文件,让 hadoop 知道自己可以聚合的节点名(保证与 hosts 里的角色
名一致)

vi /usr/local/hadoop/etc/hadoop/slaves
master
slave1
slave2

修改 core-site.xml 文件如下:
配置端口和路径

vi /usr/local/hadoop/etc/hadoop/core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->

<configuration>
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值