本地虚拟机集群搭建数据仓库实战


本文参考 尚硅谷的视频配置,组件较多,可根据需要酌情配置

一. 环境准备

  1. 内存4G,硬盘50G (根据自己的电脑配置酌情决定,内存最好4G起步)
  2. 安装好linux
    /boot 200M
    /swap 2g
    / 剩余
  3. *安装VMTools
  4. 关闭防火墙
 sudo service iptables stop
 sudo chkconfig iptables off
  1. 设置静态IP,改主机名
    编辑vim /etc/sysconfig/network-scripts/ifcfg-eth0,这里以192.168.1.101 这个ip为例,具体的ip要看自己电脑网络
    改成
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
NAME="eth0"
IPADDR=192.168.1.101
PREFIX=24
GATEWAY=192.168.1.2
DNS1=192.168.1.2
编辑vim /etc/sysconfig/network
改HOSTNAME=那一行
  1. 配置/etc/hosts
    vim /etc/hosts
192.168.1.100   hadoop100
192.168.1.101   hadoop101
192.168.1.102   hadoop102
192.168.1.103   hadoop103
192.168.1.104   hadoop104
192.168.1.105   hadoop105
  1. 创建一个一般用户xxx (自己指定),给他配置密码
    useradd xxx
    passwd xxx

  2. 配置这个用户为sudoers
    vim /etc/sudoers
    在root ALL=(ALL) ALL
    添加xxx ALL=(ALL) NOPASSWD:ALL
    保存时wq!强制保存

  3. *在/opt目录下创建两个文件夹module和software,并把所有权赋给刚刚创建的xxx(自己指定用户)
    mkdir /opt/module /opt/software
    chown xxx:xxx /opt/module /opt/software

  4. 关机,快照,克隆(根据自己需要,至少克隆三台以上虚拟机)

从这里开始要以一般用户xxx登陆

  1. 克隆的虚拟机改IP,参见上面第4,5条

  2. 搞一个分发脚本
    cd ~
    vim xsync
    内容如下:

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((host=102; host<104; host++)); do
        echo ------------------- hadoop$host --------------
        rsync -av $pdir/$fname $user@hadoop$host:$pdir
done
chmod +x xsync

sudo cp xsync /bin

sudo xsync /bin/xsync
  1. 配置免密登陆

    1. 生成密钥对
    ssh-keygen -t rsa 三次回车
    
    2. 发送公钥到本机
    ssh-copy-id hadoop102 输入一次密码
    
    3. 分别ssh登陆一下所有虚拟机
    ssh hadoop102
    exit
    ssh hadoop103
    exit
    ssh hadoop104
    exit
    
    4. 把/home/xxx/.ssh 文件夹发送到集群所有服务器
    xsync /home/xxx/.ssh
    
  2. 在一台机器上安装Java和Hadoop,并配置环境变量,并分发到集群其他机器
    1. 拷贝文件到/opt/software,两个tar包
    2. tar -zxf h"+tab" -C /opt/module
    3. tar -zxf j"+tab" -C /opt/module
    4. sudo vim /etc/profile
    在文件末尾添加

 #JAVA_HOME
        export JAVA_HOME=/opt/module/jdk1.8.0_144
        export PATH=$PATH:$JAVA_HOME/bin

        #HADOOP_HOME
        export HADOOP_HOME=/opt/module/hadoop-2.7.2
        export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    保存
    5. source /etc/profile
    
    6. sudo xsync /etc/profile
    
    7. 在其他机器分别执行source /etc/profile

###所有配置文件都在$HADOOP_HOME/etc/hadoop
14. 首先配置hadoop-env.sh, yarn-env.sh, mapred-env.sh文件,配置JAVA_HOME
在每个文件第二行添加 export JAVA_HOME=/opt/module/jdk1.8.0_144

  1. 配置Core-site.xml
  <!-- 指定HDFS中NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop102:9000</value>
    </property>

    <!-- 指定Hadoop运行时产生文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-2.7.2/data/tmp</value>
    </property>
  1. 配置hdfs-site.xml
  <!-- 数据的副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!-- 指定Hadoop辅助名称节点主机配置 -->
    <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>hadoop104:50090</value>
    </property>
  1. 配置yarn-site.xml
<!-- Site specific YARN configuration properties -->
<!-- Reducer获取数据的方式 -->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop103</value>
</property>
<!-- 日志聚集功能使能 -->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>

<!-- 日志保留时间设置7天 -->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>
  1. 配置mapred-site.xml
  <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- 历史服务器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop104:10020</value>
    </property>
    <!-- 历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop104:19888</value>
    </property>
启动历史服务器:mr-jobhistory-daemon.sh start historyserver
  1. 配置Slaves
    hadoop102
    hadoop103
    hadoop104

  2. 分发配置文件
    xsync /opt/module/hadoop-2.7.2/etc

  3. 格式化Namenode 在hadoop102
    hdfs namenode -format

  4. 启动hdfs
    start-dfs.sh

  5. 在配置了Resourcemanager机器上执行
    在Hadoop103上启动start-yarn.sh

  6. mkdir input
    vim input/input
    hadoop fs -put input /
    hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output

  7. 关 集群
    stop-dfs.sh
    stop-yarn.sh

  8. hadoop-daemon.sh start namenode或datanode
    yarn-daemon.sh start resourcemanager或nodemanager

    如果集群出了问题
    cd $HADOOP_HOME
    rm -rf data logs
    回到21

二. JDK安装

JDK 是 Java 的开发工具箱,是整个 Java 的核心,包括 Java 运行环境、Java 工具和 Java基础类库,JDK 是学习大数据技术的基础。即将搭建的 Hadoop 分布式集群的安装程序就是用 Java 开发的,所有 Hadoop 分布式集群想要正常运行,必须安装 JDK。

(1)在 3 台虚拟机上分别卸载现有的 JDK。

① 检查计算机中是否已安装 Java 软件。

[xxx@hadoop102 opt]$ rpm -qa | grep java

② 如果安装的版本低于 1.7,则卸载该 JDK。

[xxx@hadoop102 opt]$ sudo rpm -e 软件包

(2)将 JDK 导入 opt 目录下的 software 文件夹中。

① 在 Linux 下的 opt 目录中查看软件包是否导入成功。

[xxx@hadoop102 opt]$ cd software/
[xxx@hadoop102 software]$ ls
hadoop-2.7.2.tar.gz
jdk-8u144-linux-x64.tar.gz

 ② 解压 JDK 到/opt/module 目录下,tar 命令用来解压.tar 或者.tar.gz 格式的压缩包,通过-z 选项指定解压.tar.gz 格式的压缩包。-f 选项用于指定解压文件,-x 选项用于指定解包操作,-v 选项用于显示解压过程,-C 选项用于指定解压路径。

[xxx@hadoop102 software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/
module/

(3)配置 JDK 环境变量,方便使用到 JDK 的程序调用 JDK。

① 先获取 JDK 路径。

[xxx@hadoop102 jdk1.8.0_144]$ pwd
/opt/module/jdk1.8.0_144

② 打开/etc/profile 文件,需要注意的是,/etc/profile 文件属于 root 用户,需要使用 sudo vim 命令才可以对它进行编辑。

[xxx@hadoop102 software]$ sudo vim /etc/profile
在 profile 文件末尾添加 JDK 路径,添加的内容如下。

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin 

保存后退出。
:wq

③ 修改/etc/profile 文件后,需要执行 source 命令使修改后的文件生效。

[xxx@hadoop102 jdk1.8.0_144]$ source /etc/profile

(4)通过执行 java -version 命令,测试 JDK 是否安装成功。

[xxx@hadoop102 jdk1.8.0_144]# java -version
java version “1.8.0_144” 重启(如果 java -version 命令可以用,则不用重启)。

[xxx@hadoop102 jdk1.8.0_144]$ sync

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值