1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 服务器部署——配置hadoop集群

服务器部署——配置hadoop集群

时间:2022-01-23 20:40:41

相关推荐

服务器部署——配置hadoop集群

1、下载hadoop

这里搭建最新的hadoop3.3.0版本的集群,进入hadoop官网/releases.html找到要下载的版本,我这里选择的是当前最新的3.3.0版本。进入下载页面,选择清华大学的镜像(速度快)进行下载。

wget https://mirrors.tuna./apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

2、安装Java

hadoop是在java环境下运行的,因此在正式安装hadoop之前,需要提前装上java。有需要的可以看我另外一篇博客/weixin_44832837/article/details/110808500

3、hadoop安装

因为下载的是编译版本,所以解压之后,就算安装好了。但是此时的hadoop还不能用,需要我们进行一些配置。

3.1 选择安装路径

这个可以自主决定,我这里安装在/opt/hadoop目录下。

以下命令使用普通用户执行

创建安装目录

mkdir /opt/hadoop

复制下载的文件到安装目录

cp hadoop-3.3.0.tar.gz /opt/hadoop/

解压

tar -xzvf /opt/hadoop/hadoop-3.3.0.tar.gz

3.2 创建dfs相关目录

cd /opt/hadoop/hadoop-3.3.0/mkdir dfsmkdir dfs/namemkdir dfs/datamkdir dfs/namesecondary

3.3 配置hadoop运行时环境

进行hadoop安装路径下的etc/hadoop

cd /opt/hadoop/hadoop-3.3.0/etc/hadoop

3.3.1 core-site.xml配置

vim core-site.xml

configuration标签内加入以下内容,master是你的主机名,根据你的情况调整。目前不一致的话也可以使用master主机名配置,后面再修改主机名为master即可。

<property><name>fs.defaultFS</name><value>hdfs://master:9000</value><description>NameNode URI.</description></property><property><name>io.file.buffer.size</name><value>131072</value><description>Size of read/write buffer used inSequenceFiles.</description></property>

3.3.2 hdfs-site.xml配置

vim hdfs-site.xml

同样在configuration标签内加入以下内容,slave11是另外一个结点的主机名。dfs相关属性的配置与3.2创建的dfs目录相关

<property><name>dfs.namenode.secondary.http-address</name><value>slave11:50090</value><description>The secondary namenode http server address andport.</description></property><property><name>dfs.namenode.name.dir</name><!--对应创建的name路径--><value>/opt/hadoop/hadoop-3.3.0/dfs/name</value><description>Path on the local filesystem where the NameNodestores the namespace and transactions logs persistently.</description></property><property><name>dfs.datanode.data.dir</name><!--对应创建的data路径--><value>/opt/hadoop/hadoop-3.3.0/dfs/data</value><description>Comma separated list of paths on the local filesystemof a DataNode where it should store its blocks.</description></property><property><name>dfs.namenode.checkpoint.dir</name><!--对应创建的namesecondary路径--><value>/opt/hadoop/hadoop-3.3.0/dfs/namesecondary</value><description>Determines where on the local filesystem the DFSsecondary name node should store the temporary images to merge. If this is acomma-delimited list of directories then the image is replicated in all of thedirectories for redundancy.</description></property><property><name>dfs.replication</name><value>2</value></property>

3.3.3 mapred-site.xml配置

vim mapred-site.xml

同样在configuration标签内加入以下内容,master是主机名mapreduce.application.classpath的value的值与安装路径相关。

<property><name>mapreduce.framework.name</name><value>yarn</value><description>Theruntime framework for executing MapReduce jobs. Can be one of local, classic oryarn.</description></property><property><name>mapreduce.jobhistory.address</name><!--jobhistory运行的主机和端口--><value>master:10020</value><description>MapReduce JobHistoryServer IPC host:port</description></property><property><name>mapreduce.jobhistory.webapp.address</name><value>master:19888</value><description>MapReduce JobHistoryServer Web UI host:port</description></property><property><name>mapreduce.application.classpath</name><value>/opt/hadoop/hadoop-3.3.0/etc/hadoop,/opt/hadoop/hadoop-3.3.0/share/hadoop/common/*,/opt/hadoop/hadoop-3.3.0/share/hadoop/common/lib/*,/opt/hadoop/hadoop-3.3.0/share/hadoop/hdfs/*,/opt/hadoop/hadoop-3.3.0/share/hadoop/hdfs/lib/*,/opt/hadoop/hadoop-3.3.0/share/hadoop/mapreduce/*,/opt/hadoop/hadoop-3.3.0/share/hadoop/mapreduce/lib/*,/opt/hadoop/hadoop-3.3.0/share/hadoop/yarn/*,/opt/hadoop/hadoop-3.3.0/share/hadoop/yarn/lib/*</value></property>

3.3.4 yarn-site.xml配置

vim yarn-site.xml

同样在configuration标签内加入以下内容,master是主机名

<property><name>yarn.resourcemanager.hostname</name><value>master</value><description>The hostname of theRM.</description></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value><description>Shuffle service that needs to be set for Map Reduceapplications.</description></property>

3.3.5 hadoop-env.sh配置

vim hadoop-env.sh

为了方便查看,我们统一在文件的末尾添加

export JAVA_HOME=/usr/local/java/jdk1.8.0_271export HDFS_DATANODE_USER=root# old export HADOOP_SECURE_DN_USER=root#export HDFS_DATANODE_SECURE_USER=rootexport HDFS_NAMENODE_USER=rootexport HDFS_SECONDARYNAMENODE_USER=rootexport YARN_RESOURCEMANAGER_USER=rootexport YARN_NODEMANAGER_USER=root

JAVA_HOME是java的安装路径,根据具体java安装路径决定。

3.3.6 workers

vim workers

加入以下两行

slave11slave12

3.3.7 添加环境变量

执行下面的操作需要root权限

为了方便执行hadoop命令,需要进行环境变量的配置。

vim /etc/profile

添加以下内容在末尾

export HADOOP_HOME=/home/hadoop/hadoop-3.3.0export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

使修改生效

source /etc/profile

4、主机相关配置

执行下面的操作需要root权限

4.1 修改主机名

其中hostname是要修改的主机名,这里的master对应上面hadoop配置中的master

hostnamectl set-hostname master

4.2 配置hosts文件

vim /etc/hosts

添加下面内容,注意前面的ip是名称对应主机的ip地址,比如,当前这台主机名称为master,ip为192.168.20.160

192.168.20.160 master192.168.20.161 slave11192.168.20.162 slave12

4.3 固定ip

如果有图形界面,可以用图形界面操作。如果没有可以按照下面步骤,效果相同。

vim /etc/sysconfig/network-scripts/ifcfg-ens33

以下是我的文件中的所有内容,注意其中有注释的项目,关键是BOOTPROTOIPADDRGATEWAYDNS1

TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=none #设置成none取消DCHP获取ipDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=c33c20d2-7a7d-4196-9c0a-15fa53f055d6DEVICE=ens33ONBOOT=yes # 开机启动IPADDR=192.168.20.160 # 你要固定的的ip,hosts文件中的配置与之对应PREFIX=24GATEWAY=192.168.20.2 # 你的网关DNS1=114.114.114.114 # 114的DNS,可以用这个PEERDNS=no

4.4 配置ssh无密码登录

请在root用户下执行以下命令

4.4.1 生成ssh公钥和密钥

ssh-keygen -t rsa

期间可以输入密码,这里不需要,所以直接回车。

4.4.2 添加公钥到授权文件

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

4.4.3 修改authorized_key权限

chmod 600 ~/.ssh/authorized_keys

4.4.4 测试登录

ssh master

第一次登录需要生成一些配置文件,输入yes再回车。

5、构建集群

既然是hadoop集群,当然不能只有一台主机。我们将上面配置好的master主机进行克隆。得到两台新的主机。

5.1 克隆

使用vmware虚拟机进行完整的克隆,克隆出两个主机,分别命名slave11,slave12(与上面hosts中配置的相同哦)。

5.2 修改网卡地址

克隆出来的主机的网卡mac地址是完全相同的,这显然是不对的,我们需要使用vmware重置一下两台克隆主机的mac地址。

5.2 修改克隆主机ip

参照4.3中的方法。因为主机是克隆的,因此其它都已经配置好,只需要修改IPADDR

vim /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=192.168.20.161 # 你要固定的的ip

注意IPADDR与hosts文件相对应分别对两台主机slave11、slave12修改hosts文件内容

192.168.20.160 master192.168.20.161 slave11192.168.20.162 slave12

5.3 修改主机名

hostnamectl set-hostname hostname

其中hostname为你要修改的主机名,在slave11上执行

hostnamectl set-hostname slave11

在slave12上执行

hostnamectl set-hostname slave12

5.4 重新配置ssh

在slave11、slave12中使用root用户

重复4.4中的步骤

5.5 ssh连接三台主机

ssh-copy-id 命令将本机的公钥复制到其它主机,这样就能够实现无密码登录了。

在master主机,执行

ssh-copy-id slave11

再执行

ssh-copy-id slave12

在master上使用ssh以root用户身份访问salva11主机

ssh root@slave11

退出slave11主机,回到master主机

exit

访问salva12主机

ssh root@slave12

注意红色箭头位置,代表主机的变换

6、启动hadoop

start-all.sh

mater主机中访问

http://master:8088/cluster

在宿主机中访问

http://192.168.20.160:8088/

7、总结

hadoop的功能十分的强大,其安装也是有点复杂。需要细心与耐心。上面的安装中,因为是开发环境,因此配置了root用户运行hadoop。如果想要用写其它用户运行的话,主要是hadoop.env.sh中

export HDFS_DATANODE_USER=root# old export HADOOP_SECURE_DN_USER=root#export HDFS_DATANODE_SECURE_USER=rootexport HDFS_NAMENODE_USER=rootexport HDFS_SECONDARYNAMENODE_USER=rootexport YARN_RESOURCEMANAGER_USER=rootexport YARN_NODEMANAGER_USER=root

root改成你想要的用户。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。