Hadoop简介、安装与环境变量配置

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: Hadoop简介、安装与环境变量配置

Hadoop简介

Hadoop是由Apache基金会开源的具有可靠、可扩展、分布式计算的大数据框架。Hadoop可以简单的从单个服务器扩展到数千台机器,提供分布式的计算和存储服务。Hadoop通过检测和处理应用程序层的故障来为服务器集群提供高可用性服务。

Java环境安装

Hadoop作为大数据框架,更多的是作为集群面向服务器使用,所以本系列的内容以Linux服务器为主。为更好的学习使用Hadoop,在低成本的条件下,推荐可以通过docker、podman之类的容器手段启动容器开启集群的方式来更好的学习Hadoop(有条件的可以选择虚拟机或上云)。

Hadoop是一个用Java语言开发的大数据框架,Hadoop的使用依赖于Jre,所以在正式安装配置Hadoop前,我们需要先安装配置好Java环境。
目前最新版的Hadoop官方文档显示,Hadoop支持Java8和Java11(运行时)。为了更好的兼容Hadoop的使用,本系统采用OpenJDK SE 8版本。

OpenJDK SE 8下载

wget https://download.java.net/openjdk/jdk8u43/ri/openjdk-8u43-linux-x64.tar.gz

解压到指定目录

大数据的学习和使用都是集群化的,为更好的进行集群设置,请尽量保证相同的操作系统和应用层配置。如,将软件和配置文件写在指定路径下,不要随意修改。

mkdir -p ${Software}/jdk
tar -xzvf openjdk-8u43-linux-x64.tar.gz --strip-components 1 -C ${Software}/jdk
  • 直接解压会生成父目录,Java的版本不同会造成父目录的不同,所以在此处使用指定路径的方式,方便后期更好的升级环境
  • 在这里和之后中通过${}表明根据自己的环境自定义值
  • 指定路径解压前,通过mkdir -p命令确保指定路径存在
  • --strip-components Number:解压时清除Number个引导目录,一般情况下,Number为1表示不包含打包前原目录
  • -C:指定解压路径

Java安装与环境变量配置

Linux的环境变量设置一般为在相应的文件中添加环境变量信息。根据使用权限的不同,可以配置不同的环境变量。

  • 当前用户环境变量:~/.bash_profile
    • ~:当前用户的工作路径
  • 全局环境变量:/etc/profile

在这里我们以全局环境变量为例,配置Java环境变量。Java环境变量主要为配置JAVA_HOMEPATH。Java环境变量可以通过如vim手动打开写入方式,也可通过标准流输出追加文件内容方式写入,为更好的方便后期集群中环境脚本的开发,这里采用标准流输出追加文件内容方式配置环境变量。

echo "# >>> jdk initialize >>>" >> /etc/profile
echo "export JAVA_HOME=${Software}/jdk" >> /etc/profile
echo "export PATH=${JAVA_HOME}/bin:${PATH}" >> /etc/profile
echo "# <<< jdk initialize <<<" >> /etc/profile
  • 开头和结尾的主要是为了标识Java安装位置,为注释内容,不生效
  • Linux中>>表示为文档后追加文件内容
  • 若无法写入,检查是否是权限的问题,可以切换为root账号执行操作。或写入自己环境中的配置文件

重载环境变量配置文件

将环境变量写入配置文件后,环境变量不会立即生效,需要重新加载配置文件,Linux中使用source命令重新加载配置文件。

source /etc/profile

环境配置测试

执行java -versionjavac -version有正确的输出即表示Java环境配置成功。

$ java -version
openjdk version "1.8.0_43"
OpenJDK Runtime Environment (build 1.8.0_43-b03)
OpenJDK 64-Bit Server VM (build 25.40-b25, mixed mode)

$ javac -version
javac 1.8.0_43

Hadoop安装与环境变量配置

固定IP

在集群中,最重要的就是主机与主机之间能够相互访问到。所以需要通过相应的标识来识别到对应的节点。在计算机中,可以通过域名和IP地址的方式识别到相应的服务器,在Hadoop集群的配置中也是如此。在同一网段下,进行IP设置,可以考虑采用静态IP的方式而不是DHCP动态IP,防止节点IP发生变化无法访问。

  • 在使用云系统的情况下,请先自己购买云服务器的平台先设置VPC(Virtual Private Cloud)云虚拟局域网,然后在购买主机,保证购买的主机在同一个局域网,能够相互访问
  • 本系统采用容器的方式组集群,借助容器的VIP虚拟IP的概念,可以不用考虑固定容器内部IP,而是通过容器名(类似于域名)的方式访问节点
  • 虚拟机组集群用户可网上自行搜索资料,固定自己的IP

为方便访问子节点(IP不好记),可以考虑为自己的集群节点配置一个本地的host,这样可以直接用类似域名的方式直接访问集群节点。
Linux中将host主机名映射配置写在/etc/hosts文件中,这样之后直接访问`${HostMapName}$就可以访问相应的节点。

sudo echo "${StaticIP} ${HostMapName}" >> /etc/hosts

设置SSH免密登录

Hadoop在启动时,只需要在主节点执行Hadoop执行脚本,Hadoop会自动根据配置启动主从节点的服务。但是Hadoop在启动服务时,主节点需要访问所有节点,然后从相应节点中启动守护进程,所以配置主节点到所有节点之间的免密登录(包括主节点到主节点自身之间的免密登录)。

生成SSH密钥

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N "" -q
  • -t:指定生成密钥的算法参数
    • rsa:默认非对称加密算法,加解密速度慢,生成时间慢,安全性不如ed25519算法,但兼容性高,应用广泛
    • ed25519:带椭圆曲线的非对称加密算法,加解密速度快,生成速度快,安全性更高
    • ed25519-sk:-sk代表安全密钥
    • dsa:安全性不高,基本不在使用,在部分的场景中已被遗弃
    • ecdsa:带椭圆曲线的dsa算法
    • ecdsa-sk
  • -b:指定密钥长度
  • -f:保存密钥的文件路径
  • -N:提供一个新密码,""表示密码为空
  • -q:静默模式,直接输出密钥对,不输出实现过程中产生的信息
  • 通过设置-f-N-q参数,直接生成密钥,而不是交互式生成密钥,方便后期集群脚本的开发

设置免密登录

ssh-copy-id ${HostMapName}

使用ssh-copy-id可以将公钥传输到指定的主机上。但是在使用ssh-copy-id传输公钥时,需要输入相应的账户和密码,所以可以通过sshpass来执行免密操作。

sshpass -p ${USER_PASSWORD} ssh-copy-id ${HostMapName}

Hadoop的下载

Hadoop 下载地址

这里选择写本文时的最新版3.3.6进行下载

wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz

解压到指定位置

tar -xzvf hadoop-3.3.6.tar.gz --strip-components 1 -C ${Software}/hadoop

环境变量配置

echo "# >>> hadoop initialize >>>" >> /etc/profile
echo "export HADOOP_HOME=${Software}/hadoop" >> /etc/profile
echo "export HADOOP_CONF_DIR=${HADOOP_CONF_DIR}/etc/hadoop" >> /etc/profile
echo "export HADOOP_LOG_DIR=${HADOOP_LOG_DIR}" >> /etc/profile
echo "export HADOOP_DATA_HOME=${HADOOP_DATA_HOME}" >> /etc/profile
echo "export PATH=${HADOOP_HOME}/bin:${PATH}" >> /etc/profile
echo "export PATH=${HADOOP_HOME}/sbin:${PATH}" >> /etc/profile
echo "# <<< hadoop initialize <<<" >> /etc/profile
  • bin:一般存放着软件的相关执行文件
  • sbin:hadoop的super bin目录。是Hadoop管理脚本所在的目录,主要包含HDFS和YARN中各类服务的启动/关闭脚本。
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
相关文章
|
2月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
80 4
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
87 3
|
2月前
|
SQL 存储 分布式计算
Hadoop-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog 集群规划 实机配置运行
Hadoop-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog 集群规划 实机配置运行
49 3
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-34 HBase 安装部署 单节点配置 hbase-env hbase-site 超详细图文 附带配置文件
Hadoop-34 HBase 安装部署 单节点配置 hbase-env hbase-site 超详细图文 附带配置文件
98 2
|
2月前
|
存储 分布式计算 Hadoop
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
61 2
|
2月前
|
SQL 存储 数据管理
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
64 2
|
2月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
52 1
|
2月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
52 1
|
2月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
53 0
|
2月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
186 6