拥有CentOS7服务器版环境
项目 | 服务器node2 | 服务器node3 | 服务器node4 |
---|---|---|---|
HDFS | NameNode、DataNode | DataNode | DataNode、SecondaryNameNode |
Yarn | NodeManager | Resourcemanager、NodeManager | NodeManager |
能ping通外网,例如:
ping baidu.com
如果ping不通,修改如下文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
将ONBOOT=no
改为ONBOOT=yes
重启网络或重启机器
重启网络
systemctl restart network
重启机器
reboot
# 查询主机名 [root@localhost ~]# hostname localhost.localdomain # 修改主机名 [root@localhost ~]# hostnamectl set-hostname node1 [root@localhost ~]# hostname node1 # 重启生效 [root@localhost ~]# reboot ... [root@node1 ~]#
因为root
用户权限太高,误操作可能会造成不可挽回的损失,所以我们需要新建一个普通用户来安装操作
添加一个普通用户,用户名例如:hadoop
,方法如下:
[root@node1 ~]# adduser hadoop [root@node1 ~]# passwd hadoop Changing password for user hadoop. New password: BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully.
给普通用户添加sudo执行权限,且执行sudo不需要输入密码
[root@node1 ~]# chmod -v u+w /etc/sudoers mode of ‘/etc/sudoers’ changed from 0440 (r--r-----) to 0640 (rw-r-----) [root@node1 ~]# sudo vi /etc/sudoers 在%wheel ALL=(ALL) ALL一行下面添加如下语句: hadoop ALL=(ALL) NOPASSWD: ALL [root@node1 ~]# chmod -v u-w /etc/sudoers mode of ‘/etc/sudoers’ changed from 0640 (rw-r-----) to 0440 (r--r-----)
查询虚拟机网关
打开VMware-->编辑-->虚拟机网络编辑器
点击VMnet8的NAT模式-->点击NAT设置,查看到网关为:192.168.193.2
设置静态IP
[root@node1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改核心内容如下
BOOTPROTO=static IPADDR=192.168.193.140 GATEWAY=192.168.193.2 DNS1=192.168.193.2
注意:
1.BOOTPROTO设置为static
,表示IP为静态的。
2.GATEWAY设置为上一步查询到的实际网关地址。
3.IPADDR设置为网关所在的网段,这里查到的网段为192.168.193
网段,最后一位一般设置为128-255之间未被占用的地址。
[root@node1 ~]# systemctl stop firewalld
选中一台用来克隆的CentOS7机器,点击 虚拟机-->管理-->克隆,如下图所示:
点击 下一页
点击 下一页
选中创建完整克隆,点击 下一页
填写虚拟机名称CentOS7-node2
,选择安装位置,点击完成
用同样的方法克隆出另外两台机器:CentOS7-node3
、CentOS7-node4
。
在node2上登录普通用户hadoop进行操作
# 修改主机名 [hadoop@node1 ~]$ sudo hostnamectl set-hostname node2 [sudo] password for hadoop: # 查看主机名 [hadoop@node1 ~]$ hostname node2 # 重启机器 [hadoop@node1 ~]$ sudo reboot
同样的方法:
修改node3的主机名为node3
node4的主机名为node4
修改静态ip
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
将BOOTPROTO设置为static
,ip地址改为192.168.193.142
,核心修改的语句如下:
BOOTPROTO=static IPADDR=192.168.193.142 GATEWAY=192.168.193.2 DNS1=192.168.193.2
重启网络或重启机器生效(可后面一起重启),然后用新ip登录机器。
sudo systemctl retart network.service
同样的方法,修改node3、node4机器的ip
node3 ip设置为 192.168.193.143 node4 ip设置为 192.168.193.144
修改ip与主机名的映射
[hadoop@node2 ~]$ sudo vi /etc/hosts
添加如下内容
192.168.193.142 node2 192.168.193.143 node3 192.168.193.144 node4
重启机器
[hadoop@node2 ~]$ sudo reboot
同样的方法,修改node3、node4机器。
在node2机器操作:
ssh-keygen -t rsa
执行命令后,连续敲击三次回车键
拷贝公钥
ssh-copy-id node2 ssh-copy-id node3 ssh-copy-id node4
执行ssh-copy-id
命令后,根据提示输入yes
,再输入机器登录密码
验证
从node2发起ssh登录到node3,过程中不需要登录密码为配置成功。使用exit
退出免密登录。
[hadoop@node2 ~]$ ssh node3 Last login: Fri Apr 1 09:21:02 2022 from 192.168.193.1 [hadoop@node3 ~]$ exit logout Connection to node3 closed.
同样的方法,在node3、node4机器上操作。
编写分发脚本
安装rsync
命令
[hadoop@node2 ~]$ rsync --help -bash: rsync: command not found [hadoop@node2 ~]$ sudo yum install rsync -y
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
在主目录创建bin
目录
[hadoop@node2 ~]$ mkdir ~/bin
创建分发脚本文件xsync
[hadoop@node2 ~]$ nano ~/bin/xsync
内容如下
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in node2 node3 node4
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
修改权限
[hadoop@node2 ~]$ chmod +x ~/bin/xsync
测试
分别在node3、node4机器安装xsync
命令
sudo yum install rsync -y
把xsync
命令发送到node3、node4
xsync /home/hadoop/bin
将脚本复制到/bin
目录,方便root
用户调用(三台机器都执行)
在node2机器执行:
[hadoop@node2 ~]$ sudo cp ~/bin/xsync /bin/
在node3机器执行:
[hadoop@node3 soft]$ sudo cp ~/bin/xsync /bin/ [sudo] password for hadoop: [hadoop@node3 soft]$ source /etc/profile
在node4机器执行:
[hadoop@node4 ~]$ sudo cp ~/bin/xsync /bin/ [sudo] password for hadoop: [hadoop@node4 ~]$ source /etc/profile
官方下载jdk和hadoop,下载版本名称如下:
jdk-8u212-linux-x64.tar.gz
hadoop-3.1.3.tar.gz
上传到Linux虚拟机(node2、node3、node4 3台机器都需要),上传到linux的存放安装包的目录下/home/hadoop/installfile
(如果目录不存在,需要用mkdir ~/installfile
命令先创建出来)
在node2机器上操作:
新建软件安装目录
在~
目录下,新建一个soft
目录,当作安装的软件。
[hadoop@node2 ~]$ mkdir soft
解压JDK到soft
目录
[hadoop@node2 ~]$ cd ~/installfile/ [hadoop@node2 installfile]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C ~/soft
配置环境变量
sudo nano /etc/profile.d/my_env.sh
内容如下:
#JAVA_HOME export JAVA_HOME=/home/hadoop/soft/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin
让环境变量生效
source /etc/profile
验证
java -version
看到版本号输出,说明jdk配置成功。
同样的方法,在node3、nod4执行安装jdk。
在node2机器上操作:
解压hadoop
[hadoop@node2 ~]$ cd installfile/ [hadoop@node2 installfile]$ tar -zxvf hadoop-3.1.3.tar.gz -C ~/soft
配置环境变量
sudo nano /etc/profile.d/my_env.sh
添加如下内容
#HADOOP_HOME export HADOOP_HOME=/home/hadoop/soft/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
让配置生效
source /etc/profile
验证
hadoop version
看到hadoop版本号输出,说明环境变量配置成功。
配置hadoop
进入hadoop配置目录
cd $HADOOP_HOME/etc/hadoop
配置core-site.xml
nano core-site.xml
注意:1.nano为编辑命令,可以用vi命令代替;2如果没有nano命令,可以用yum install nano -y
来安装。
在<configuration>
和</configuration>
之间添加如下内容:
<!-- 指定NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node2:9820</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/soft/hadoop-3.1.3/data</value>
</property>
<!-- 配置HDFS网页登录使用的静态用户为hadoop -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>hadoop</value>
</property>
<!-- 配置该hadoop(superUser)允许通过代理访问的主机节点 -->
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<!-- 配置该hadoop(superUser)允许通过代理用户所属组 -->
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
<!-- 配置该hadoop(superUser)允许通过代理的用户-->
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
配置hdfs-site.xml
nano hdfs-site.xml
在<configuration>
和</configuration>
之间添加如下内容:
<!-- nn web端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>node2:9870</value>
</property>
<!-- 2nn web端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node4:9868</value>
</property>
配置yarn-site.xml
nano yarn-site.xml
在<configuration>
和</configuration>
之间添加如下内容:
<!-- 指定MR走shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node3</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!-- yarn容器允许分配的最大最小内存 -->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
<!-- yarn容器允许管理的物理内存大小 -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
配置mapred-site.xml
nano mapred-site.xml
在<configuration>
和</configuration>
之间添加如下内容:
<!-- 指定MapReduce程序运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
配置workers
nano workers
把原有的内容替换成如下内容:
node2 node3 node4
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
配置历史服务器
修改mapred-site.xml
nano mapred-site.xml
添加如下配置
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node2:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node2:19888</value>
</property>
配置日志聚集
修改yarn-site.xml
nano yarn-site.xml
添加如下配置
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node2:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
分发hadoop安装文件
把hadoop安装文件从node2机器分发到node3、node4机器
[hadoop@node2 ~]$ xsync ~/soft/hadoop-3.1.3
查看node3和node4机器
[hadoop@node3 soft]$ ls hadoop-3.1.3 jdk1.8.0_212 [hadoop@node4 ~]$ ls soft/ hadoop-3.1.3 jdk1.8.0_212
修改环境变量
修改node3、node4环境变量,分别在node3、node4机器上操作
sudo nano /etc/profile.d/my_env.sh
添加如下内容:
#HADOOP_HOME export HADOOP_HOME=/home/hadoop/soft/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
让环境变量生效
source /etc/profile
验证
hadoop version
输出看到hadoop版本号为配置成功。
格式化文件系统
在node2机器执行格式化hdfs
[hadoop@node2 ~]$ hdfs namenode -format
看到successfully formatted
为格式化成功。
注意:格式化成功后,以后就不能再次格式化了。
启动hdfs
在node2机器上执行启动hdfs命令
start-dfs.sh
启动yarn
在node3机器上执行启动yarn命令
start-yarn.sh
验证
进程验证
分别在不同机器执行jps
命令
[hadoop@node2 ~]$ jps 3062 Jps 2506 NameNode 2666 DataNode 2958 NodeManager
[hadoop@node3 ~]$ jps 2210 DataNode 2850 Jps 2700 NodeManager 2383 ResourceManager
[hadoop@node4 ~]$ jps 2240 DataNode 2562 Jps 2360 SecondaryNameNode 2456 NodeManager
浏览器验证
修改windows下的C:\Windows\System32\drivers\etc\hosts
文件,添加如下映射语句
192.168.193.142 node2 192.168.193.143 node3 192.168.193.144 node4
浏览器访问
node2:9870
浏览器访问
node3:8088
参考:尚硅谷hadoop教程资料。
完成!enjoy it!
文章浏览阅读3.2k次。本文研究全球与中国市场分布式光纤传感器的发展现状及未来发展趋势,分别从生产和消费的角度分析分布式光纤传感器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。主要生产商包括:FISO TechnologiesBrugg KabelSensor HighwayOmnisensAFL GlobalQinetiQ GroupLockheed MartinOSENSA Innovati_预计2026年中国分布式传感器市场规模有多大
文章浏览阅读1.1k次,点赞2次,收藏12次。常用组合逻辑电路结构——为IC设计的延时估计铺垫学习目的:估计模块间的delay,确保写的代码的timing 综合能给到多少HZ,以满足需求!_基4布斯算法代码
文章浏览阅读3.3k次,点赞3次,收藏5次。OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版
文章浏览阅读2.2k次。USACO自1992年举办,到目前为止已经举办了27届,目的是为了帮助美国信息学国家队选拔IOI的队员,目前逐渐发展为全球热门的线上赛事,成为美国大学申请条件下,含金量相当高的官方竞赛。USACO的比赛成绩可以助力计算机专业留学,越来越多的学生进入了康奈尔,麻省理工,普林斯顿,哈佛和耶鲁等大学,这些同学的共同点是他们都参加了美国计算机科学竞赛(USACO),并且取得过非常好的成绩。适合参赛人群USACO适合国内在读学生有意向申请美国大学的或者想锻炼自己编程能力的同学,高三学生也可以参加12月的第_usaco可以多次提交吗
文章浏览阅读394次。1.1 存储程序1.2 创建存储过程1.3 创建自定义函数1.3.1 示例1.4 自定义函数和存储过程的区别1.5 变量的使用1.6 定义条件和处理程序1.6.1 定义条件1.6.1.1 示例1.6.2 定义处理程序1.6.2.1 示例1.7 光标的使用1.7.1 声明光标1.7.2 打开光标1.7.3 使用光标1.7.4 关闭光标1.8 流程控制的使用1.8.1 IF语句1.8.2 CASE语句1.8.3 LOOP语句1.8.4 LEAVE语句1.8.5 ITERATE语句1.8.6 REPEAT语句。_mysql自定义函数和存储过程
文章浏览阅读188次。半导体二极管——集成电路最小组成单元。_本征半导体电流为0
文章浏览阅读2.8k次,点赞3次,收藏18次。游戏水面特效实现方式太多。咱们这边介绍的是一最简单的UV动画(无顶点位移),整个mesh由4个顶点构成。实现了水面效果(左图),不动代码稍微修改下参数和贴图可以实现岩浆效果(右图)。有要思路是1,uv按时间去做正弦波移动2,在1的基础上加个凹凸图混合uv3,在1、2的基础上加个水流方向4,加上对雾效的支持,如没必要请自行删除雾效代码(把包含fog的几行代码删除)S..._unity 岩浆shader
文章浏览阅读5k次。广义线性模型是线性模型的扩展,它通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。广义线性模型拟合的形式为:其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y 服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。在大部分情况下,线性模型就可以通过一系列连续型或类别型预测变量来预测正态分布的响应变量的工作。但是,有时候我们要进行非正态因变量的分析,例如:(1)类别型.._广义线性回归模型
文章浏览阅读69次。环境保护、 保护地球、 校园环保、垃圾分类、绿色家园、等网站的设计与制作。 总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮播图、音频 视频 Flash的应用、ul li、下拉导航栏、鼠标划过效果等知识点,网页的风格主题也很全面:如爱好、风景、校园、美食、动漫、游戏、咖啡、音乐、家乡、电影、名人、商城以及个人主页等主题,学生、新手可参考下方页面的布局和设计和HTML源码(有用点赞△) 一套A+的网_垃圾分类网页设计目标怎么写
文章浏览阅读614次,点赞7次,收藏11次。之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe._.net dll 全局目录
文章浏览阅读1.5k次。本文为转载,原博客地址:http://blog.csdn.net/hujingshuang/article/details/46910259简介 BRIEF是2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度..._breif description calculation 特征点
文章浏览阅读4.1k次,点赞21次,收藏79次。本文是《基于SpringBoot的房屋租赁管理系统》的配套原创说明文档,可以给应届毕业生提供格式撰写参考,也可以给开发类似系统的朋友们提供功能业务设计思路。_基于spring boot的房屋租赁系统论文