赞
踩
1、各个模块分开启动/停止
(1)整体启动/停止HDFS
start-dfs.sh/stop-dfs.sh
(2)整体启动/停止YARN
start-yarn.sh/stop-yarn.sh
2、各个服务逐一启动/停止
(1)分别启动/停止HDFS组件
hdfs --daemon start/stop namenode/datanode/secondarynamenode
(2)启动/停止YARN
yarn --daemon start/stop resourcemanager/nodemanager
1)Hadoop启动/停止脚本
cd /bin vim myhadoop.sh
输入如下内容
#!/bin/bash if [ $# -lt 1 ] then echo "No Args Input..." exit ; fi case $1 in "start") echo " =================== 启动 hadoop集群 ===================" echo " --------------- 启动 hdfs ---------------" ssh zhaohui01 "/opt/hadoop-2.7.7/sbin/start-dfs.sh" echo " --------------- 启动 yarn ---------------" ssh zhaohui03 "/opt/hadoop-2.7.7/sbin/start-yarn.sh" echo " --------------- 启动 historyserver ---------------" ssh zhaohui02 "/opt/hadoop-2.7.7/bin/mapred --daemon start historyserver" ;; "stop") echo " =================== 关闭 hadoop集群 ===================" echo " --------------- 关闭 historyserver ---------------" ssh zhaohui02 "/opt/hadoop-2.7.7/bin/mapred --daemon stop historyserver" echo " --------------- 关闭 yarn ---------------" ssh zhaohui03 "/opt/hadoop-2.7.7/sbin/stop-yarn.sh" echo " --------------- 关闭 hdfs ---------------" ssh zhaohui02 "/opt/hadoop-2.7.7/sbin/stop-dfs.sh" ;; *) echo "Input Args Error..." ;; esac
Ø 保存后退出,然后赋予脚本执行权限
[root@zhaohui01 bin]# chmod +x myhadoop.sh
*2)查看三台服务器Java*进程脚本:jpsall
[root@zhaohui01 ~]#cd /bin [root@zhaohui01 bin]# vim jpsall
Ø 输入如下内容
#!/bin/bash for host in zhaohui01 zhaohui02 zhaohui03 do echo =============== $host =============== ssh $host jps done
保存后退出,然后赋予脚本执行权限
[root@zhaohui01 bin]# chmod +x jpsall
*3*)分发/bin目录,保证自定义脚本在三台机器上都可以使用*
[root@zhaohui01 ~]# xsync /bin/
1、常用端口号
hadoop 3.x
HDFS | NameNode | 内部常用端口:8020/9000/9820 |
---|---|---|
HDFS | NameNode | 对用户的查询端口:9870 |
Yarn查看任务运行情况:8088 | ||
历史服务器:19888 |
hadoop 2.x
HDFS | NameNode | 内部常用端口:8020/9000 |
---|---|---|
HDFS | NameNode | 对用户的查询端口:50070 |
Yarn查看任务运行情况:8088 | ||
历史服务器:19888 |
2、常用配置文件
3.x
core-site.xml hdfs-site.xml yarn-site.xml mapred.site.xml workers
2.x
core-site.xml hdfs-site.xml yarn-site.xml mapred.site.xml slaves
1)防火墙没关闭、或者没有启动YARN
INFO client.RMProxy: Connecting to ResourceManager at hadoop108/192.168.10.108:8032
2)主机名称配置错误
3)IP地址配置错误
4)ssh没有配置好
5)root用户和atguigu两个用户启动集群不统一
6)配置文件修改不细心
7)不识别主机名称
java.net.UnknownHostException: hadoop102: hadoop102
at java.net.InetAddress.getLocalHost(InetAddress.java:1475)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:146)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1287)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
解决办法:
(1)在/etc/hosts文件中添加192.168.10.102 hadoop102
(2)主机名称不要起hadoop hadoop000等特殊名称
8)DataNode和NameNode进程同时只能工作一个。
9)执行命令不生效,粘贴Word中命令时,遇到-和长–没区分开。导致命令失效
解决办法:尽量不要粘贴Word中代码。
10)jps发现进程已经没有,但是重新启动集群,提示进程已经开启。
原因是在Linux的根目录下/tmp目录中存在启动的进程临时文件,将集群相关进程删除掉,再重新启动集群。
11)jps不生效
原因:全局变量hadoop java没有生效。解决办法:需要source /etc/profile文件。
12)8088端口连接不上
[atguigu@hadoop102 桌面]$ cat /etc/hosts
注释掉如下代码
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 #::1 hadoop102
13)静态页面用户没有删除权限
core-site.xml中添加配置HDFS网页登录使用的静态用户
分发文件
重启服务
<configuration> <property> <!-- 设置Hadoop用来存储数据的目录,设置到Hadoop安装目 录中 --> <name>hadoop.tmp.dir</name> <value>/opt/hadoop-2.7.7/data</value> </property> <property> <!-- 设置HDFS使用的默认连接url --> <name>fs.defaultFS</name> <value>hdfs://zhaohui01:8020</value> </property> <!-- 配置HDFS网页登录页面使用的静态用户为xxx --> <property> <name>hadoop.http.staticuser.user</name> <value>xxx</value> </property> </configuration>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。