目录
- hadoop完全分布式环境搭建
- 1.集群规划
- 2.机器上需要配置的内容
- 1)3台虚拟机上 分别配置免密登录,不会的前面的文章有讲到
- 2)3台电脑上分别配置jdk和hadoop的环境变量,这个前面的文章也有提到
- 3)每台电脑上需要分别配置hadoop解压包下的 etc下的配置文件
- core-site.xml
- hdfs-site.xml
- hadoop-env.sh
- yarn-site.xml
- mapred-site.xml
- yarn-env.sh、mapred-env.sh
- slaves
- 3.scp文件传输
- 4.格式化Namenode
- 5.启动集群得命令
- 6.测试自带官方wordcount案例
- 随意上传一个文本文件
- 执行命令:
- 查看结果:
- 7.Hadoop启动和停止命令:
hadoop完全分布式环境搭建
1.集群规划
bigdata121 | bigdata122 | bigdata123 | |
HDFS | NameNode SecondaryNameNode DataNode | DataNode | DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
准备3台虚拟机,bigdata121,bigdata122,bigdata123。 | |||
每台机器上需要部署的内容如上面的表格。 |
2.机器上需要配置的内容
1)3台虚拟机上 分别配置免密登录,不会的前面的文章有讲到
2)3台电脑上分别配置jdk和hadoop的环境变量,这个前面的文章也有提到
3)每台电脑上需要分别配置hadoop解压包下的 etc下的配置文件
但是每个机器上配置的略有不同。
core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://主机名1:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.X.X/data/tmp</value>
</property>
hdfs-site.xml
<!--数据冗余数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--secondary的地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>主机名1:50090</value>
</property>
<!--关闭权限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
hadoop-env.sh
(分别在这些的文件中添加下面的路径)
export JAVA_HOME=/opt/module/jdk1.8.0_144(注:是自己安装的路径)
yarn-site.xml
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>主机名1</value>
</property>
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天(秒) -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
mapred-site.xml
<!-- 指定mr运行在yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--历史服务器的地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>主机名1:10020</value>
</property>
<!--历史服务器页面的地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>主机名1:19888</value>
</property>
yarn-env.sh、mapred-env.sh
(分别在这些的文件中添加下面的路径)
export JAVA_HOME=/opt/module/jdk1.8.0_144(注:是自己安装的路径)
slaves
bigdata111、bigdata112、bigdata113(自己设置的主机名)
3.scp文件传输
实现两台远程机器之间的文件传输(bigdata122主机文件拷贝到bigdata123主机上)
scp -r [文件]
4.格式化Namenode
hdfs namenode -format
5.启动集群得命令
Namenode的主节点:sbin/start-dfs.sh
Yarn的主节点:sbin/stop-yarn.sh
注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。
6.测试自带官方wordcount案例
随意上传一个文本文件
上传命令:hadoop fs -put 文件名 /
执行命令:
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.X.X.jar wordcount /入 /出
hadoop jar 路径的jar包 全类名 输入路径 输出路径
查看结果:
hadoop fs -cat 路径
7.Hadoop启动和停止命令:
以下命令都在$HADOOP_HOME/sbin下,如果直接使用,记得配置环境变量
启动/停止历史服务器 | mr-jobhistory-daemon.sh start|stop historyserver |
启动/停止总资源管理器 | yarn-daemon.sh start|stop resourcemanager |
启动/停止节点管理器 | yarn-daemon.sh start|stop nodemanager |
启动/停止 NN 和 DN | start|stop-dfs.sh |
启动/停止 RN 和 NM | start|stop-yarn.sh |
启动/停止 NN、DN、RN、NM | start|stop-all.sh |
启动/停止 NN | hadoop-daemon.sh start|stop namenode |
启动/停止 DN | hadoop-daemon.sh start|stop datanode |