该教程部署的版本为Hadoop2.7.7
用户名:amax
集群机器:
node01:master
node05~node10:slave节点
大致流程
- 选定一个节点作为master(本次部署使用node01作为master,node05~10作为slave节点)
- 配置节点间可以免密ssh,以及免密ssh到localhost
- 在所有节点安装配置java环境
- 在master配置hadoop,然后将配置好的hadoop包复制到其他slave节点
- 在master开启hadoop
免密ssh
一般情况下,.ssh文件的路径为~/.ssh
- 首先生成公钥和私钥:```ssh-keygen -trsa``。
- authorized_keys:保存远程登录的公钥。
- id_rsa:私钥
- id_rsa.pub:公钥
- 将node01的id_rsa.pub加入node02的authorized_keys文件,则node01可以免密ssh到node02
cat id_rsa.pub >> authorized_keys
scp authorized_keys node02:~/.ssh/
:将当前节点的authorized复制到node02节点的~/.ssh目录下,如果配置各节点都可以免密ssh,直接使用cat将所有节点的id_rsa.pub(包括master的)加入到master的authorized_keys文件中,再将该文件复制给其他节点即可。
附录:
- scp,cp如果是复制目录,需要加选项-r,文件则不需要
安装配置java
部署hadoop前,服务器集群已经安装好java,版本为java-1.8.0-openjdk-amd64。路径为/usr/lib/jvm/java-1.8.0-openjdk-amd64
如果没有安装可以在master安装后,使用scp复制到其他节点
安装之后注意为每个节点设置环境变量
- 进入.bashrc文件添加环境变量
vi ~/.bashrc //修改.bashrc文件添加环境变量
- 进入之后,增加下面内容
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 //注意修改自己安装java的路径
export PATH=$PATH:JAVA_HOME/bin:JAVA_HOME/bin
- 最后使用source ~/.bashrc让环境变量生效,否则则需要重启才生效
~/.bashrc
附录:
- echo $JAVA_HOME:查看环境变量JAVA_HONE的路径
- export查看系统所有的环境变量
- export $JAVA_HOME=‘java路径’:可以临时设置JAVA_HOME环境变量,立刻生效,可用于测试。
安装配置Hadoop
-
下载Hadoop安装包,本次操作下载的目录为~/hadoop-2.7.7.tar.gz,解压到/usr/local/
-
在master执行下列操作
sudo tar -zxf ~/hadoop-2.7.7.tar.gz -C /usr/local/ #解压到/usr/local/ cd /usr/local/ sudo mv hadoop-2.7.7 hadoop #修改文件夹名字 sudo chown -R amax hadoop #amax为用户名
-
添加以下环境变量(注意:必须为所有节点添加)。添加方法如上
export HADOOP_HOME=/usr/local/hadoop #注意更改为自己的路径 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
-
进入/usr/local/hadoop/etc/hadoop/,修改以下配置文件
- 修改hadoop-env.sh文件,配置java路径
- 修改yarn-env.sh文件,配置java路径
- 修改core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://node01:9000</value> #注意将node01节点修改为自己的master节点名称 </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> </configuration>
- 修改hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration>
- 修改mapred-site.xml(修改mapred-site.xml.template,后使用mv命令修改名字)
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
- 修改yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>node01</value> #注意将node01修改为自己的master节点 </property> </configuration>
- 修改slaves文件,将自己的slave节点名字填下去
node05 node06 node07 node08 node09 node10
-
配置完毕后,将配置好的hadoop文件打包压缩后,复制给其他slave节点
cd /usr/local/ rm -r hadoop/tmp rm -r hadoop/log/* tar -zcf ~/hadoop.master.tar.gz hadoop #将hadoop打包压缩为hadoop.master.tar.gz,放在~/下 scp ~/hadoop.master.tar.gz node05:~/ ...
-
在slave节点
sudo rm -r /usr/local/hadoop sudo tar -zxf hadoop.master.tar.gz /usr/local/hadoop sudo chown -R amax /usr/local/hadoop
附录:
- mv
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j3M5w2nJ-1605012556204)(6D09D86AF7F14C1FAB9AC3180DD6A483)]- 如果source和dest都是文件,则是改名
- 如果source是文件,dest是目录,则是移动到dest目录下
- 如果dest是已存在的目录,则是将source移动到dest下。否则为改名
- tar
- -zxf:解压
- -zcf:压缩
启动集群
-
进入hadoop
-
对namenode进行格式化
bin/hdfs namenode -format
-
启动所有节点
sbin/start-all.sh
-
jps查看java进程
正确的话,在 Master 节点上可以看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 进程。在 Slave 节点可以看到 DataNode 和 NodeManager 进程