hadoop完全分布式环境搭建
1.集群规划
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下,如果直接使用,记得配置环境变量