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(环境搭建)

1 虚拟机环境准备

1.1准备三台虚拟机,虚拟机配置要求如下:

(1)单台虚拟机:内存4G,硬盘50G,安装必要环境

sudo?yum install -y epel-release

sudo yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree?iotop git

1.2修改克隆虚拟机的静态IP?

sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

?TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="1a4829c2-b5f3-4e62-9801-c3d89011479f"
DEVICE="ens33"
ONBOOT="yes"
NAME="ens33"
IPADDR=192.168.1.101
PREFIX=24
GATEWAY=192.168.1.2
DNS1=192.168.1.2

2.修改主机名

2.1修改主机名称

sudo hostnamectl --static set-hostname hadoop101

2.2配置主机名称映射,打开/etc/hosts?

sudo vim /etc/hosts

127.0.0.1 ? localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 ? ? ? ? localhost localhost.localdomain localhost6 localhost6.localdomain6
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

~ ? ? ? ? ? ? ? ? ? ? ? ???

3.修改window10的主机映射文件(hosts文件)

3.1进入C:\Windows\System32\drivers\etc路径

3.2拷贝hosts文件到桌面

3.3打开桌面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

4.关闭防火墙

sudo systemctl stop firewalld

sudo systemctl disable firewalld

5.创建atguigu用户?

sudo useradd atguigu

sudo passwd atguigu

6.重启虚拟机?

reboot

7.配置atguigu用户具有root权限?

修改/etc/sudoers文件,找到下面一行(91行),在root下面添加一行(set nu可以显示行号)

visudo

?7.2克隆两台虚拟机

8.在/opt目录下创建文件夹?

8.1在/opt目录下创建module、software文件夹?

sudo mkdir module

sudo mkdir software

8.2修改module、software文件夹的所有者atguigu

sudo mkdir /opt/module /opt/software

sudo chown atguigu:atguigu /opt/module /opt/software

9.安装JDK?和Hadoop

9.1卸载现有JDK

rpm -qa | grep -i java | xargs -n1 sudo?rpm -e --nodeps

9.2将JDK和Hadoop拷贝在/opt/software

9.3解压JDK和Hadoop到/opt/module目录下

tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/

?tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

9.4配置环境变量?

新建/etc/profile.d/my_env.sh文件

sudo vim /etc/profile.d/my_env.sh

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
~ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

10?编写集群分发脚本xsync

1)需求:循环复制文件到所有节点的相同目录下

(2)需求分析:

(a)rsync命令原始拷贝:

rsync ?-av ????/opt/module ? ?root@hadoop103:/opt/

(b)期望脚本:

xsync要同步的文件名称

(c)说明:在/home/atguigu/bin这个目录下存放的脚本,atguigu用户可以在系统任何地方直接执行。

(3)脚本实现

(a)在/home/atguigu目录下创建xsync文件

cd /home/atguigu

vim xsync

在该文件中编写如下代码

#!/bin/bash

#1. 判断参数个数

if [ $# -lt 1 ]

then

??echo Not Enough Arguement!

??exit;

fi

#2. 遍历集群所有机器

for host in hadoop102 hadoop103 hadoop104

do

??echo ==================== ?$host ?====================

??#3. 遍历所有目录,挨个发送

??for file in $@

??do

????#4 判断文件是否存在

????if [ -e $file ]

????then

??????#5. 获取父目录

??????pdir=$(cd -P $(dirname $file); pwd)

??????#6. 获取当前文件的名称

??????fname=$(basename $file)

??????ssh $host "mkdir -p $pdir"

??????rsync -av $pdir/$fname $host:$pdir

????else

??????echo $file does not exists!

????fi

??done

done

(b)修改脚本 xsync 具有执行权限

chmod +x?xsync?

(c)将脚本移动到/bin中,以便全局调用

sudo mv xsync /bin/?

d)测试脚本

sudo xsync /bin/xsync?

11.SSH免密登录配置

11.1免密登录原理

1.生成公钥和私钥:

注意

还需要在hadoop102采用root账号,配置一下无密登录到hadoop102hadoop103hadoop104

还需要在hadoop103采用atguigu账号配置一下无密登录到hadoop102hadoop103、hadoop104服务器上。

ssh-keygen -t rsa

?然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

1.2将公钥拷贝到要免密登录的目标机器上

ssh-copy-id hadoop102

ssh-copy-id hadoop103

ssh-copy-id hadoop104

1.3 .ssh文件夹下(~/.ssh)的文件功能解释

known_hosts

记录ssh访问过计算机的公钥(public key)

id_rsa

生成的私钥

id_rsa.pub

生成的公钥

authorized_keys

存放授权过的无密登录服务器公钥

1.4将.ssh文件发送到另外两台虚拟机?

xsync .ssh

?12.?集群配置

1. 集群部署规划

注意:NameNode和SecondaryNameNode不要安装在同一台服务器

注意:ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。

hadoop102

hadoop103

hadoop104

HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARN

NodeManager

ResourceManager

NodeManager

NodeManager

2. 配置集群

进入hadoop配置文件

cd /opt/module/hadoop-3.1.3/etc/hadoop

核心配置文件

配置core-site.xml

cd $HADOOP_HOME/etc/hadoop

vim?core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop101:8020</value>
    </property>
    <property>
        <name>hadoop.data.dir</name>
        <value>/opt/module/hadoop-3.1.3/data</value>
    </property>
    <property>
        <name>hadoop.proxyuser.atguigu.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.atguigu.groups</name>
        <value>*</value>
    </property>
</configuration>

HDFS配置文件

vim?hdfs-site.xml?

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file://${hadoop.data.dir}/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file://${hadoop.data.dir}/data</value>
  </property>
    <property>
    <name>dfs.namenode.checkpoint.dir</name>
    <value>file://${hadoop.data.dir}/namesecondary</value>
  </property>
    <property>
    <name>dfs.client.datanode-restart.timeout</name>
    <value>30</value>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop103:9868</value>
  </property>
</configuration>

?

YARN配置文件?

vim?yarn-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop102</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

MapReduce配置文件?

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

?workers配置

vim workers

?将配置好的文件发送到所有集群?

xsync hadoop

?13.启动集群

启动前需要初始化一下

hdfs namenode -format

在hadoop101启动hdfs

start-dfs.sh?

?在hadoop102启动yarn

start-yarn.sh

查看启动的程序

14. 配置日志的聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。

日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。

注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager

14.1配置yarn-site.xml

?vim yarn-site.xml

 <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>  
        <name>yarn.log.server.url</name>  
        <value>http://hadoop102:19888/jobhistory/logs</value>  
    </property>
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
</property>

15.配置历史服务器

为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:

vi mapred-site.xml

<!-- 历史服务器端地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop102:10020</value>
</property>

<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop102:19888</value>
</property>

?分发配置

xsync hadoop

在hadoop102启动历史服务器?

mapred –daemon start?historyserver

16.创建一个脚本方便查看各个虚拟机启动的进程

vim jpsall.sh

?#!/bin/bash

for i in hadoop101 hadoop102 hadoop103

do

? ? ? ? echo "====? ? $i? ? ===="

? ? ? ? ssh $i? "jps" | grep -v Jps

done

?添加用户执行权限

chmod +x jpall.sh

?将文件移动到/bin/目录下方便执行

sudo mv jpasll.sh /bin

?执行命令jpsall.sh查看是否正确

17.集群时间同步?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-03 01:16:27  更:2022-02-03 01:17:14 
 
开发: 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/24 13:19:52-

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