效果如下图:(利用sudo su切换到新用户,如需要密码则表示成功了。)
以下是将hadoop用户赋予了root权限(这里可以跳过直接进行下一步) $ sudo nano /etc/sudoers学习一下nano命令的使用,这里使用nano+文件进行编辑,步骤为Ctrl+O进行保存,然后确定路径和文件名无误后点击enter,Ctrl+X退出。
效果如图: 7. 验证成功后使用exit退出当前用户。
同样的操作将其他的密钥也分别发给其他服务器。 另一做法是用盒子去挨个接收密钥,接收完之后然后再分发给其他服务器。
注意:如需要是slave1的格式需要执行主机映射。
修改主机映射 操作如下: $ sudo nano /etc/hosts #修改映射如果是在master上操作的话ip1 必须是master 的内网ip,同样其他slave上也是一样,自己的主机上的IP要改成内网IP,其他的要用外网IP。 效果如下: 3. 验证免密登录
#1.通过localhost验证 $ ssh localhost $ exit #2.通过ip地址验证 $ ssh ip地址 #例如:$ ssh 192.168.23.105 $ exit #3.通过主机名称验证 $ ssh 主机名称 #例如:$ ssh master $ exit以下操作是基于你将这些文件存放到~/soft的操作
解压到当前文件夹并创建软链接方便后面使用。 $ tar -zxvf jdk-8u171-linux-x64.tar.gz $ ln -s jdk1.8.0_171 jdk #创建软链接 编辑环境变量 $ nano ~/.bashrc在bashrc后面添加环境变量,并保存退出。
export JAVA_HOME=~/soft/jdk export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 使环境变量生效。 $ source ~/.bashrc 验证配置成功。 $ java -version #显示版本号等信息表示成功。如下图:
效果如下:
查看JAVA_HOME的路径,拷贝后进行下一步。 $ echo $JAVA_HOME 查看JAVA_HOME的绝对路径 配置hadoop-env.sh环境 export JAVA_HOME=/home/hadoop/soft/jdk #若后面格式化的时候找不到.../java就需要添加到jre #export JAVA_HOME=home/hadoop/soft/jdk/jre 配置文件的修改,使用cd ${HADOOP_HOME}/etc/hadoop切换到配置文件所在目录。 core-site.xml文件的修改 $ nano core-site.xml在<configuration>标签中插入,修改好的代码如下:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:8020</value> <!-- 以上主机名要按实际情况修改 --> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/soft/hadoop/tmp</value> </property> </configuration>附截图一张:
hdfs-site.xml文件的修改如下: $ nano hdfs-site.xml在<configuration>标签中插入,修改好的代码如下:
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <!-- secondarynamenode主机名 --> <property> <name>dfs.namenode.secondary.http-address</name> <value>slave1:50090</value> </property> <!-- namenode的web访问主机名:端口号 --> <property> <name>dfs.namenode.http-address</name> <value>master:50070</value> </property> </configuration>附截图一张:
mapred-site.xml文件修改目录下没有对应的文件夹,但是有mapred-site.xml.template,可以将其重命名使用,但是建议另外cp一下。
$ cp mapred-site.xml.template mapred-site.xml #更名为mapred-site.xml,原有文件依然存在。 配置文件的修改如下: <configuration> <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.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>86400</value> </property> </configuration> 配置yarn-site.xml文件 $ nano yarn-site.xml配置文件的修改如下:
<property> <name>yarn.resourcemanager.hostname</name> <value>slave2</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>86400</value> </property> </configuration>注意:以上操作都需要在hadoop文件目下才能操作。
分发文件 $ scp -r hadoop-2.7.3 slave1:$PWD #拷贝的时间较长建议休息一下。 $ scp -r hadoop-2.7.3 slave2:$PWD 指定集群slaves配置 $ nano slaves添加一下内容
slave1 slave2 格式化Namenode需要谨慎操作 $ hdfs namenode -format格式化只需要进行一次,以后启动hadoop前不需要再次格式化。若后续启动有问题出现,需要执行格式化操作需要把所有服务先停止:stop-all.sh
格式成功后的界面如下:出现status 0表示成功,其他如status 1表示不成功。 温馨小提示——第一次可以跳过温馨提示
多次格式化:导致启动时缺少Datanode,再格式化后导致ID不符合两个我们需要去修改CID,保证name和data的CID一致。 操作如下(具体路径需要看自己的服务器仅供参考): 1、查看后复制:nano /home/hadoop/soft/hadoop-2.7.3/tmp/dfs/name/current/VERSION 2、修改data:nano /home/hadoop/soft/hadoop-2.7.3/tmp/dfs/data/current/VERSION 将name的CID------------>data的CID
启动集群 在master上使用如下命令启动HDFS $ sbin/start-dfs.sh 在slave2上使用如下命令启动YARN $ sbin/start-yarn.sh停止进程: $ sbin/start-yarn.sh # 在slave2上使用如下命令停止YARN $ sbin/stop-dfs.sh # 在master上使用如下命令停止HDFS
jps 通过web段访问端口 master公网IP:50070云服务器的端口需要开放才能访问。
slave2公网IP:8088端口
快乐是码起来的!
