搭建所用Hadoop java版本
hadoop-3.1.3.tar.gz ?
jdk-8u212-linux-x64.tar.gz
安装包链接:Hadoop及jdk安装包提取码:icn6
首先,我们先下载并且安装好虚拟机准备好三台机器
?
集群按以下要求修改相应配置文件
#1、安装网络调试工具
yum install vim -y
yum install wget -y
yum install net-tools -y
#2、设置开机禁用防火墙
systemctl stop firewalld
systemctl disable firewalld
#3、分别修改主机名称
vim /etc/hostname
#主机1:master
#主机2:salve1
#主机3:salve2
#4、修改域名映射
vim /etc/hosts
192.168.45.110 haster
192.168.45.111 salve1
192.168.45.112 salve2
#5、创建student用户
useradd stu
passwd stu 密码设置为123456
为用户stu添加sudo权限
vim /etc/sudoers
在# %wheel ALL=(ALL) NOPASSWD: ALL下面添加
stu ALL=(ALL) NOPASSWD:ALL
#6、创建文件夹用来放置我们的安装包
cd /opt
mkdir module/ software/
ls一下查看创建是否成功
我们将hadoop-3.1.3.tar.gz jdk-8u212-linux-x64.tar.gz安装包上传至/opt/software目录
接下来解压hadoop以及java安装包至module下
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module
#7,添加java,Hadoop环境变量
cd /etc/profile.d
vim my_env.sh //创建java环境变量
#JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile //重新加载profile 使配置生效
java -version // 查看java验证环境变量是否正确
同样在my_env.sh中添加hadoop环境变量
#HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
source /etc/profile //重新加载profile 使配置生效
hadoop version //验证环境变量是否正确
chown -R stu:stu?/opt? //给stu用户增加权限
切换至stu用户
su stu
#验证
echo $JAVA_HOME
echo $HADOOP_HOME
?#8设置ssh免密登录
cd ~mkdir .ssh ? ? ? ? # 创建ssh目录chmod 700 .ssh ? ? # 设置ssh目录权限
# stu账号,非root账号cd .sshssh-keygen -t rsa ? ? # 生成rsa公钥和私钥ssh-copy-id master ssh-copy-id salve1 ssh-copy-id salve2
//互相验证一下是否配置成功
#9,hadoop配置文件
##使用stu用户登录
##配置dfs与yarn
## 修改配置文件
cd $HADOOP_HOME/etc/hadoop
# 核心配置文件,指定NameNode的地址、指定hadoop数据的存储目录、配置HDFS网页登录使用的静态用户
vim core-site.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://master:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-3.1.3/data</value> </property> </configuration># yarn配置文件,
vim yarn-site.xml?
<configuration> <!-- Site specific YARN configuration properties --> <!-- 指定MR走shuffle --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定ResourceManager的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>salve1</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> <!-- 开启日志聚集功能 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 设置日志聚集服务器地址 --> <property> <name>yarn.log.server.url</name> <value>http://master:19888/jobhistory/logs</value> </property> <!-- 设置日志保留时间为 7 天 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> </configuration>#配置MapReduce配置文件
vim mapred-site.xml
<!-- 指定MapReduce程序运行在Yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!-- 历史服务器端地址 --> <property> <name>mapreduce.jobhistory.address</name> <value>salve1:10020</value> </property> <!-- 历史服务器 web 端地址 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>salve1:19888</value> </property># HDFS配置文件,指定NodeNode的http访问端口与SecondaryNameNode的http访问端口
vim hdfs-site.xml?
<configuration> <!-- NameNode web端访问地址--> <property> <name>dfs.namenode.http-address</name> <value>master:9870</value> </property> <!-- SecondaryNameNode web端访问地址--> <property> <name>dfs.namenode.secondary.http-address</name> <value>salve2:9868</value> </property> </configuration># 编辑workers文件
vim workers
master salve1 salve2到此我们的master主机已经配置完成。
#10,接下来我们写几个搭配集群的脚本
##创建xsync集群同步脚本、myhadoop.sh启动脚本、jpsall查看脚本(放到usr/local/bin目录下)
#xsync集群同步脚本
cd /usr/local/bin
sudo vim xsync
#!/bin/bash if [ $# -lt 1 ] then echo Not Enough Arguement! exit; fi for host in master salve1 salve2 do echo =================== $host ======================= for file in $@ do if [ -e $file ] then pdir=$(cd -P $(dirname $file);pwd) fname=$(basename $file) ssh $host "mkdir -p $pdir" rsync -av $pdir/$fname $host:$pdir else echo $file does not exist! fi done done#集群启动/结束脚本
sudo vim myhadoop.sh
#!/bin/bash if [ $# -lt 1 ] then echo "No Args Input..." exit ; fi case $1 in "start") echo " =================== 启动 hadoop 集群 ===================" echo " --------------- 启动 hdfs " ssh master "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh" echo " --------------- 启动 yarn " ssh salve1 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh" echo " --------------- 启动 historyserver " ssh master "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver" ;; "stop") echo " =================== 关闭 hadoop 集群 ===================" echo " --------------- 关闭 historyserver " ssh master "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver" echo " --------------- 关闭 yarn " ssh salve1 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh" echo " --------------- 关闭 hdfs " ssh master "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh" ;; *) echo "Input Args Error. " ;; esac#查看所有节点脚本
sudo vim jpsall?
#!/bin/bash for host in master salve1 salve2 do echo =============== $host =============== ssh $host jps done#到此脚本配置结束?。接下来我们利用xsync同步脚本 将master主机中所有的配置以及文件传至salve1 salve2
xsync ./ # 集群配置文件同步 (根目录下所有文件)
静等完成。然后我们查看下salve1 salve2 是否同步成功 先看下/optm目录下存放的jdk以及hadoop文件是否存在,在看下java版本和hadoop版本。然后hadoop的配置文件依次都查看下。
在salve1以及salve2分别都查看下
java -version
我的显示不存在? 这里我们去看一下java的环境变量是否配置
cd /etc/profile.d/
vim my_env.sh
发现没有配置java,Hadoop环境变量,添加路径
#JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin #HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbinsource my_env.sh?
再来查看下是否成功?
?
?所有配置都要检查一下 以防出现同步未及时。
接下来我们可以启动我们的集群了。
#11,集群启动~~~~~
# master上面操作
hdfs namenode -format ? # HDFS格式化
myhadoop.sh start 然后jpsall一下
?显然我们所有节点都已经提起来了。接下来打开浏览器输入自己的master主机IP后面加上:9870来验证一下是否搭建成功
到此? 我们的集群搭建完毕。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。 |
标签: #hadoop集群搭建 #Hadoop #jdk