hadoop笔记(基于hadoop打大数据开发基础人民邮电出版社2018)

环境软件包

hadoop官网超链接
软件包下载地址

1:创建一个CenOS6.8虚拟系统

1.1:选择自定义
在这里插入图片描述
1.2:选择默认
在这里插入图片描述
1.3:操作系统选择稍后安装
在这里插入图片描述
1.4:系统选择CentOS 6 64位

在这里插入图片描述
1.5:根据自己电脑性能选择
(下面全部选择默认)
在这里插入图片描述
在这里插入图片描述

1.6:改主机名为master
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2:安装操作系统

2.1:选择“编辑虚拟机设置”
在这里插入图片描述
2.2:选择系统ios映像
在这里插入图片描述
2.3:左下角“完成”别忘了
在这里插入图片描述
2.4:开机
在这里插入图片描述
2.5:选择第一个
在这里插入图片描述
2.6:选择skip(鼠标不能用请使用键盘)
在这里插入图片描述
2.7:选择右下角next(下一步)
在这里插入图片描述
2.8:选择语言,然后选择右下角next
在这里插入图片描述
2.9:选择键盘布局,然后选择右下角next
在这里插入图片描述
2.10:选择本地硬盘,然后选择右下角next
在这里插入图片描述
2.11:选择yes
在这里插入图片描述
2.12:设置主机名为master.centos.com,然后选择右下角next
在这里插入图片描述

2.13:选择时区,选择Asia/Shanghai,然后选择右下角next
在这里插入图片描述

2.14:设置管理员密码,然后选择右下角next
在这里插入图片描述

密码过于简单提醒,可以跳过
在这里插入图片描述
2.15:选择分区(选择自动分区)
在这里插入图片描述
在这里插入图片描述

2.16:选择组件
在这里插入图片描述
2.17:选择右下角reboot(重启)就安装好了
在这里插入图片描述

3:设置固定IP地址

3.1:修改VM软件网络环境
在这里插入图片描述
在这里插入图片描述

3.2:编辑网卡配置文件
位置:/etc/sysconfig/network-scripts/ifcfg-eth0
1改

BOOTPROTO=static

4.添加

IPADDR=192.168.128.130
NETMASK=255.255.255.0
GATEWAY=192.168.128.2
DNS1=192.168.128.2

3.3:修改完成后重启网卡

service network restart

4:挂载系统映像

mount /dev/sr0 /mnt

5:修改本地yum源

进入yum目录

cd /etc/yum.repos.d/

清空默认yum源

rm -f *
vi yum.repo

在里面写入

[yum]
name=yum
baseurl=file:///mnt
gpgcheck=0
enable=1

6:处理yum源缓存

清理缓存

yum clean all

建立缓存

yum makecache

7:远程连接虚拟机(如果配置正常但连接不了,可以通过下载)

yum install openssh-server

8:安装yum软件

yum install -y vim zip openssh-server openssh-clients lrzsz

我这里比课本多一个lrzsz,这个是远程文件传输工具

9:安装java环境(windows和Linux都要安装)

9.1:Windows的java环境安装
在这里插入图片描述
9.1.1:java的jdk安装(jdk=软件开发工具包)
在这里插入图片描述:9.1.2:java的jre的安装(jre=运行环境)
在这里插入图片描述
9.1.3::配置环境变量
1:此电脑右键点击,选择管理
在这里插入图片描述
2:进入环境变量配置
在这里插入图片描述
3:配置变量

JAVA_HOME
D:\java\jdk

在这里插入图片描述

CLASSPATH
,:%JAVA_HOME%\jre\lib\re.jar:,:

在这里插入图片描述
在这里插入图片描述
4:验证java是否安装完成
进入cmd窗口
在这里插入图片描述
输入命令

java -version

在这里插入图片描述
5:Windows的java安装教程结束
------------------------------------------------------------------------这是一个华丽的分割线----------------------------------------------------------

9.2:Linux的java安装
我这里用的是xshell远程连接工具

[root@localhost ~]# cd /opt
[root@localhost ~]# rz			#上传Linux版java软件包(jdk-7u80-linux-x64.rpm)
[root@localhost opt]# rpm -ivh jdk-7u80-linux-x64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:jdk-2000:1.7.0_80-fcs            ################################# [100%]
Unpacking JAR files...
	rt.jar...
	jsse.jar...
	charsets.jar...
	tools.jar...
	localedata.jar...
	jfxrt.jar...

10:修改配置文件

安装软件包
把hadoop-2.6.4.tar.gz上传到master的/opt目录下
并执行

tar -zxf hadoop-2.6.4.tar.gz -C /usr/local

操作过程

cd /usr/local/hadoop-2.6.4/etc/hadoop
vi /etc/hosts  #末尾添加以下内容
192.168.128.130 master master.centos.com
192.168.128.131 slave1 slave1.centos.com
192.168.128.132 slave2 slave2.centos.com
192.168.128.133 slave3 slave3.centos.com

10.1备注:一共需要修改8个文件内容详解

cp mapred-site.xml.template mapred-site.xml 

1:core-site.xml
核心配置文件,修改主机名和临时文件位置

<configuration>
        <property>
        <name>fs.defaultFS</name>
                <value>hdfs://master:8020</value>
                </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/var/log/hadoop/tmp</value>
        </property>
</configuration>

2:hadoop-env.sh
配置hadoop运行基本环境,修改jdk的位置

export JAVA_HOME=/usr/java/jdk1.7.0_80

3:yarn-env.sh
配置yarn框架运行环境配置,修改jdk位置

export JAVA_HOME=/usr/java/jdk1.7.0_80

4:mapred-site.xml
修改MapReduce相关配置,修改master机器名

<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>

<property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
</property>
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
</property>
</configuration>

5:yarn-site.xml
这个是yarn框架的配置,设置变量

<configuration>

<!-- Site specific YARN configuration properties -->
<property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master</value>
        </property>
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>${yarn.resourcemanager.hostname}:8032</value>
        </property>
        <property>
		                <name>yarn.resourcemanager.scheduler.address</name>
                <value>${yarn.resourcemanager.hostname}:8030</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>${yarn.resourcemanager.hostname}:8088</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.https.address</name>
                <value>${yarn.resourcemanager.hostname}:8090</value>
        </property>
        <property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>${yarn.resourcemanager.hostname}:8031</value>
        </property>
        <property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>${yarn.resourcemanager.hostname}:8033</value>
        </property>
        <property>
                <name>yarn.nodemanager.local-dirs</name>
                <value>/data/hadoop/yarn/local</value>
</property>
        <property>
                <name>yarn.log-aggregation-enable</name>
                <value>true</value>
        </property>
        <property>
                <name>yarn.nodemanager.remote-app-log-dir</name>
                <value>/data/tmp/logs</value>
        </property>
<property>
        <name>yarn.log.server.url</name>
        <value>http//master:19888/jobhistory/logs/</value>
        <descripion>URL for job history server</descripion>
</property>
<property>
                <name>yarn.nodemanager.vmem-check-enabled</name>
                        <value>false</value>
                </property>
                <property>
                        <name>yarn.nodemanager.aux-services</name>
                        <value>mapreduce_shuffle</value>
                </property>
                <property>
                        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
                               <value>org.apache.hadoop.mapred.ShuffleHandler</value>
                                </property>
<property>
                        <name>yarn.nodemanager.resource.memory-mb</name>
                        <value>2048</value>
        </property>
        <property>
                        <name>yarn.scheduler.minimum-allocation-mb</name>
                        <value>512</value>
        </property>
        <property>
                        <name>yarn.scheduler.maximum-allocation-mb</name>
                        <value>4096</value>
        </property>
        <property>
                <name>mapreduce.map.memory.mb</name>
                <value>2048</value>
        </property>
        <property>
                <name>mapreduce.reduce.memory.mb</name>
                <value>2048</value>
        </property>
        <property>
                <name>yarn.nodemanager.resource.cpu-vcores</name>
				<value>1</value>
        </property>
</configuration>

6:slaves
该文件保存了slave节点信息

localhost
slave1
slave2
slave3

7:hdfs-site.xml
hdfs相关配置文件制定NameNode云数据和DataNode数据存储位置和文件块副本个数

<configuration>
<property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///data/hadoop/hdfs/name</value>
</property>
<property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///data/hadoop/hdfs/data</value>
</property>
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
</property>
<property>
        <name>dfs.replication</name>
        <value>3</value>
</property>
</configuration>

8:/etc/hosts
主机名及ip地址映射

192.168.128.130 master master.centos.com
192.168.128.131 slave1 slave1.centos.com
192.168.128.132 slave2 slave2.centos.com
192.168.128.133 slave3 slave3.centos.com

11:克隆虚拟机

这一步重复3次命名为slave1,slave2,slave3
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
给克隆的虚拟机命名
在这里插入图片描述

12:配置slave1,slave2,slave3(下面的命令在3个虚拟机都要执行)

12.1:删除文件

rm -rf /etc/udev/rules.d/70-persistent-net.rules

12.2:网络配置

ifconfig -a

在这里插入图片描述
红色内容写入网卡配置文件里(两者要对应)

vi /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart

在这里插入图片描述
IP地址改为

slave1:192.168.128.131
slave2:192.168.128.132
slave3:192.168.128.133

12.3:修改机器名

vim /etc/sysconfig/network

修改成
slave1机器

NETWORKING=yes
HOSTNAME=slave1.centos.com

slave2机器

NETWORKING=yes
HOSTNAME=slave2.centos.com

slave3机器

NETWORKING=yes
HOSTNAME=slave3.centos.com

修改完成后重启虚拟机

reboot

注意下面的操作需要虚拟机全部开机!!!!

13:配置SSH免密码登录

master机器配置

下面的命令执行后需要按3次enter(回车)键

ssh-keygen -t rsa

下面的是配置免密登录命令
依次输入yes ,root用户密码

ssh-copy-id -i /root/.ssh/id_rsa.pub master
ssh-copy-id -i /root/.ssh/id_rsa.pub slave1
ssh-copy-id -i /root/.ssh/id_rsa.pub slave2
ssh-copy-id -i /root/.ssh/id_rsa.pub slave3

14:配置时间同步

master机器的配置

yum install -y ntp

编辑/etc/ntp.conf取消server开头行,文件末尾添加

restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10

slave1,slave2,slave3机器

yum install -y ntp

编辑/etc/ntp.conf取消server开头行,文件末尾添加

server master

15:ntp环境配置

15.1:4台机器全部关闭防火墙
关闭防火墙

 service iptables stop 

永久关闭防火墙

chkconfig iptables off

开启服务

service ntpd start 

设置服务开机自动启动

chkconfig ntpd on

slave1,slave2,slave3机器

开启服务

service ntpd start 

设置服务开机自动启动

chkconfig ntpd on

同步时间

ntpdate master

16:启动关闭集群

16.1:配置环境变量
master,slave1,slave2,slave3机器的配置
修改/etc/profile文件,追加下面的内容

export HADOOP_HOME=/usr/local/hadoop-2.6.4
export PATH=$HADOOP_HOME/bin:$PATH:/usr/java/jdk1.7.0_80/bin

使配置文件生效

source /etc/profile

下面的命令只需要在master上面执行
格式化NameNode,初始化hadoop的相关配置

hdfs namenode -format

出现以下内容表示格式化成功没有则表示格式化失败

/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at master.centos.com/192.168.128.130
************************************************************/

16.2:集群启动
进入hadoop安装目录

cd $HADOOP_HOME	
sbin/start-dfs.sh		#启动hdfs相关服务

第一次启动时会询问yes/no
选择yes

在这里插入图片描述

启动yarn相关服务

sbin/start-yarn.sh

启动日志相关文件

sbin/mr-jobhistory-daemon.sh start historyserver

16.3:集群关闭
进入hadoop安装目录

cd $HADOOP_HOME

关闭hdfs相关服务

sbin/stop-dfs.sh

关闭yarn相关服务

sbin/stop-yarn.sh

关闭日志相关文件

sbin/mr-jobhistory-daemon.sh stop historyserver

在启动dfs时报错(使用后可能出现环境变量全部消失)这个报错不影响使用

安装前要关闭服务
master节点安装

在这里插入图片描述
报错原因是:不能加载本地库的WARN
linux默认安装版本是2.12
hadoop需要2.14
查看glibc版本命令

strings /lib64/libc.so.6 | grep GLIBC_

在这里插入图片描述

解决过程::
安装glibc-2.14
环境配置

yum install -y gcc wget

安装glibc-2.14
1:使用wget下载glibc安装包
进入·root目录·下进行操作

cd /root
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

2:解压安装包

tar -xzvf glibc-2.14.tar.gz

3:进入文件夹进行操作

cd glibc-2.14
mkdir build /opt/glibc-2.14
cd build

编译定义目录

../configure --prefix=/opt/glibc-2.14

安装(时间较长请耐心等待)

make
make install

删除原来的原有库链接

rm -rf /lib64/libc.so.6

指定新库链接

LD_PRELOAD=/opt/glibc-2.14/lib/libc-2.14.so ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

如果出现启动节点不见了下面是解决办法

删除格式化产生的配置文件,并重新格式化

rm -rf /data//hadoop/* 

重新格式化并启动集群

17:集群的监控

修改本地host文件
文件位置:C:\Windows\System32\drivers\etc
在这里插入图片描述
添加以下内容

192.168.128.130 master master.centos.com
192.168.128.131 slave1 slave1.centos.com
192.168.128.132 slave2 slave2.centos.com
192.168.128.133 slave3 slave3.centos.com

17.1监控HDFS

浏览器地址栏输入:http://master:50070/
在这里插入图片描述
注释:
(1):Overview
记录了NameNode启动时间,版本号,编译版本等基本信息
(2):Summary
记录集群信息,提供了集群环境的一些信息,从图中可以看见所有DataNode节点的基本存储信息,例如硬盘大小以及有多少被HDFS使用等一些数据信息,同时标注了当前集群环境中DataNode的信息,对活动状态的DataNode也专门做了记录
(3):NameNode Storage
提供了NameNode的信息,最后的State标示此节点为活动节点,可正常提供服务

----------------------------------------------------这是一个华丽的分割线--------------------------------------------------------------
以下菜单可以查看HDFS上面的文件信息
在这里插入图片描述

17.2:NameNode节点信息

浏览器地址栏输入:http://master:50070/dfshealth.jsp
在这里插入图片描述
注释:
点击Browse the filesystem可以进入文件存储目录
在这里插入图片描述

17.3:YARN监控

浏览器地址栏输入:http://master:8088
在这里插入图片描述

17.4:日志监控

浏览器地址栏输入:http://master:19888
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47768822/article/details/109282615
今日推荐