hadoop三节点搭建
test102 K8s-node hdc-data3
1、准备工作
确保三台虚拟机都安装了JDK
三台机子互相可以ping通
2、上传hadoop安装包到虚拟机,并解压,修改文件夹名字
tar -zxvf hadpXXXX
3、打开hosts文件,新增三条IP与主机的映射关系
vim /etc/hostname ---查看主机名
vim /etc/hosts
192.168.0.102 test102
192.168.0.103 K8s-node
192.168.0.104 hdc-data3
4、SSH无密码登录节点
----必须要让hadoopWyc节点可以SSH无密码登录到各个hadoopWyc2和hadoopWyc3节点上。首先生成hadoopWyc节点公钥,如果之前已经生成,必须删除,重新生成一 次。在test102上进行下面操作:
必须要让主节点可以SSH无密码登录到两个从节点
cd ~/.ssh --查看主节点公钥
rm ./id_rsa* --删除之前的公钥
ssh-keygen -t rsa --遇到信息一直回车
---再让hadoopWyc节点能够无密码SSH登录本机,在hadoopWyc节点上执行下面命令:
cat ./id_rsa.pub >> ./authorized_keys
---使用下面命令进行测试:
ssh test102 --测试
---其中scp是secure copy的简写,在Linux中用于远程拷贝。执行scp时会要求输入K8s-node&hdc-data3用户的密码,输入完成后会显示传输完毕:
scp ~/.ssh/id_rsa.pub K8s-node:/home/wyc --发送配置好的文件到其他两台虚拟机---/home/wyc---可以自己创建一个文件夹后面会删除
scp ~/.ssh/id_rsa.pub hds-data3:/home/wyc
---接着在K8s-node节点上,将接收到的公钥加入授权:
mkdir ~/.ssh # 如果不存在该文件夹,先创建----可以先查看是否有 cd ~/.ssh
cat /home/wyc/id_rsa.pub >> ~/.ssh/authorized_keys
rm /home/wyc/id_rsa.pub # 加完就删除
---在hdc-data3节点中也执行以上的命令。执行完了之后,在test102节点上就可以无密码登录K8s-node&hdc-data3节点,在test102节点上执行下面命令:
ssh k8s-node
5、配置集群环境
1、/usr/local/hadoop/hadoop/etc/hadoop该目录下需要修改的配置文件workers、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml
2、修改workeres文件---把三台主机名添加进去
vim workers
hadoopWyc
hadoopWyc2
hadoopWyc3
3、修改core-site.xml文件
---fs.defaultFS:指定namenode的hdfs协议的文件系统通信地址,可以指定一个主机+端口
---hadoop.tmp.dir:hadoop集群在工作时存储的一些临时文件存放的目录
vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://test102:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
4、修改hdfs-site.xml文件
---dfs.secondary.http.address:secondarynamenode运行节点的信息,应该和namenode存放在不同节点
---dfs.repliction:hdfs的副本数设置,默认为3
---dfs.namenode.name.dir:namenode数据的存放位置,元数据存放位置
---dfs.datanode.data.dir:datanode数据的存放位置,block块存放的位置
vim hdfs-site.xml
###
需要注意的是tmp/dfs/data
tmp/dfs/name
需要自己创建文件夹----三台虚拟机都需要
###
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>K8s-node:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
5、修改mapred-site.xml文件
---mapreduce.framework.name:指定mapreduce框架为yarn方式
---mapreduce.jobhistory.address:指定历史服务器的地址和端口
---mapreduce.jobhistory.webapp.address:查看历史服务器已经运行完的Mapreduce作业记录的web地址,需要启动该服务才行
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>test102:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>test102:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
</configuration>
6、修改yarn-site.xml文件
vim yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>test102</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
6、检查hadoop环境变量
1、可能出现的错误
hadoop java环境变量问题
--查看java jdk环境变量
vim /etc/profile
---查看hadoop里面的javaHome环境变量要和上面的一直
---最好三台虚拟机都检查一下---有可能其他的环境变量不一样
cd /usr/local/hadoop/hadoop/etc/hadoop
vim hadoop-env.sh
2、可能出现的错误 --放在前面
--在执行start.yarn.sh时会报--ERROR: Attempting to operate on yarn resourcemanager as root
--cd /usr/local/hadoop/hadoop/sbin
vim start-dfs.sh
---在start-dfs.sh和stop-dfs.sh文件的顶部添加以下参数:
---检查是否有如下配置--没有加上
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
---在start-yarn.sh和stop-yarn.sh文件的顶部添加以下参数:
---vim start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
7、分发文件----修改上面的五个文件后,将test102节点上的hadoop文件复制到各个节点上,在test102上执行下面命令
cd /usr/local
tar -zcf ~/hadoop.tar.gz hadoop # 先压缩再复制
cd ~
scp hadoop.tar.gz K8s-node:/usr/local/hadoop
scp hadoop.tar.gz hdc-data3:/usr/local/hadoop
--解压
tar -zxf /usr/local/hadoop/hadoop.tar.gz -C /usr/local/hadoop
//或者不压缩直接发送文件
scp -r hadoop.tar.gz K8s-node:/usr/local/hadoop
scp -r hadoop.tar.gz hdc-data3:/usr/local/hadoop
8、初始化
cd /usr/local/hadoop
./bin/hdfs namenode -format
9、Hadoop集群启动
在test02上执行
cd /usr/local/hadoop
./sbin/start-dfs.sh
./sbin/start-yarn.sh
./sbin/mr-jobhistory-daemon.sh start historyserver
#这样我们就可以在相应机器的19888端口上打开历史服务器的WEB UI界面。可以查看已经运行完的作业情况
---或者http://192.168.0.102:8088
Hadoop集群启动
在test102上执行
cd /usr/local/hadoop
./sbin/start-dfs.sh
./sbin/start-yarn.sh
./sbin/mr-jobhistory-daemon.sh start historyserver
#这样我们就可以在相应机器的19888端口上打开历史服务器的WEB UI界面。可以查看已经运行完的作业情况
—或者http://192.168.0.102:8088