Hadoop(三)

本文档详述了在Linux环境下日志生成脚本的创建、数据采集模块的xcall脚本的编写及执行,以及Hadoop的安装步骤。首先,展示了如何通过bash脚本生成日志,并使用xcall.sh进行远程命令执行。然后,详细介绍了Hadoop的安装过程,包括解压安装包、配置环境变量和分发到其他节点。最后,提到了环境变量的同步。整个过程对于理解Linux操作和Hadoop集群部署具有指导意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

日志生成脚本

数据采集模块

xcall脚本

Hadoop安装


日志生成脚本

bin目录里

[doudou@hadoop101 ~]$ cd bin/
[doudou@hadoop101 bin]$ ll
total 8
-rwxrwxrwx. 1 doudou root 161 Aug  6 23:19 lq.sh
-rwxrwxrwx. 1 doudou root 449 Aug  5 08:30 xsync
[doudou@hadoop101 bin]$ vim lq.sh

脚本里

#!/bin/bash
for i in 192.168.149.132 192.168.149.133
do
     ssh $i "cd /opt/module/applog; java -jar gmall2020-mock-log-2021-01-22.jar >/dev/null 2>&1 &"
done

数据采集模块

xcall脚本

[doudou@hadoop101 bin]$ vim xcall.sh
[doudou@hadoop101 bin]$ chmod 777 xcall.sh 
[doudou@hadoop101 bin]$ ll
total 12
-rwxrwxrwx. 1 doudou root 161 Aug  6 23:19 lq.sh
-rwxrwxrwx. 1 doudou root 129 Aug  7 06:47 xcall.sh
-rwxrwxrwx. 1 doudou root 449 Aug  5 08:30 xsync

脚本里

#! /bin/bash
for i in 192.168.149.129 192.168.149.132 192.168.149.133
do
   echo ---------- $i ---------
   ssh $i "$*"
done

执行

[doudou@hadoop101 bin]$ xcall.sh jps
---------- 192.168.149.129 ---------
3512 Jps
---------- 192.168.149.132 ---------
3528 Jps
---------- 192.168.149.133 ---------
3471 Jps

Hadoop安装

[doudou@hadoop101 ~]$ cd /opt
[doudou@hadoop101 opt]$ ll
total 0
drwxr-xr-x. 4 doudou doudou 40 Aug  6 07:47 module
drwxr-xr-x. 2 root   root    6 Oct 30  2018 rh
drwxr-xr-x. 2 doudou doudou 40 Aug  5 08:12 software
[doudou@hadoop101 opt]$ cd software/
[doudou@hadoop101 software]$ rz -E       

把对应的安装包拖到里面

[doudou@hadoop101 software]$ ll
total 740096
-rw-r--r--. 1 doudou root 224565455 Aug  7 07:03 bigtable.lzo
-rw-r--r--. 1 doudou root 338075860 Aug  7 07:08 hadoop-3.1.3.tar.gz
-rw-r--r--. 1 doudou root    193831 Aug  7 06:56 hadoop-lzo-0.4.20.jar
-rw-r--r--. 1 doudou root 195013152 Aug  5 08:08 jdk-8u212-linux-x64.tar.gz

 配置

[doudou@hadoop101 software]$ tar -zxvf hadoop-3.1.3.tar.gz  -C /opt/module/
[doudou@hadoop101 module]$ ll
total 0
drwxr-xr-x. 3 doudou root 117 Aug  7 06:36 applog
drwxr-xr-x. 9 doudou root 149 Sep 11  2019 hadoop-3.1.3
drwxr-xr-x. 7 doudou root 245 Apr  1  2019 jdk1.8.0_212

修改环境变量

[doudou@hadoop101 module]$ cd hadoop-3.1.3/
[doudou@hadoop101 hadoop-3.1.3]$ sudo vim /etc/profile.d/my_env.sh 
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

分发

[doudou@hadoop101 hadoop-3.1.3]$ source /etc/profile.d/my_env.sh 
[doudou@hadoop101 hadoop-3.1.3]$ cd ..
[doudou@hadoop101 module]$ ll
total 0
drwxr-xr-x. 3 doudou root 117 Aug  7 06:36 applog
drwxr-xr-x. 9 doudou root 149 Aug  7 07:20 hadoop-3.1.3
drwxr-xr-x. 7 doudou root 245 Apr  1  2019 jdk1.8.0_212
[doudou@hadoop101 module]$ xsync hadoop-3.1.3/

拷贝环境变量

[doudou@hadoop101 module]$ sudo /home/doudou/bin/xsync /etc/profile.d/my_env.sh 

### Hadoop 大核心组件解析 Hadoop 是一种开源的分布式计算框架,专为处理海量数据而设计。其生态系统由多个核心组件构成,其中最为关键的是 HDFS(Hadoop Distributed File System)、YARN(Yet Another Resource Negotiator)和 MapReduce[^1]。 #### ### 1. HDFS (Hadoop Distributed File System) HDFS 是 Hadoop 的分布式文件系统,专门用于存储海量数据。它具有高可靠性、高吞吐量的特点,能够满足大规模数据存储的需求。在 HDFS 中,数据被分割成固定大小的块(通常是 128 MB),并分布在集群中的各个节点上以实现冗余存储,从而提升数据可靠性和容错性[^4]。这种设计使得 HDFS 特别适合于批处理作业,并能有效管理 TB 级别的数据规模[^4]。 #### ### 2. YARN (Yet Another Resource Negotiator) YARN 是 Hadoop 的资源管理器,负责整个集群的资源管理和任务调度。作为一个通用的资源管理系统,它可以为上层应用提供统一的资源管理和调度服务[^3]。通过 YARN,不同类型的计算框架可以在同一 Hadoop 集群中共存,共享底层的 HDFS 数据,同时享受高效的资源分配机制[^3]。YARN 的引入极大地提升了集群的利用率、资源统一管理和数据共享能力[^3]。 #### ### 3. MapReduce MapReduce 是一个分布式的离线并行计算框架,专注于处理和分析海量数据。基于“分而治之”的思想,MapReduce 将大任务拆分为若干个小任务,在分布式环境中并行执行后再汇总结果[^4]。这一特性使 MapReduce 成为 Hadoop 生态系统中用于大数据批处理的核心工具之一[^4]。由于其强大的扩展能力和灵活性,MapReduce 广泛应用于需要高性能计算的大规模数据分析场景中。 以上个组件——HDFS、YARN 和 MapReduce 密切配合,构成了完整的 Hadoop 技术栈,共同实现了高效的大规模数据存储与计算功能。 --- ```python # Python 示例:连接 HDFS 文件系统的代码片段 from hdfs import InsecureClient client = InsecureClient('http://namenode_address:50070', user='hdfs_user') with client.read('/path/to/file') as reader: content = reader.read() print(content.decode()) # 输出读取的内容 ``` 此代码展示了如何利用 `hdfs` 库操作远程 HDFS 文件系统来读取指定路径下的文件内容。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值