目录
一、模板虚拟机搭建
二、克隆虚拟机
三、安装jdk
四、安装Hadoop
五、本地运行模式
六、完全分布式:集群纷发脚本scp、rsync、xsync
七、ssh无密登录配置
八、集群配置
九、群起集群
十、集群崩溃处理办法
十一、历史服务器配置
十二、日志聚焦功能设置
一、模板虚拟机搭建
- 安装VMware :注册码可以百度(也可以自己买正版)
- 安装centos:打开VMware>新建虚拟机>选择自定义>下一步>下一步(这里用默认设置就好)>这里选择稍后安装操作系统,选好下一步>这里选择Linux系统 版本选择centos 7 64位,选好后下一步>虚拟机名称可以取hadoop100(你后面学会了,也可自己取其他的),位置:选择d盘新建文件夹hadoop100方便管理,下一步>这里配置2,2,4,下一步>右边箭头指向2gb,下一步>使用网络地址转换,下一步>下一步>下一步>下一步(这里都为默认值)>最大磁盘大小改为:50gb,下一步>这里位置改为d盘与前面的放在一个文件夹里,方便管理,下一步>完成>就在这个页面双击cd/dvd进去>使用ISO映像文件,浏览打开centos文件映像>确定>开启此虚拟机(过程比较慢)>选择中文,继续>点击日期时间,位置:上海,完成>点击软件选择,选择桌面版,完成>安装位置,我要自己分配,完成,点击加号,下拉框/boot,1g,添加,文件系统改为ext4,点击+,/swap,/swap,4g,添加,点击+,/,45g,完成>点击网络和主机名,主机名改为hadoop100,上边按钮开启,完成>开始安装>点击root密码,输入自己的密码,完成>创建用户>输入完成后,完成(过程有点长)>重启>点击许可证,接受,完成>完成配置。
- 配置VMware的IP地址:打开VMware>点我的计算机>点编辑(最上方)>虚拟网络搭配器>点击VMnet8>更改设置>再次点击VMnet8>子网配置成:192.168.10.0>NAT设置>改成:192.168.10.2 配置win10的IP地址:打开网络共享中心>更改适配器设置>点机vmnet8右键属性>选择inter4协议版本>默认网关:192.168.10.2,DNS服务器:192.168.10.2,备用dns服务器:8.8.8.8,确定>打开虚拟机>登陆root账号>vim /etc/sysconfig/network-scripts/ifcfg-ens33>BOOTPROTO="static" 在后面添加:IPADDR=192.168.10.100 GATEWAY=192.168.10.2 DNS1=192.168.10.2 按esc+:+wq 保存退出>vim /etc/hostname>里面是hadoop100就不用改了>主机名称映射:vim /etc/hosts>按o插入>
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
reboot(重启)>登陆root账号>ifconfig(看里面IP地址)>ping www.baidu.com(能ping通就成功)
- 安装xshell 7>主机和名称输入:192.168.10.100>点击用户身份验证>用普通账号登陆>完成>接受并保存>hostname(显示hadoop100成功)>我的电脑——c盘里找到etc文件夹下的hosts文件复制到桌面在最后添加>
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
- 安装xftp(用户名和公司可以随便写)>打开xshell在最上面有个绿色的包一样的,点击它,就可以像虚拟机传输文件了。
- 模板虚拟机准备:先保证网络畅通(ping命令能ping通)>额外安装一个软件库(在命令窗口输入:yum install -y epel-release)>关闭防火墙(systemctl stop firewalld)和防火墙自启动(systemctl disable firewalld.service)>vim /etc/sudoers(配置root权限,下滑需要用ctrl+下键)>
改完后需要按esc+:+wq!强制保存退出 >cd /opt/>ll>exit>cd /opt/>ll>rm -rf rh/>sudo rm -rf rh/>ll>sudo mkdir module(创建一个文件夹,未来任何一个软件就安在这里面)>ll>sudo mkdir software>sudo chown nancheng:nancheng module/ software/>ll 2.卸载对应的jdk:rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
二、克隆虚拟机
- 先关闭主虚拟机,右键>管理>克隆。
- 配置每台虚拟机的主机名:vim /etc/sysconfig/network-scripts/ifcfg-ens33>将主机名改成对应的主机名>vim /etc/hostname>改名。
- 测试每台主机能不能ping通外网。
- 配置VMware:右键>新建(主机名和用户验证)。
- 测试:hostname,能显示名字则为成功。
- (注:1.删除虚拟机 :右键>管理>从磁盘中删除。2.添加虚拟机(如果不小心将图标删除了):右键>打开>=文件中的位置。)
三、安装jdk
打开VM>连接hadoop102>cd/opt/ >ll >cd software/ >上传jdk 资料包 >tar -zxvf jdk文件名 -C /opt/module/ >ll >cd opt./module >ll >cd jdk……>ll >sudo vim /etc/profile >sudo cd /etc/profile.d >cd /etc/profile.d/sudo vim my _env.sh(这个是文件名,可以自己取名)(在里面写:#JAVA_HOME=(在打开一个hadoop102:cd /opt/module/ > ll >pwd(复制下面的路径+/jdk的名字)
#JAVA_HOME
export JAVA_HOME=粘贴
export PATH=$PATH:$JAVA_HOME/bin
>esc+:+wq>source /etc/profile >java (能运行就说明成功)。
四、安装Hadoop
打开Xshell7连接hadoop102>cd /opt/software>ll>tar -zxvf hadoop文件名 -C /opt/module/>cd ..>cd madule>cd hadoop-3.1.3(自己hadoop的文件名)\ll>pwd(复制下面的连接)>sudo vim /etc/profile.d/my_env.sh>
#HADOOP_HOME
export HADOOP_HOME=粘贴刚刚复制的内容
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
>source /etc/profile(有时候可以省略这一步)>hadoop(显示就成功);配置好后用ll查看里面有那些内容。
(注:修改系统文件:要么登陆管理员账户要么用sudo。)
五、本地运行模式
本地配置:在cd hadoop-3.1.3文件中>mkdir wccinput >ll>cd wcinput/>ll>vim word.txt>
ss ss
cls cls
banzhang
bobo
yangge
>cd ..>ll>pwd>cd bin/>ll>cd ..>ll(如果对路径不熟悉的话)>bin/hadoop jar share/(按tab键)>hadoop/(tab键)>mapreduce/(按tab建两次)>h(tab)>e(tab)>wordcount(后续所有的mapreduce程序都必须指定输入路径和输出路径,并且输出路径不能存在)空格加两次tab>wcinput/ ./wcoutput(这个可以自己取名,文件夹不能存在) >回车执行>ll >cd wcoutput>ll>cat 文件名(查看数据)
六、完全分布式:集群纷发脚本scp、rsync、xsync
- scp:(hadoop102):cd /opt/module/>scp -r 文件名/ 目的地用户名@主机名:路径(/opt/module)>yes>输入密码 (Hadoop103):scp -r 对方的用户名@主机名:对方文件所在的路径(opt/module/hadoop-3.1.3) 目标地址 ./ (hadoop103)scp -r 文件所在服务器的用户名@主机名:文件所在路径/* 目标服务器的用户名@主机名:/路径
- rsync:rsync -av 原数据文件名/ 同步到那个服务器:路径……(hadoop-3.1.3)
cd /home/nancheng>touch a.txt(创建一个文件)>mkdir bin>cd bin/>pwd>cd ..>ll>cd bin/>vim xsync(在里面添加如下代码):
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
>chmod 777 文件名(给它可执行权限)> cd ..>ll>xsync bin/(同步bin目录)>sudo ./bin/xsync /etc/profile.d/my_env.sh(分发环境变量)。
103和104:
cd /home/nancheng>ll>sudo vim /etc/profile.d/my_env.sh>ll>source /etc/profile
七、ssh无密登录配置
cd /home/nancheng>pwd>ls -al(能够查看到所有的隐藏文件)>cd .ssh/>ssh-keygen -t rsa(按4次回车)>ll>cat 文件名(可以查看密钥的配置)>
(每一台都要配置)
八、集群配置
cd /opt/module/hadoop文件名>ll >cd etc/hadoop/>.l>vim core-site.xml>按o(右键粘贴)
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
>ll>vim hdfs-site.xml>按o粘贴
<!-- nn web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop102:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:9868</value>
</property>
>ll>vim yarn-site.xml>删掉里面的内容>粘贴(
<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
</property>
)>ll>vim mapred-site.xml>粘贴(
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
)>cd ..>ll>pwd>xsync hadoop/
查看配置是否完成:
(103)cd /opt/module/hadoop-3.1.3/>ll>cd etc/>ll>cat core-site.xml
九、群起集群
- 配置workers: cd etc/hadoop/>ll>vim workers>
hadoop102
hadoop103
hadoop104
xsync workers>cd ..>cd ..
- hdfs namenode -format>ll(初始化后里面会多data和logs路径)>cd data/>ll>cd dfs/>ll>cd name/>ll>cd current>ll>vim VERSION(namespaceid是当前服务器的版本号)>cd /opt/module/>ll>cd sbin/>cd ..>ll>sbin/start-dfs.sh>jps (103和104)hadoop-3.1.3路径下>jps (查看配置) (103) sbin/(TAB键)》start-yarn.sh>jps
十、集群崩溃处理办法
- cd /opt/module/hadoop-3.1.3/>ll>jps
- sbin/stop-dfs.sh(杀死进程)>jps(102,103,104)>ll
- 删除data和logs(rm -rf data/ logs/)(102、103、104)
- 格式化:hdfs namenode -format
- 启动集群:sbin/start-dfs.sh>sh
十一、历史服务器配置
(hadoop102,hadoop-3.1.3目录下)ll>cd etc/hadoop/>vim mapred-site.xml>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop102:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop102:19888</value>
</property>
>xsync mapred-site.xml>cd ..>cd ..>ll>jps>sbin/start-yarn.sh>jps>cd bin/>ll>cd ..>cd ..>bin/mapred --daemon start historyserver >jps(里面会多一个进程Jobhistoryserver)>hadoop fs -mkdir /input>hadoop fs -put wcinput/word.txt /input>ll>hadoop jar share/hadoop/mapreduce/hadoop-mapreduce>examples-3.1.3.jar wordcount /input /output
十二、日志聚焦功能设置
(102,hadoop文件下):cd etc/hadoop/>vim yarn-site.xml>
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop102:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为 7 天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
>xsync yarn-sit.xml
(103)cd /opt/module/hadoop……/>jps>mapred --daemon stop historyserver>sbin/stop-yarnj.sh>sbin/start-yarn.sh>jps>mapred --daemon start historyserver>hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3 jar wordcount /input /output2