怎么看待网站开发,网站内链优化的角度,微信公众号开发文档,专业黑帽seoECS准备
开通阿里云ECS
略
控制台设置密码 连接ECS
远程连接工具连接阿里云ECS实例#xff0c;这里远程连接工具使用xshell 根据提示接受密钥 根据提示写用户名和密码 用户名#xff1a;root 密码#xff1a;在控制台设置的密码 修改主机名
将主机名从localhost改为需要…ECS准备
开通阿里云ECS
略
控制台设置密码 连接ECS
远程连接工具连接阿里云ECS实例这里远程连接工具使用xshell 根据提示接受密钥 根据提示写用户名和密码 用户名root 密码在控制台设置的密码 修改主机名
将主机名从localhost改为需要的主机名例如node1
[rootiZwz9hpiui8zhoe2pkat8nZ ~]# hostnamectl set-hostname node1
[rootiZwz9hpiui8zhoe2pkat8nZ ~]# hostname
node1
发现未重启时命令行后面显示的主机名未变
重启
[rootiZwz9hpiui8zhoe2pkat8nZ ~]# reboot
重新连接
[rootnode1 ~]#
重启后命令行中的主机名改变了 创建普通用户
因为root用户权限太高误操作可能造成一些麻烦。一般情况下我们不会用root用户来安装hadoop所以我们需要创建普通用户来安装hadoop。
创建新用户方法如下
创建新用户例如用户名为hadoop并设置新用户密码重复设置2次看不到输入的密码这是linux的安全机制输入即可。
[rootnode1 ~]# adduser hadoop
[rootnode1 ~]# 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执行权限
[rootnode1 ~]# chmod -v uw /etc/sudoers
mode of ‘/etc/sudoers’ changed from 0440 (r--r-----) to 0640 (rw-r-----)
[rootnode1 ~]# vim /etc/sudoers
在%wheel ALL(ALL) ALL一行下面添加如下语句
hadoop ALL(ALL) ALL
[rootnode1 ~]# chmod -v u-w /etc/sudoers
mode of ‘/etc/sudoers’ changed from 0640 (rw-r-----) to 0440 (r--r-----)
这种情况下执行sudo相关命令时需要输入当前普通用户的密码。
如果不想输入密码在%wheel ALL(ALL) ALL一行下面添加的语句更改为如下
hadoop ALL(ALL) NOPASSWD:ALL 关闭root连接 普通用户登录
使用xshell新建一个连接 用户名hadoop 密码创建hadoop用户时设置的密码 映射IP和主机
[hadoopnode1 ~]$ sudo vim /etc/hosts
文件末尾一行将ECS内网IP与实际的主机名node1映射修改如下内容
192.168.0.100 node1 注意192.168.0.100为ECS内网IPECS内网IP可以在阿里云控制台查询请根据实际情况设置。 配置免密登录
生成密钥对
ssh-keygen -t rsa
执行命令后连续敲击三次回车键运行过程如下
[hadoopnode1 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:F7ztwW9iUTYORd3jGBD46lvznVHbxe0jZcAHeI7kVRk hadoopnode1
The keys randomart image is:
---[RSA 2048]----
| .ooE|
| o o..oo|
| * *oB..|
| O Bo.|
| S .o|
| o . o.|
| . o.oo|
| ...ooo |
| .. . o |
----[SHA256]-----
拷贝公钥
ssh-copy-id node1 安装jdk
创建安装包目录
创建一个目录专门存放安装包可选
[hadoopnode1 ~]$ mkdir ~/installfile下载jdk8安装包
官网下载jdk安装包jdk-8u271-linux-x64.tar.gz并将安装包上传到Linux的installfile目录。 解压安装包
解压安装包
[hadoopnode1 installfile]$ tar -zxvf jdk-8u271-linux-x64.tar.gz -C ~/soft
切换到soft目录查看解压后的文件
[hadoopnode1 softinstall]$ cd ~/soft
[hadoopnode1 soft]$ ls
jdk1.8.0_271
配置环境变量
[hadoopnode1 soft]$ sudo nano /etc/profile.d/my_env.sh
内容如下
export JAVA_HOME/home/hadoop/soft/jdk1.8.0_271
export PATH$PATH:$JAVA_HOME/bin
让配置立即生效
[hadoopnode1 soft]$ source /etc/profile
验证版本号
[hadoopnode1 soft]$ java -version
java version 1.8.0_271
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)
看到输出java version 1.8.0_271说明jdk安装成功。 遇到的问题
验证java版本号时遇到找不到libjli.so的问题
[hadoopnode1 ~]$ java -version
java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
排查问题发现解压jdk包时出现了错误造成该问题
jdk1.8.0_271/jre/lib/
jdk1.8.0_271/jre/lib/amd64/
jdk1.8.0_271/jre/lib/amd64/server/
jdk1.8.0_271/jre/lib/amd64/server/Xusage.txt
jdk1.8.0_271/jre/lib/amd64/server/libjvm.so
tar: Skipping to next header
gzip: stdin: invalid compressed data--format violated
tar: Child returned status 1
tar: Error is not recoverable: exiting now
重新上传jdk安装包确保文件完整然后再重新解压解压正常版本号验证正常。 安装hadoop伪分布式
下载hadoop
[hadoopnode1 soft]$ cd ~/softinstall/
[hadoopnode1 soft]$ wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
[hadoopnode1 softinstall]$ ls
hadoop-3.3.4.tar.gz jdk-8u271-linux-x64.tar.gz
解压hadoop
[hadoopnode1 softinstall]$ tar -zxvf hadoop-3.3.4.tar.gz -C ~/soft 配置环境变量
[hadoopnode1 softinstall]$ sudo nano /etc/profile.d/my_env.sh
在文件末尾添加如下配置
export HADOOP_HOME/home/hadoop/soft/hadoop-3.3.4
export PATH$PATH:$HADOOP_HOME/bin
export PATH$PATH:$HADOOP_HOME/sbin
让环境变量生效
[hadoopnode1 softinstall]$ source /etc/profile 验证版本号
执行hadoop version命令能看到Hadoop 3.3.4版本号说明环境变量配置成功。
[hadoopnode1 softinstall]$ hadoop version
Hadoop 3.3.4
Source code repository https://github.com/apache/hadoop.git -r a585a73c3e02ac62350c136643a5e7f6095a3dbb
Compiled by stevel on 2022-07-29T12:32Z
Compiled with protoc 3.7.1
From source with checksum fb9dd8918a7b8a5b430d61af858f6ec
This command was run using /home/hadoop/soft/hadoop-3.3.4/share/hadoop/common/hadoop-common-3.3.4.jar
配置hadoop
进入配置目录
[hadoopnode1 softinstall]$ cd $HADOOP_HOME/etc/hadoop
配置core-site.xml
[hadoopnode1 hadoop]$ vim core-site.xml
在configuration 和/configuration之间添加如下内容 !-- 指定NameNode的地址 --propertynamefs.defaultFS/namevaluehdfs://node1:8020/value/property!-- 指定hadoop数据的存储目录 --propertynamehadoop.tmp.dir/namevalue/home/hadoop/soft/hadoop-3.3.4/data/value/property
!-- 配置HDFS网页登录使用的静态用户为hadoopvalue里的hadoop代表用户 --propertynamehadoop.http.staticuser.user/namevaluehadoop/value/property
!-- 配置该hadoop(superUser)(第二个hadoop代表用户)允许通过代理访问的主机节点 --propertynamehadoop.proxyuser.hadoop.hosts/namevalue*/value/property!-- 配置该hadoop(superUser)(第二个hadoop代表用户)允许通过代理用户所属组 --propertynamehadoop.proxyuser.hadoop.groups/namevalue*/value/property!-- 配置该hadoop(superUser)(第二个hadoop代表用户)允许通过代理的用户--propertynamehadoop.proxyuser.hadoop.users/namevalue*/value/property 配置hdfs-site.xml
[hadoopnode1 hadoop]$ nano hdfs-site.xml
在configuration 和/configuration之间添加如下内容 !-- nn web端访问地址--propertynamedfs.namenode.http-address/namevaluenode1:9870/value/property!-- 2nn web端访问地址--propertynamedfs.namenode.secondary.http-address/namevaluenode1:9868/value/property!-- HDFS副本的数量1 --propertynamedfs.replication/namevalue1/value/property
注意node1为ECS的主机名称注意根据实际情况修改之后的配置文件node1也需要注意修改。 配置yarn-site.xml
[hadoopnode1 hadoop]$ nano yarn-site.xml
在configuration 和/configuration之间添加如下内容 !-- 指定MR走shuffle --propertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/property!-- 指定ResourceManager的地址--propertynameyarn.resourcemanager.hostname/namevaluenode1/value/property!-- 环境变量的继承 --propertynameyarn.nodemanager.env-whitelist/namevalueJAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME/value/property!--yarn单个容器允许分配的最大最小内存 --propertynameyarn.scheduler.minimum-allocation-mb/namevalue512/value/propertypropertynameyarn.scheduler.maximum-allocation-mb/namevalue4096/value/property!-- yarn容器允许管理的物理内存大小 --propertynameyarn.nodemanager.resource.memory-mb/namevalue4096/value/property!-- 关闭yarn对物理内存和虚拟内存的限制检查 --propertynameyarn.nodemanager.pmem-check-enabled/namevaluetrue/value/propertypropertynameyarn.nodemanager.vmem-check-enabled/namevaluefalse/value/property 配置mapred-site.xml
[hadoopnode1 hadoop]$ nano mapred-site.xml
在configuration 和/configuration之间添加如下内容 !-- 指定MapReduce程序运行在Yarn上 --propertynamemapreduce.framework.name/namevalueyarn/value/property 配置workers
[hadoopnode1 hadoop]$ nano workers
删除原有内容配置workers的主机名称内容如下
node1 配置历史服务器
[hadoopnode1 hadoop]$ nano mapred-site.xml
添加如下配置 !-- 历史服务器端地址 --propertynamemapreduce.jobhistory.address/namevaluenode1:10020/value/property
!-- 历史服务器web端地址 --propertynamemapreduce.jobhistory.webapp.address/namevaluenode1:19888/value/property
配置日志聚集
开启日志聚集功能应用运行完成以后将程序运行日志信息上传到HDFS系统上。
[hadoopnode1 hadoop]$ nano yarn-site.xml
添加如下功能 !-- 开启日志聚集功能 --propertynameyarn.log-aggregation-enable/namevaluetrue/value/property
!-- 设置日志聚集服务器地址 --property nameyarn.log.server.url/name valuehttp://node1:19888/jobhistory/logs/value/property
!-- 设置日志保留时间为7天 --propertynameyarn.log-aggregation.retain-seconds/namevalue604800/value/property 格式化
格式化hdfs文件系统
[hadoopnode1 hadoop]$ hdfs namenode -format
部分输出如下 看到successfully formatted.说明格式化成功。
注意格式化只能进行一次。 启动集群
[hadoopnode1 hadoop]$ start-dfs.sh
[hadoopnode1 hadoop]$ start-yarn.sh
查看进程
[hadoopnode1 hadoop]$ jps
16944 DataNode
18818 Jps
17413 ResourceManager
17144 SecondaryNameNode
17513 NodeManager
16844 NameNode
看到如上进程说明正常。
如果缺少进程
1.检查配置是否正确
2.查看对应$HADOOP_HOME/logs目录对应进程log文件的报错信息来解决。 放开Web UI端口
登录阿里云控制台在安全组放开9870、8088、9868端口 注意0.0.0.0/0代表所有ip均能访问不安全。可以只授权给特定ip例如自己当前电脑的公网ip地址一般情况下当前电脑的公网ip会变化变化后就需要重新查询当前电脑的公网ip再重新设置授权对象。 访问Web UI
浏览器访问
公网IP:9870 公网IP:8088 公网IP:9868 如果不想输入公网ip可以在windows的hosts文件做映射
公网IP node1 alinode
含义公网IP映射的主机为node1alinode为node1机器的别名。 使用node1或者alinode代替公网IP访问相关端口也能正常访问如下 完成enjoy it