浅谈hadoop3的搭建

集群的搭建

在这里插入图片描述
实验环境
安装前,3台虚拟机IP及机器名称如下:
主机名 IP地址 角色
yunzu63.cn 192.168.1.63 NameNode
yunzu64.cn 192.168.1.64 DataNode1
yunzu62.cn 192.168.1.62 DataNode2

实验前期环境准备:

三台机器上配置hosts文件,如下:
[root@yunzu63 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.63 yunzu63.cn
192.168.1.64 yunzu64.cn
192.168.1.62 yunzu62.cn
yunzu62 yunzu64 同样的配置

创建运行hadoop用户账号和Hadoop目录。 尽量不用root帐号运行

[root@yunzu63 ~]# useradd -u 8000 hadoop #为了保障,在其它服务器上创建的hadoop用户ID保持一致,创建时,尽量把UID调大
[root@yunzu63 ~]# echo 123456 | passwd --stdin hadoop
yunzu62 yunzu64 同样的配置且都必须是8000
(4)给hadoop账户增加sudo权限: vim /etc/sudoers ,增加内容:
[root@yunzu63 ~]# vim /etc/sudoers
hadoop ALL=(ALL) ALL
注意:第93行,root下面,以上对于每一台机器都要执行

配置在yunzu63上,可以ssh无密码登录机器yunzu63,yunzu64,yunzu62 ,方便后期复制文件和启动服务。因为namenode启动时,会连接到datanode上启动对应的服务
[hadoop@yunzu63 ~]# ssh-keygen
一路回车
导入公钥到其他datanode节点认证文件
[hadoop@yunzu63 ~]# ssh-copy-id root@192.168.1.62
[hadoop@yunzu63 ~]# ssh-copy-id root@192.168.1.64

配置Hadoop环境,安装Java环境JDK:三台机器上都要配置
yunzu63安装jdk
上传jdk-8u161-linux-x64.rpm软件包到yunzu63
[root@yunzu63 ~]# rpm -ivh jdk-8u161-linux-x64.rpm
1、安装及配置Java运行环境—jdk。升级了jdk的版本
[root@yunzu63 ~]# rpm -ivh jdk-8u161-linux-x64.rpm
[root@yunzu63 ~]#rpm -pql /root/jdk-8u161-linux-x64.rpm #通过查看jdk的信息可以知道jdk的安装目录在/usr/java

[root@yunzu63 ~]#vim /etc/profile #在文件的最后添加以下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_161
export JAVA_BIN=/usr/java/jdk1.8.0_161/bin
export PATH= J A V A H O M E / b i n : {JAVA_HOME}/bin: JAVAHOME/bin:PATH
export CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : {JAVA_HOME}/lib/dt.jar: JAVAHOME/lib/dt.jar:{JAVA_HOME}/lib/tools.jar
[root@yunzu63 ~]#source /etc/profile #使配置文件生效
验证java运行环境是否安装成功:
[root@yunzu63 ~]# java -version

将jdk部署到其它两台机器上:
[root@yunzu63 ~]# scp jdk-8u161-linux-x64.rpm root@192.168.1.62:/root
[root@yunzu63 ~]# scp jdk-8u161-linux-x64.rpm root@192.168.1.64:/root
[root@yunzu63 ~]# scp /etc/profile 192.168.1.62:/etc/profile
[root@yunzu63 ~]# scp /etc/profile 192.168.1.64:/etc/profile
安装
[root@yunzu64 ~]# rpm -ivh jdk-8u161-linux-x64.rpm
[root@yunzu62 ~]# rpm -ivh jdk-8u161-linux-x64.rpm
重新参加java运行环境:
[root@yunzu64 ~]# source /etc/profile
[root@yunzu62 ~]# source /etc/profile
测试:
[root@yunzu64 ~]# java -version
[root@yunzu62 ~]# java -version

在yunzu63安装Hadoop 并配置成namenode主节点

Hadoop安装目录:/home/hadoop/hadoop-3.0.0
使用root帐号将hadoop-3.0.0.tar.gz 上传到服务器
[root@yunzu63 ~]# mv hadoop-3.0.0.tar.gz /home/hadoop/
注意:以下步骤使用hadoop账号操作。
[root@yunzu63 ~]# su - hadoop
[hadoop@yunzu63 ~]$ tar zxvf hadoop-3.0.0.tar.gz #只要解压文件就可以,不需要编译安装

创建hadoop相关的工作目录

[hadoop@yunzu63 ~]$ mkdir -p /home/hadoop/dfs/name /home/hadoop/dfs/data /home/hadoop/tmp
[hadoop@yunzu623 ~]$ ls
dfs hadoop-3.0.0 hadoop-3.0.0.tar.gz tmp

配置Hadoop:需要修改7个配置文件。

文件位置:/home/hadoop/hadoop-3.0.0/etc/hadoop/
文件名称:hadoop-env.sh、yarn-evn.sh、workers、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml

1、配置文件hadoop-env.sh,指定hadoop的java运行环境
该文件是hadoop运行基本环境的配置,需要修改的为java虚拟机的位置。
[hadoop@yunzu63 hadoop-3.0.0]$ vim
/home/hadoop/hadoop-3.0.0/etc/hadoop/hadoop-env.sh
改:54 # export JAVA_HOME=
为:export JAVA_HOME=/usr/java/jdk1.8.0_161

2、配置文件yarn-env.sh,保存yarn框架的运行环境
该文件是yarn框架运行环境的配置,同样需要修改java虚拟机的位置。
[hadoop@yunzu63 hadoop-3.0.0]$ vim /home/hadoop/hadoop-3.0.0/etc/hadoop/yarn-env.sh 不需要修改。

4、配置文件core-site.xml,指定访问hadoop web界面访问路径
这个是hadoop的核心配置文件,这里需要配置的就这两个属性,fs.default.name配置了hadoop的HDFS系统的命名,位置为主机的9000端口;
[hadoop@yunzu63 hadoop-3.0.0]$ vim /home/hadoop/hadoop-3.0.0/etc/hadoop/core-site.xml
改:
19
20
注: 在和中间插入以一下红色和蓝色标记内容:
为:


fs.defaultFS
hdfs://yunzu63.cn:9000


io.file.buffer.size
13107


hadoop.tmp.dir
file:/home/hadoop/tmp
Abase for other temporary directories.

5、配置文件hdfs-site.xml
这个是hdfs的配置文件,dfs.http.address配置了hdfs的http的访问位置;
dfs.replication配置了文件块的副本数,一般不大于从机的个数。
[root@yunzu63 ~]# vim /home/hadoop/hadoop-3.0.0/etc/hadoop/hdfs-site.xml
改:19
20
21
为:


dfs.namenode.secondary.http-address
yunzu63.cn:9001


dfs.namenode.name.dir
file:/home/hadoop/dfs/name


dfs.datanode.data.dir
file:/home/hadoop/dfs/data


dfs.replication
2


dfs.webhdfs.enabled
true


6、配置文件mapred-site.xml
这个是mapreduce任务的配置
[hadoop@yunzu63 hadoop-3.0.0]$ vim /home/hadoop/hadoop-3.0.0/etc/hadoop/mapred-site.xml
改:19
20
21
为:


mapreduce.framework.name
yarn


mapreduce.jobhistory.address
0.0.0.0:10020


mapreduce.jobhistory.webapp.address
0.0.0.0:19888


7、配置节点yarn-site.xml
该文件为yarn框架的配置,主要是一些任务的启动位置
[hadoop@yunzu63 hadoop-3.0.0]$ vim /home/hadoop/hadoop-3.0.0/etc/hadoop/yarn-site.xml
改:

为: yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler yarn.resourcemanager.address yunzu63.cn:8032 yarn.resourcemanager.scheduler.address yunzu63.cn:8030 yarn.resourcemanager.resource-tracker.address yunzu63.cn:8031 yarn.resourcemanager.admin.address yunzu63.cn:8033 yarn.resourcemanager.webapp.address yunzu63.cn:8088 yarn.application.classpath /home/hadoop/hadoop-3.0.0/etc/hadoop:/home/hadoop/hadoop-3.0.0/share/hadoop/c ommon/lib/*:/home/hadoop/hadoop-3.0.0/share/hadoop/common/*:/home/hadoop/hadoop-3.0. 0/share/hadoop/hdfs:/home/hadoop/hadoop-3.0.0/share/hadoop/hdfs/lib/*:/home/hadoop/h adoop-3.0.0/share/hadoop/hdfs/*:/home/hadoop/hadoop-3.0.0/share/hadoop/mapreduce/*:/ home/hadoop/hadoop-3.0.0/share/hadoop/yarn:/home/hadoop/hadoop-3.0.0/share/hadoop/ya rn/lib/*:/home/hadoop/hadoop-3.0.0/share/hadoop/yarn/*
编辑datanode节点host

[hadoop@yunzu63 hadoop]$ vim workers
yunzu62.cn
yunzu64.cn

复制到其他datanode节点: yunzu64和yunzu62

[hadoop@yunzu63 hadoop-3.0.0]$ scp core-site.xml hadoop-env.sh hdfs-site.xml mapred-site.xml yarn-site.xml workers 192.168.1.62:/home/hadoop/hadoop-3.0.0/etc/hadoop/

[hadoop@yunzu63 hadoop-3.0.0]$ scp core-site.xml hadoop-env.sh hdfs-site.xml mapred-site.xml yarn-site.xml workers
192.168.1.64:/home/hadoop/hadoop-3.0.0/etc/hadoop/

在yunzu63上启动Hadoop

格式化
hadoop namenode的初始化,只需要第一次的时候初始化,之后就不需要了
[hadoop@yunzu63 hadoop-3.0.0]$ /home/hadoop/hadoop-3.0.0/bin/hdfs namenode -format
[root@yunzu63 hadoop-3.0.0]# echo KaTeX parse error: Expected 'EOF', got '#' at position 33: …root@yunzu63 ~]#̲ rpm -ivh /mnt/… tree /home/hadoop/dfs/

生成基于hadoop用户的不输入密码登录:因为后期使用hadoop用户启动datanode节点使用需要直接登录到对应的服务器上启动datanode相关服务。
[hadoop@yunzu63 hadoop-3.0.0]$ ssh-keygen
[hadoop@yunzu63 hadoop-3.0.0]$ ssh-copy-id 192.168.1.64
[hadoop@yunzu63 hadoop-3.0.0]$ ssh-copy-id 192.168.1.62
[hadoop@yunzu63 hadoop-3.0.0]$ ssh-copy-id 192.168.1.63

启动hdfs: ./sbin/start-dfs.sh,即启动HDFS分布式存储

[root@yunzu63 hadoop-3.0.0]# /home/hadoop/hadoop-3.0.0/sbin/start-dfs.sh
Starting namenodes on [yunzu63.cn]
yunzu63.cn: starting namenode, logging to
/home/hadoop/hadoop-3.0.0/logs/hadoop-root-namenode-yunzu63.cn.out
yunzu64.cn: starting datanode, logging to
/home/hadoop/hadoop-3.0.0/logs/hadoop-root-datanode-yunzu64.cn.out
yunzu62.cn: starting datanode, logging to
/home/hadoop/hadoop-3.0.0/logs/hadoop-root-datanode-yunzu62.cn.out
Starting secondary namenodes [yunzu63.cn]
yunzu63.cn: starting secondarynamenode, logging to
/home/hadoop/hadoop-3.0.0/logs/hadoop-root-secondarynamenode-yunzu63.cn.out
注:如果报错,如:
yunzu64.cn: Host key verification failed.
解决:
[hadoop@yunzu63 ~]$ ssh 192.168.1.64 #确认可以不输入密码直接连接上yunzu64
关闭后再重启:
[root@yunzu63 hadoop-3.0.0]# /home/hadoop/hadoop-3.0.0/sbin/stop-dfs.sh
[root@yunzu63 hadoop-3.0.0]# /home/hadoop/hadoop-3.0.0/sbin/start-dfs.sh

查看进程,此时master有进程:namenode和 secondarynamenode进程:

[root@yunzu63 ~]# ps -axu | grep namenode --color
Warning: bad syntax, perhaps a bogus ‘-’? See /usr/share/doc/procps-3.2.8/FAQ
root 8214 4.1 9.5 1882176 110804 ? Sl 17:39 0:17 /usr/java/jdk1.8.0_161/bin/java -Dproc_namenode -Xmx1000m

yunzu64和yunzu62上有进程:DataNode

[root@yunzu64 ~]# ps -axu | grep datanode --color
Warning: bad syntax, perhaps a bogus ‘-’?See/usr/share/doc/procps-3.2.8/FAQ
root 5749 8.8 5.2 1851956 60656 ? Sl 17:55 0:06 /usr/java/jdk1.8.0_161/bin/java -Dproc_datanode -Xmx1000m

在yunzu63上启动yarn: ./sbin/start-yarn.sh 即,启动分布式计算

[hadoop@yunzu63 hadoop-3.0.0]# /home/hadoop/hadoop-3.0.0/sbin/start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to
/home/hadoop/hadoop-3.0.0/logs/yarn-root-resourcemanager-yunzu63.cn.out
yunzu62.cn: starting nodemanager, logging to
/home/hadoop/hadoop-3.0.0/logs/yarn-root-nodemanager-yunzu62.cn.out
yunzu64.cn: starting nodemanager, logging to
/home/hadoop/hadoop-3.0.0/logs/yarn-root-nodemanager-yunzu64.cn.out

查看进程:

查看yunzu63上的ResourceManager进程,yunzu62和yunzu64上的进程:DataNode NodeManager
[root@yunzu63 ~]# ps -axu | grep resourcemanager --color
[root@yunzu62 ~]# ps -axu | grep nodemanager --color
[root@yunzu64 ~]# ps -axu | grep nodemanager --color

注:start-dfs.sh 和 start-yarn.sh 这两个脚本可用start-all.sh代替。
[hadoop@yunzu63 ~]$ /home/hadoop/hadoop-3.0.0/sbin/start-all.sh
关闭:
[hadoop@yunzu63 ~]$ /home/hadoop/hadoop-3.0.0/sbin/stop-all.sh

启动: jobhistory服务,查看mapreduce运行状态
[hadoop@yunzu63 hadoop-3.0.0]#
/home/hadoop/hadoop-3.0.0/sbin/mr-jobhistory-daemon.sh start historyserver

在主节点上启动存储服务和资源管理主服务。使用命令:
[hadoop@yunzu63 ~]$ /home/hadoop/hadoop-3.0.0/sbin/hadoop-daemon.sh start datanode #启动从存储服务
[hadoop@yunzu63 ~]$ /home/hadoop/hadoop-3.0.0/sbin/yarn-daemon.sh start
nodemanager #启动资源管理从服务
登录从结点:启动存储从服务和资源管理从服务
[hadoop@yunzu62 ~]$ /home/hadoop/hadoop-3.0.0/sbin/hadoop-daemon.sh start datanode #启动从存储服务
[hadoop@yunzu62 ~]$ /home/hadoop/hadoop-3.0.0/sbin/yarn-daemon.sh start
nodemanager #启动资源管理从服务
[hadoop@yunzu64 ~]$ /home/hadoop/hadoop-3.0.0/sbin/hadoop-daemon.sh start datanode #启动从存储服务
[hadoop@yunzu64 ~]$ /home/hadoop/hadoop-3.0.0/sbin/yarn-daemon.sh start nodemanager #启动资源管理从服务

查看HDFS分布式文件系统状态:

[hadoop@yunzu63 hadoop-3.0.0]$ /home/hadoop/hadoop-3.0.0/bin/hdfs dfsadmin -report

查看文件块组成部分:

[hadoop@yunzu63 hadoop-3.0.0]$ ./bin/hdfs fsck / -files -blocks
或:
http://192.168.1.63:9870/dfshealth.html#tab-datanode

通过web界面来查看HDFS状态: http://192.168.1.63:9001/status.html
通过Web查看hadoop集群状态: http://192.168.1.63:8088
查看JobHistory的内容:
http://192.168.1.63:19888/jobhistory

设置HADOOP_HOME环境变量,方便后期调用命令。

[root@yunzu63 ~]# vim /etc/profile #添加追加以下内容:
export HADOOP_HOME=/home/hadoop/hadoop-3.0.0
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:HADOOP_HOME/bin: H A D O O P H O M E / s b i n : HADOOP_HOME/sbin: HADOOPHOME/sbin:PATH
[root@yunzu63 ~]# source /etc/profile
[root@yunzu63 ~]# start #输入start 按两下tab键,测试命令补齐

测试:

运行Hadoop计算任务,Word Count 字数统计
[hadoop@yunzu63 ~]$ source /etc/profile
(1)/home/hadoop目录下有两个文本文件file01.txt和file02.txt,文件内容分别为:
[hadoop@yunzu63 ~]$ vim file01.txt
随便输入单词
[hadoop@yunzu63 ~]$ vim file02.txt
随便输入单词

(2)将这两个文件放入hadoop的HDFS中:
[hadoop@yunzu63 ~]$ hadoop fs -ls //查看hdfs目录情况
[hadoop@yunzu63 ~]$ hadoop fs -mkdir -p input
[hadoop@yunzu63 ~]$ hadoop fs -put /home/hadoop/file*.txt input
[hadoop@yunzu63 ~]$ hadoop fs -cat input/file01.txt //查看命令

(3)计执行 wordCount单词统计汇总并查看结果:
[hadoop@yunzu63 ~] hadoop jar hadoop-3.0.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar wordcount input output

查看运行之后产生的文件
hadoop fs -ls output
查看运行结果
hadoop fs -cat output/part-r-00000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值