开发者社区> 尼泊罗河伯> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

保姆级丨Hadoop部署

简介: Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
+关注继续查看

0x00 前言

       Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

5fc3423a2cbb3d3ab8238ca167bb86a.jpg

▲ Hadoop生态系统



0x01 环境说明

Xshell 7
Hadoop-3.3.3
jdk-18_linux-x64_bin
centos-a(192.168.1.10)
centos-b(192.168.1.11)
centos-c(192.168.1.12)



0x02 准备工作 

文中使用CentOS-7系统在三个虚拟机环境下进行示范,过程使用本地主机与虚拟机交互。首先要在Windows主机下载实验过程需要使用的环境。


Xshell 7:

https://www.xshell.com/zh/xshell-download/

Hadoop-3.3.3:

https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/hadoop-3.3.3.tar.gz

jdk-18_linux-x64_bin:

https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz



0x03 配置hosts文件(三个节点)

通过root执行命令

su root


配置虚拟机hosts文件

vi /etc/hosts


写入各个节点IP和主机名

192.168.1.10 centos-a
192.168.1.11 centos-b
192.168.1.12 centos-c


分别检测三个节点是否互联

ping -c 3 centos-x



0x04 SSH免密登录(三个节点)

       

SSH为建立在应用层基础上的安全协议。SSH是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。


生成密钥文件

ssh-keygen -t rsa -P ''


在.ssh目录中生成authorized_keys文件(仅在主节点执行)

touch /root/.ssh/authorized_keys


通过SSH复制三个节点生成的id信息

ssh-copy-id centos-a
ssh-copy-id centos-b
ssh-copy-id cnetos-c


查看密钥文件是否成功配置

cat /root/.ssh/authorized_keys



验证免密登录是否成功

ssh centos-b



0x05 Xshell7连接虚拟机(三个节点)

Xshell7可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。


d369d060a1d4fdca3d49cf4fff6f7bf.jpg

打开Xshell7选择新建

4abb290488908aaef064b80633d294a.jpg

修改常规项并连接虚拟机

633d9ad8a7b87198dac491783d94b45.jpg

接受并保存

cc4c11fd8a652d9f45dce9503a86e1d.jpg

输入主机名并确定

457fb6da87c5db43b76aa86535262cf.jpg

输入虚拟机密码并确定

6cdd8d9ba8263f7ffb1e9515da0bf92.jpg

虚拟机连接成功


0x06 Xshell7文件上传(三个节点)


通过root执行命令

su root


创建software文件夹

7ed877a0b277431ead8237e2ffdb570.jpg



mkdir /usr/local/software

下载文件互传工具

f1bcbbf6a7df4e4eefe6acae3debcd3.jpg



yum -y install lrzsz

打开software文件夹

a634887095c0a5d8728b6349a5fb5d1.jpg



cd /usr/local/software

利用lrzsz文件互传工具

3b9dd3b79526b02456cd0e8c5051e1c.jpg



rz

上传jdk-18_linux-x64_bin文件

36d5e4143a01c64cfd58f8e550dc2f1.jpg



上传Hadoop-3.3.3文件

06a72fcd88796e73f77cb5cd7d3b34b.jpg




0x07 安装JDK(三个节点)


创建jdk文件夹以保存解压的jdk文件

mkdir /usr/local/jdk


解压jdk文件

tar -zxvf jdk-18_linux-x64_bin.tar.gz -C /usr/local/jdk


打开profile文件

vi /etc/profile


配置jdk环境变量

#--在末尾写入配置文件--
export JAVA_HOME=/usr/local/jdk/jdk-18.0.2
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/


使配置文件生效

source /etc/profile



0x08 安装Hadoop(三个节点)


创建hadoop文件夹以保存解压的hadoop文件

mkdir /usr/local/hadoop


解压hadoop文件

tar -zxvf hadoop-3.3.3.tar.gz -C /usr/local/hadoop


打开profile文件

vi /etc/profile


配置hadoop环境变量

export HADOOP_HOME=/usr/local/hadoop/hadoop-3.3.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root


使配置文件生效

source /etc/profile



0x09 配置Hadoop文件(仅在主节点执行)


打开hadoop-env.sh文件

vi /usr/local/hadoop/hadoop-3.3.3/etc/hadoop/hadoop-env.sh

修改hadoop-env.sh文件

JAVA_HOME=/usr/local/jdk/jdk-18.0.2


打开core-site.xml文件

vi /usr/local/hadoop/hadoop-3.3.3/etc/hadoop/core-site.xml

修改core-site.xml文件

#在configuration标签中加入
<!-- HDFS临时目录 -->
<property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/local/hadoop/hadoop-3.3.3/tmp</value>
  <description>Abase for other temporary directories.</description>
</property>
<!-- HDFS的默认地址、端口 访问地址 -->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://centos-a:9000</value>
</property>


打开yarn-site.xml文件

vi /usr/local/hadoop/hadoop-3.3.3/etc/hadoop/yarn-site.xml

修改yarn-site.xml文件

#在configuration标签中加入
<!-- 集群master -->
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>centos-a</value>
</property>
<!-- NodeManager上运行的附属服务 -->
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<!-- 容器可能会覆盖的环境变量,而不是使用NodeManager的默认值 -->
<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_HOME,PATH,LANG,TZ</value>
</property>
<!-- 关闭内存检测,在虚拟机中不做配置会报错 -->
<property>
  <name>yarn.nodemanager.vmem-check-enabled</name>
  <value>false</value>
</property>


打开mapred-site.xml文件

vi /usr/local/hadoop/hadoop-3.3.3/etc/hadoop/mapred-site.xml

修改mapred-site.xml文件

#在configuration标签中加入
<!-- yarn表示新的框架,local表示本地运行,classic表示经典mapreduce框架 -->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<!-- 如果mapreduce任务访问本地库(压缩等),则必须保留原始值,当此值为空时,设置执行环境的命令将取决于操作系统 -->
<property>
  <name>mapreduce.admin.user.env</name>
  <value>HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-3.3.3</value>
</property>
<!-- 设置AM[AppMaster]端的环境变量 -->
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-3.3.3</value>
</property>


打开hdfs-site.xml文件

vi /usr/local/hadoop/hadoop-3.3.3/etc/hadoop/hdfs-site.xml

修改hdfs-site.xml文件

#在configuration标签中加入
<!-- hdfs web的地址 -->
<property>
  <name>dfs.namenode.http-address</name>
  <value>centos-a:50070</value>
</property>
<!-- 副本数 -->
<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>
<!-- 是否启用hdfs权限 -->
<property>
  <name>dfs.permissions.enabled</name>
  <value>false</value>
</property>
<!-- 块大小,默认128M -->
<property>
  <name>dfs.blocksize</name>
  <value>134217728</value>
</property>


打开works文件

vi /usr/local/hadoop/hadoop-3.3.3/etc/hadoop/workers

修改works文件

centos-a  #--主节点--
centos-b  #--从节点--
centos-c  #--从节点--


将centos-a主机节点配置好的文件发送给centos-b和centos-c

scp -r /usr/local/hadoop/hadoop-3.3.3 centos-b://usr/local/hadoop/
scp -r /usr/local/hadoop/hadoop-3.3.3 centos-c://usr/local/hadoop/



0x10 启动Hadoop(仅在主节点执行)

hadoop启动前必须要格式化

hadoop namenode -format


启动hadoop,启动文件位于sbin目录

start-all.sh  #--启动--
stop-all.sh  #--停用--


浏览器访问hadoop的web界面

acf5e34e65dee33564b982cdadb3cb1.jpg

192.168.1.10:50070



0x11 总结

至此Hadoop部署完成。由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Hadoop
概述: Hadoop概述 Hadoop项目架构 Hadoop安装使用 Hadoop部署使用 Hadoop概述 Apache的开源分布式计算平台。 java开发的跨平台。
1154 0
Hadoop
1,基本概念   http://www.doc88.com/p-214832657401.html
416 0
hadoop
hadoop集群管理工具?   puppet  python   把其中一张表拆分为几个小表,目的是把一张表和一张表的关联转换为多张小表和一张表的关联,最后合并  Hive中有分区的概念  可以将大的表按照日期或者地域之类的进行分区 这样在在连接的时候 中间结果能小很多   sp...
506 0
hadoop
记录一个hadoop的总结贴,很经典 http://jenmhdn.iteye.com/blog/1635987
576 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Hadoop存储与计算分离实践
立即下载
蚂蚁金服Docker网络插件 开发和实践
立即下载
自建Hadoop数据如何托管到MaxCompute
立即下载