Hadoop集群配置
一、前期准备
- 需要设置虚拟机三台名称如下:
master
worker1
worker2
注:
1.前期只用创建master虚拟机,并在其上进行java及hadoop的配置,配置完成后再进行克隆。
2.需要的所有安装包都放在master节点的/opt目录下,安装包统一解压到/usr/local/src目录下
3.以下所有操作均在root环境下进行。
二、创建虚拟机
在安装系统时需要注意root这里选允许SSH登录,其他默认即可。
- 在虚拟机中安装 lrzsz
yum -y install lrzsz
- cd至/opt
cd /opt
通过lrzsz拷贝本地hadoop与java进 /opt
- 使用命令ls或ll确认是否拷贝成功
或者
服务器下载至本地
**scp -r 远程服务器用户名@远程IP:**需要下载的文件路径(含文件名)本地存放文件路径
例如:scp –r aiot@192.168.100.206:~/Desktop/datasets ~/Desktop
本地上传至服务器
**scp -r 本地需上传文件路径(含文件名)远程服务器用户名@远程IP:**需要存放文件路径
例如:scp –r jdk-8u202-linux-x64.tar.gz user@192.168.110.133: /opt
#重启ssh服务
systemctl restart ssh
二、安装及环境变量配置
- 安装java
cd /opt
tar -zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/src
- 配置java环境变量
vim /etc/profile
#tip:在配置文件末尾追加
export JAVA_HOME=/usr/local/src/jdk1.8.0_202
export PATH=$PATH:$JAVA_HOME/bin
按 esc键 输入:wq!保存并退出
退出编辑之后在终端输入
source /etc/profile # 刷新环境变量
- 验证是否安装成功
java -version
- 安装hadoop
tar -zxvf hadoop-3.4.0.tar.gz -C /usr/local/src
cd /usr/local/src/hadoop-3.4.0/etc/hadoop
- 配置hadoop环境变量
vim /etc/profile
#tip:在文件末尾追加
export HADOOP_HOME=/usr/local/src/hadoop-3.4.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
- 验证是否安装成功
hadoop version
三、Hadoop五个文件的配置
Cd至配置目录
cd /usr/local/src/hadoop-3.4.0/etc/hadoop
- hadoop-env.sh
vim hadoop-env.sh
Go跳转到最后一行编辑
添加以下内容
export JAVA_HOME=/usr/local/src/jdk1.8.0_202
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
- core-site.xml
vim core-site.xml
<property><name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property> <property><name>hadoop.tmp.dir</name>
<value>/usr/local/src/hadoop-3.4.0/tmp</value>
</property>- hdfs-site.xml配置
首先创建data目录
mkdir -p /usr/local/src/hadoop-3.4.0/data
mkdir -p /usr/local/src/hadoop-3.4.0/logs
vim hdfs-site.xml
<property><name>dfs.replication</name>
<value>2</value>
</property> <property><name>dfs.namenode.name.dir</name>
<value>/usr/local/src/hadoop-3.4.0/name</value>
</property> <property><name>dfs.datanode.data.dir</name>
<value>/usr/local/src/hadoop-3.4.0/data</value>
</property> <property><name>dfs.permissions.enalbed</name>
<value>false</value>
</property> <property><name>dfs.namenode.http-address</name>
<value>master:9870</value>
</property> <property><name>dfs.namenode.secondary.http-address</name>
<value>master:9868</value>
</property>- yarn-site.xml配置
vim yarn-site.xml
<property><name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property> <property><name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property> <property><name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>- mapred-site.xml配置
vim mapred-site.xml
<property><name>mapreduce.framework.name</name>
<value>yarn</value>
</property> <property><name>mapreduce.application.classpath</name>
<value>/usr/local/src/hadoop-3.4.0/share/hadoop/mapreduce/:/usr/local/src/hadoop-3.4.0/share/hadoop/mapreduce/lib/</value>
</property>- workers配置
vim workers
#后面追加如下内容
master
worker1
worker2
- 关闭防火墙
systemctl stop firewalld.service #关闭防火墙命令
firewall-cmd --state #关闭防火墙后,看看防火墙状态是否关闭成功
出现:not running 即代表关闭
四、克隆master与附属机器配置
克隆master为worker1和worker2
- 更改节点名称 每一台机器运行各自的节点名称
hostnamectl set-hostname master
hostnamectl set-hostname worker1
hostnamectl set-hostname worker2
更新
hostname
- Hosts修改
查看本机ip地址
ifconfig
master主机
vim /etc/hosts
删除其他在/etc/hosts的末尾添加
192.168.56.2 master
192.168.181.2 worker1
192.168.237.2 worker2
发送
scp /etc/hosts root@worker1:/etc/hosts
scp /etc/hosts root@worker2:/etc/hosts
- 配置免密登录
ssh-keygen -t rsa
- 公钥复制到各个节点,第一次登陆会让你输入密码
ssh-keygen
ssh-copy-id master
ssh-copy-id worker1
ssh-copy-id worker2
exit # 回到master节点
- 同步时间(可选)
yum install -y chrony
vim /etc/chrony.conf
注释第三行原有的时间服务器地址,添加阿里云的时间服务器地址
阿里云提供了7个NTP时间服务器也就是Internet时间同步服务器地址
server ntp1.aliyun.com
4)重启网络时间服务chrony,并设置服务后台运行
#重启时间服务
systemctl restart chronyd.service
#设置时间同步服务开机启动
systemctl enable chronyd.service
通过以上工作基本配置完成。
#在namenode主机上进行(一般是在master上)
格式化(只能进行单次)
hdfs namenode -format
- 启动集群
cd /usr/local/src/hadoop-3.4.0/sbin
#全部发送
start-dfs.sh
start-yarn.sh
或者一次全开
#在master主机上执行
start-all.sh
- 关闭集群
stop-dfs.sh
stop-yarn.sh
或者一次全开
stop-all.sh
- Web UI页面
HDFS集群:master:9870/
YARN集群: master:8088/
五、测试
cd /home/master/桌面
vim words.txt
添加以下内容,随意添加
hadoop hdfs hdfs hadoop
mapreduce mapreduce hadoop
hdfs hadoop yarn yarn
在hdfs上创建文件夹
hdfs dfs -mkdir /input /output
把words.txt上传到hdfs的input文件夹中
hdfs dfs -put words.txt /input
运行wordcount
hadoop jar /usr/local/src/hadoop-3.4.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.0.jar wordcount /input/ /output1
查看结果
#hadoop dfs -ls /output
hdfs dfs -ls /output1
#hadoop dfs -cat /output/part-r-00000
hdfs dfs -cat /output1/part-r-00000
#jps查看集群启动情况
hadoop fs -rm /output
#慎用
重新格式化
1、停止集群
stop-all.sh
2、删除所有节点在hdfs中配置的data目录(即在core-site.xml中配置的hadoop.tmp.dir对应文件件)下面的所有数据;
rm -rf hadoop/cloud
3、重新格式化namenode(切换到hadoop目录下的bin目录下)
hdfs namenode -format
4、重新启动hadoop集群(切换到hadoop目录下的sbin目录下)
start-all.sh
使用hdfs dfsadmin -report命令查看磁盘使用情况
文件权限修改sudo chmod 777 文件名
上传至桌面
cd /home/master/桌面/hadoop
cp -r hadoop-env.sh core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml workers /usr/local/src/hadoop-3.4.0/etc/hadoop
版权归原作者 一只特立独行的大蜗牛 所有, 如有侵权,请联系我们删除。