IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 虚拟机搭建hadoop集群步骤 -> 正文阅读

[大数据]虚拟机搭建hadoop集群步骤

内存4G,硬盘50G

  1. 安装好linux
    /boot 200M
    /swap 2g
    / 剩余

  2. *安装VMTools

  3. 关闭防火墙
    sudo service iptables stop
    sudo chkconfig iptables off

  4. 设置静态IP,改主机名
    编辑vim /etc/sysconfig/network-scripts/ifcfg-eth0
    改成
    =================================
    DEVICE=eth0
    TYPE=Ethernet
    ONBOOT=yes
    BOOTPROTO=static
    NAME=“eth0”
    IPADDR=192.168.5.101
    PREFIX=24
    GATEWAY=192.168.5.2
    DNS1=192.168.5.2
    =================================
    编辑vim /etc/sysconfig/network
    改HOSTNAME=那一行

  5. 配置/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
    192.168.1.106 hadoop106
    192.168.1.107 hadoop107
    192.168.1.108 hadoop108
    192.168.1.109 hadoop109
    =============================

  6. 创建一个一般用户atguigu,给他配置密码
    useradd atguigu
    passwd atguigu

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

  8. *在/opt目录下创建两个文件夹module和software,并把所有权赋给atguigu
    mkdir /opt/module /opt/software
    chown atguigu:atguigu /opt/module /opt/software

  9. 关机,快照,克隆

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

  1. 克隆的虚拟机改IP

  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=103; host<105; 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 hadoop103
    exit
    ssh hadoop104
    exit
    
    4. 把/home/atguigu/.ssh 文件夹发送到集群所有服务器
    xsync /home/atguigu/.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>
    
  2. 配置hdfs-site.xml


    dfs.replication
    3



    dfs.namenode.secondary.http-address
    hadoop104:50090

  3. 配置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>
    
  4. 配置mapred-site.xml

    mapreduce.framework.name
    yarn

    mapreduce.jobhistory.address hadoop104:10020 mapreduce.jobhistory.webapp.address hadoop104:19888

    启动历史服务器:mr-jobhistory-daemon.sh start historyserver

  5. 配置Slaves
    hadoop102
    hadoop103
    hadoop104

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

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

  8. 启动hdfs
    start-dfs.sh

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

24
mkdir input
vim input/input
abc
def efg
asd

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

此处可能出现一个问题:启动Hadoop时,DataNode启动后一会儿自动消失
原因:因为datanode的clusterID 和 namenode的clusterID 不匹配,出现该问题的原因:在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变。

解决办法: 1.打开hdfs-site.xml里配置的datanode和namenode对应的目录,分别打开current文件夹里的VERSION,可以看到clusterID项正如日志里记录的一样,确实不一致,修改datanode里VERSION文件的clusterID 与namenode里的一致,再重新启动dfs(执行start-dfs.sh)再执行jps命令可以看到datanode已正常启动。
2. 可能是因为重新格式化集群,但是以前的数据没有清理干净。重新格式化方式如下:
注意:重新格式化HDFS要将hdfs-site.xml中dfs.namenode.name.dir和dfs.datanode.data.dir所指定目录下的内容删除;core-site.xml中hadoop.tmp.dir目录中的内容删除。
然后重新启动hadoop集群,执行hadoop namenode -format

25 关 stop-dfs.sh stop-yarn.sh

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

注意: 如果集群出了问题
stop-dfs.sh
stop-yarn.sh
cd $HADOOP_HOME
rm -rf data logs
回到21步骤

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-16 13:08:20  更:2022-01-16 13:09:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/2 8:23:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码