Hadoop----2.0版-----分布式部署

分布式Hadoop部署
一、资源配置
|操作系统|主机名|配置|磁盘|IP|数量| |CentOS7.3|node1|2C4G|50G|192.168.137.161|1| |CentOS7.3|node2|2C4G|50G|192.168.137.165|1| |CentOS7.3|node3|2C4G|50G|192.168.137.166|1|

二、前置环境
2.1、基础环境准备
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭内核安全机制
sed -i “s/.SELINUX=./SELINUX=disabled/g” /etc/selinux/config
安装时间同步服务

安装chrony服务

yum -y install chrony

启动chronyd服务

systemctl start chronyd

设置为开机自启动

systemctl enable chronyd

查看确认时间同步

chronyc sources -v
修改主机名

主机名自定义我这里三台的主机名按照资源配置里进行设置

hostnamectl set-hostname node1
配置hosts
cat >> /etc/hosts << EOF
192.168.137.161 node1
192.168.137.165 node2
192.168.137.166 node3
EOF
三、安装Hadoop 运行环境
3.1、创建用户,所有节点均要操作
groupadd hadoop
useradd -g hadoop hduser
passwd hduser

为 hduser 用户添加 sudo 权限

vi /etc/sudoers

找到root ALL=(ALL) ALL这行,在这一行下添加

hduser ALL=(ALL) NOPASSWD: ALL
3.2、安装jdk,所有节点均要操作
物料包 jdk-8u171-linux-x64.rpm
rpm -ivh jdk-8u171-linux-x64.rpm

配置环境变量

echo ‘export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64’ >> /etc/profile
echo ‘export CLASSPATH= J A V A H O M E / l i b : JAVA_HOME/lib: JAVAHOME/lib:CLASSPATH’ >> /etc/profile
echo ‘export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH’ >> /etc/profile
source /etc/profile

在node1上执行即可 配置免密登录

ssh-keygen -t rsa //一路回车键即可
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
四、Hadoop 完全分布式安装
物料包 hadoop-2.6.5.tar.gz
4.1、安装 Hadoop,所有节点均要操作

通过官网下载获取 Hadoop 压缩包 hadoop-2.6.5.tar.gz,上传到 服务器上将压缩包解压到/home/hduser 目录下

tar zxvf hadoop-2.6.5.tar.gz -C /home/hduser/

解压后重命名为 hadoop

mv /home/hduser/hadoop-2.6.5 /home/hduser/hadoop

配置 hadoop 环境变量

cat >> /etc/profile << EOF
export HADOOP_HOME=/home/hduser/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
EOF
source /etc/profile

配置 Hadoop

先进入 node1 进行配置,随后将配置文件复制到 node2、node3。配置 Hadoop主要涉及的配置文件有 7 个,都在 hadoop/etc/hadoop 文件夹下,包括:hadoop-env.sh、yarn-env.sh、slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。具体配置如下

vi /home/hduser/hadoop/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64 //增加 JDK 路径,已经有export JAVA_HOME了就修改,没有就添加

vi /home/hduser/hadoop/etc/hadoop/yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64 //开头部分添加此内容

vi /home/hduser/hadoop/etc/hadoop/slaves // 打开并清空原内容,然后输入如下内容
node2
node3

vi /home/hduser/hadoop/etc/hadoop/core-site.xml

该文件是 Hadoop 全局配置。打开并在元素中增加配置属性如下

fs.defaultFS hdfs://node1:9000 hadoop.tmp.dir file:/home/hduser/hadoop/tmp

vi /home/hduser/hadoop/etc/hadoop/hdfs-site.xml

该文件是 HDFS 的配置。打开并在元素中增加配置属性如下

dfs.namenode.secondary.http-address node1:50090 dfs.namenode.name.dir file:/home/hduser/hadoop/dfs/name dfs.datanode.data.dir file:/home/hduser/hadoop/dfs/data dfs.replication 2 dfs.webhdfs.enabled true

vi /home/hduser/hadoop/etc/hadoop/mapred-site.xml

该文件是 MapReduce 的配置,可从模板文件 mapred-site.xml.template 复制。打开并在元素中增加配置属性如下

mapreduce.framework.name yarn mapreduce.jobhistory.address node1:10020 mapreduce.jobhistory.webapp.address node1:19888

vi /home/hduser/hadoop/etc/hadoop/yarn-site.xml

如果在 mapred-site.xml 配置了使用 YARN 框架,那么 YARN 框架使用此文件中的配置。打开并在元素中增加配置属性如下

yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler yarn.resourcemanager.address node1:8032 yarn.resourcemanager.scheduler.address node1:8030 yarn.resourcemanager.resource-tracker.address node1:8035 yarn.resourcemanager.admin.address node1:8033 yarn.resourcemanager.webapp.address node1:8088

将这 7 个文件复制到 node2、node3 的同目录下

scp -r /home/hduser/hadoop node2:/home/hduser
scp -r /home/hduser/hadoop node3:/home/hduser

4.2、验证安装配置
在 Master 主机(node1)上格式化 NameNode
cd /home/hduser/hadoop/
bin/hdfs namenode -format
sbin/start-dfs.sh

有以下输出

[root@node1 hadoop]# sbin/start-dfs.sh
Starting namenodes on [node1]
node1: starting namenode, logging to /home/hduser/hadoop/logs/hadoop-root-namenode-node1.out
node2: starting datanode, logging to /home/hduser/hadoop/logs/hadoop-root-datanode-node2.out
node3: starting datanode, logging to /home/hduser/hadoop/logs/hadoop-root-datanode-node3.out
Starting secondary namenodes [node1]
node1: starting secondarynamenode, logging to /home/hduser/hadoop/logs/hadoop-root-secondarynamenode-node1.out

查看 Java 进程
jps

有以下输出

[root@node1 hadoop]# jps
10545 Jps
10248 NameNode
10415 SecondaryNameNode

启动 YARN
sbin/start-yarn.sh # 也可以使用 start-all.sh 同时启动 HDFS 和 YARN
查看集群状态
bin/hdfs dfsadmin –report

有以下输出

[root@node1 hadoop]# bin/hdfs dfsadmin -report
Configured Capacity: 100865679360 (93.94 GB)
Present Capacity: 96408911872 (89.79 GB)
DFS Remaining: 96408903680 (89.79 GB)
DFS Used: 8192 (8 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0


Live datanodes (2):

Name: 192.168.137.165:50010 (node2)
Hostname: node2
Decommission Status : Normal
Configured Capacity: 50432839680 (46.97 GB)
DFS Used: 4096 (4 KB)
Non DFS Used: 2228383744 (2.08 GB)
DFS Remaining: 48204451840 (44.89 GB)
DFS Used%: 0.00%
DFS Remaining%: 95.58%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Mon Mar 22 13:16:39 CST 2021

Name: 192.168.137.166:50010 (node3)
Hostname: node3
Decommission Status : Normal
Configured Capacity: 50432839680 (46.97 GB)
DFS Used: 4096 (4 KB)
Non DFS Used: 2228383744 (2.08 GB)
DFS Remaining: 48204451840 (44.89 GB)
DFS Used%: 0.00%
DFS Remaining%: 95.58%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Mon Mar 22 13:16:37 CST 2021
至此 Hadoop 完全分布式安装完毕。可以使用浏览器查看 HDFS 运行状态:
http://192.168.137.161:50070
五、运行 Hadoop 的 WordCount 程序
在操作系统/home/hduser/file 目录下创建 file1.txt、file2.txt
mkdir /home/hduser/file
echo “Hello World hi HADOOP” > /home/hduser/file/file1.txt
echo “Hello hadoop hi CHINA” > /home/hduser/file/file2.txt
启动 HDFS 后创建 HDFS 目录/input2
sbin/start-all.sh
bin/hadoop fs -mkdir /input2

将 file1.txt、file2.txt 保存到 HDFS 中
bin/hadoop fs -put /home/hduser/file/file* /input2
查看 HDFS 上是否已经存在 file1.txt、file2.txt
bin/hadoop fs -ls /input2

有以下输出

[root@node1 hadoop]# bin/hadoop fs -ls /input2
Found 2 items
-rw-r–r-- 2 root supergroup 22 2021-03-22 13:25 /input2/file1.txt
-rw-r–r-- 2 root supergroup 22 2021-03-22 13:25 /input2/file2.txt
执行 WordCount 程序
bin/hadoop jar /home/hduser/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /input2/ /output2/wordcount1

#“wordcount”为示例 jar 包提供的参数选项,wordcount 仅是其提供功能之一;“/input2/”表示文本文件输入目录(HDFS);“/output2/wordcount1”表示提供的输出目录(HDFS)参数。可以发现,在数据量小的时候,使用 Hadoop 运行并没有优势,花费在通信同步上的开销比实际单词统计处理开销还要多,所以说 Hadoop 主要用于大数据的处理。当执行完成后,使用如下命令来查看输出目录中所有结果

bin/hadoop fs -cat /output2/wordcount1/*

[root@node1 hadoop]# bin/hadoop fs -cat /output2/wordcount1/*
CHINA 1
HADOOP 1
Hello 2
World 1
hadoop 1
hi 2

以上输出结果表示已经成功安装了 Hadoop

Hadoop Download
节点1:下载
节点2:下载
JDK下载:下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值