1.第一天完成vmware15.0的安装和CentOs 8.x ios源的下载。
2.以下遇到不能重写的文件 一律在期目录下,
打开终端(root权限下)chmod 777 (文件名)修改完成后
如不是特别需要不需要改回去,改回去可以chmod 644(文件名)。
3.开始配置
1)点击编辑
2)点击虚拟网络编辑
3)修改VMnet8最下方的子网IP和子网掩码。点击DHCP设置
4)终端打开 输入su - 进入root权限,root权限下输入
vim /etc/sysconfig/network-script/ifcfg-(你的网卡名)
主要修改内容:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.65.101
NETMASK=255.255.255.0
GATEWAY=192.168.65.2
DNS1=114.114.114.114
DNS2=8.8.8.8
最后,输入括号内(Ese:wq! )退出
5)hostnamectl set-hostname (要修改的主机名)
Etc:hostnamectl set-hostname handoop100
6)关闭防火墙和自启动
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld.service
7)检查网络配置
Ping -c 3 www.baidu.com # ping三次百度看看丢包率
Ping -c 3 192.168.65.131 # ping 三次 刚才配置的主机ip
8)将自己添加到root组(root 权限下执行)
vim /etc/sudoers
9)安装Java jdk和handoop
CentOs8 可以直接下载配置环境
注:一定要记住安装或者解压在哪个地方 实在忘了输入(whereis java 或者 whereis hadoop 然后输入pwd到处目录 当然 which java 或者 which hadoop也可)
环境配置参考地址
Handoop
export JAVA_HOME= /usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_HOME= /opt/software/hadoop
export PATH=
P
A
T
H
=
:
PATH=:
PATH=:HADOOP_HOME/sbin:$HADOOP_HOME/bin
(terminal
/usr/bin/gnome-terminal)
克隆操作 克隆3-8个虚拟机 并且逐个修改IP地址
cd /etc/udev/rules.d
chmod 777 TAB
su
vim /etc/udev/rules.d/文件名
将最后一行名字改为master主机的网卡名
Etc:ens33 或者 enth1
二.改ipaddr
vim /etc/sysconfig/network-script/ifcfg-(你的网卡名)
三.改名字
vi /etc/sysconfig/network
测试连通性:ping -c 192.168.65.103~107,如下表示成功,互ping一下检测连通性。
我做的时候先克隆了一个并且将网卡名改为ens33 后续只需要修改ip 也就是第二步
四.再创建新用户(避免大规模root权限导致的错误问题)
useradd atguigu
passwd atguigu
配置atguigu用户具有root权限,在这里需要修改配置文件 /etc/sudoers
vi /etc/sudoers
(大家后面可能会发现 会给atguigu root 权限这不是多余了吗?其实并不一样。)
atguigu 用户下 检查java -version和hadoop
出现问题:java能出现版本 hadoop不可以在非root权限下实现
1.解决办法:1)查看vim ~/.bashrc
2)检查hadoop环境,参考上述环境配置
3)环境配置完成后一定要记得运行source ~/.bashrc 使之生效。
4)最后chown -R atguigu /opt/software/hadoop/*
再检查,成功。
sudo nautilus
**#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环,注意修改100 和 103的区间,根据自己的集群机器名来修改
for((host=100; host<103; host++)); do
echo ------------------- hadoop$host --------------
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
Done**
[atguigu@hadoop100 bin]$ chmod 777 xsync
[atguigu@hadoop100 bin]$ xsync /home/atguigu /bin # 测试脚本能不能成功运行
Tips:可以在Master上编辑在用xsync将配置分发。
# core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop100:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property><name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop/data/tmp</value>
</property>
然后编辑hadoop-env.sh,添加JAVA路径
export JAVA_HOME=/opt/module/jdk1.8.0_144
然后编辑hdfs-site.sh
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop102:50090</value>
</property>
然后编辑yarn-env.sh,添加JAVA路径
export JAVA_HOME=/opt/module/jdk1.8.0_144
然后编辑yarn-site.sh
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop101</value>
</property>
然后编辑mapered-env.sh,添加JAVA路径
export JAVA_HOME=/opt/module/jdk1.8.0_144
然后编辑mapered-site.xml
# 命令行输入
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
单点集群:
第一步,检查vim /etc/hosts 每个机器都配好了主节点和各个分节点
第二部:格式化主机hdfs namenode -format
第三步:主机进入hadoop目录 输入 hadoop-daemon.sh start namenode
第四步:在各机器上输入hadoop-daemon.sh start datanode
最后,访问:http://hadoop100:50070/dfshealth.html#tab-datanode
进行检查,出现下图成功。
群起集群:
[atguigu@hadoop100 hadoop-2.7.2]$ start-dfs.sh
[atguigu@hadoop101 hadoop]$ start-yarn.sh
通过访问http://hadoop100:50070/检查一下hdfs是否成功启用
通过访问http://hadoop103:8088/检查Yarn(如果你的resource 是其他就要改101为你的resource)
三.云平台的应用
模拟终端通过udp传输数据到hadoop进行本地保存,以及对文本数据的统计。
我放在github了,需要自行下载。先运行server端,在运行另一个。
注意,需要主机和虚拟机互相ping通!