hadoop完全分布式搭建 centos 7.0
一. Hadoop通用部分
提前准备
jdk8
1.1 环境变量
1.java环境变量
jdk版本:jdk1.8.0_191
#....对应自己的jdk路径
export JAVA_HOME=/....
export PATH=$PATH:$JAVA_HOME/bin
2.hadoop环境变量
hadoop版本:hadoop3.1.2,因为是在学习阶段,就使用了较高的版本
#....对应自己的hadoop路径
export HADOOP_HOME=/....
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#指定native路径,
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
1.2 文件配置
文件配置对于每一台主机都要配置一样的
1.2.1 集群连接文件配置
1.workers
在3.1.2版本的hadoop中,这个文件为workers,其他3版本估计一样,2版本为slaves文件,因为这个文件单一先写出来
#你的节点名称
bigdata111
bigdata112
bigdata113
1.2.2 env文件
env文件配置都是只需要增加一条JAVA_HOME环境变量,总共需要配3个文件
1.hadoop-env.sh
2.mapred-env.sh
3.yarn-env.sh
export JAVA_HOME=/....
1.2.3 site文件配置
!不要傻傻的把configuration复制进去
- core-site.xml HDFS部分
<configuration>
<!-- 设置NameNode,DataNode目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.2/tmp</value>
</property>
<!-- 设置hdfs地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata111:9000</value>
</property>
</configuration>
- hdfs-site.xml HDFS部分
<configuration>
<!--数据备份数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--设置hdfs NameNode网页地址-->
<property>
<name>dfs.http.address</name>
<value>bigdata111:50070</value>
</property>
<!--设置hdfs SecondaryNameNode网页地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigdata111:50090</value>
</property>
<!--多name配置,这个不是HA高可用,只是将name分成多个文件夹-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///${hadoop.tmp.dir}/dfs/name1,file:///${hadoop.tmp.dir}/dfs/name2</value>
</property>
<!--多data配置-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///${hadoop.tmp.dir}/dfs/data1,file:///${hadoop.tmp.dir}/dfs/data2</value>
</property>
<!--关闭权限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
3.mapred-site.xml YARN部分
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--指定hadoop_home,设置3个变量,这一步是我提交yarn任务的时候有问题后面加配的-->
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!--历史服务器地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>bigdata111:10020</value>
</property>
<!--历史服务器页面地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>bigdata111:19888</value>
</property>
</configuration>
- yarn-site.xml YARN部分
<configuration>
<!-- 设置yarn主节点在哪个主机上-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata111</value>
</property>
<!-- 固定配置,使用shuffle进行mapreduce运算-->
<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>604800</value>
</property>
</configuration>
启动Hadoop集群
各个服务组件逐一启动
#分别启动hdfs组件
hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
#分别启动yarn组件
yarn-daemon.sh start|stop resourcemanager|nodemanager
各个模块分开启动(配置ssh是前提)常用
#整体启动/停止hdfs
start-dfs.sh
stop-dfs.sh
#整体启动/停止yarn
start-yarn.sh
stop-yarn.sh
全部启动(不建议使用)
start-all.sh
stop-all.sh