Hadoop-全分布模式
作者:互联网
准备工作
操作系统:Linux(以CentOS为例,一台master,三台slvae)
JDK版本:jdk-1.8.1_212
Hadoop版本:hadoop-2.8.3
步骤(使用hadoop用户,各节点同时进行)
1.修改hadoop-env.sh配置文件
2.设置Hadoop环境变量
sudo vim /etc/profile
添加如下配置
export HADOOP_HOME=/usr/local/hadoop-2.8.3
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_PREFIX=$HADOOP_HOME
export CLASSPATH=$CLASSPATH:.:$HADOOP_HOME/bin
使配置生效
source /etc/profile
2.指定slave节点(该步骤只在master节点操作)
vim /usr/local/hadoop-2.8.3/etc/hadoop/slaves
删除localhost
,添加
slave1
slave2
slave3
3.修改/etc/hadoop/core-site.xml配置文件
vim /usr/local/hadoop-2.8.3/etc/hadoop/core-site.xml
在标签中添加如下配置
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<!--master:/etc/hosts 配置的域名 master -->
<value>hdfs://master:9000/</value>
</property>
</configuration>
4.修改/etc/hadoop/hdfs-site.xml配置文件
vim /usr/local/hadoop-2.8.3/etc/hadoop/hdfs-site.xml
在标签中添加如下配置
<configuration>
<!--指定hdfs中namenode的存储位置-->
<property>
<name>dfs.namenode.name.dir</name>
<!-- value 设置为/usr/local/hadoop/dfs/namenode,启动时会有warn信息-->
<value>file:///usr/local/hadoop-2.8.3/dfs/namenode</value>
</property>
<!--指定hdfs中datanode的存储位置-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop-2.8.3/dfs/datanode</value>
</property>
<!--指定hdfs保存数据的副本数量-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--配置namenode.secondary地址,如默认的50070被占用,可以换成50071-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50071</value>
</property>
</configuration>
5.添加/etc/hadoop/mapraduce-site.xml配置文件
hadoop-2.8.3/etc/hadoop文件夹中没有mapraduce-site.xml文件,需要将mapraduce-site.xml.template文件复制并更名为mapraduce-site.xml,再进行修改,用于指定MapReduce使用的框架。
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
vim etc/hadoop/mapred-site.xml
在标签中添加如下配置
<configuration>
<!--告诉hadoop以后MR(Map/Reduce)运行在YARN上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 以下两项为启动jobhistory服务设置项,后面用到map reduce 时需要 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
6.指定HDFS文件存储位置(默认/tmp)
创建临时目录和文件目录
mkdir -p /usr/local/hadoop-2.8.3/tmp
master节点(只在master节点上操作):
mkdir -p /usr/local/hadoop-2.8.3/tmp/name
slvae节点(只在slave节点上操作):
mkdir -p /usr/local/hadoop-2.8.3/tmp/data
(-p:确认该目录是否存在,如果不存在则创建)
给/tmp文件夹授权
sudo chmod -R 777 /usr/local/hadoop-2.8.3/tmp
7.修改/etc/hadoop/yarn-site.xml配置文件
vim /usr/local/hadoop-2.8.3/etc/hadoop/yarn-site.xml
在标签中添加如下配置
<configuration>
<!-- Site specific YARN configuration properties -->
<!--nomenodeManager获取数据的方式是shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--配置shuffle,因为map和reduce之间有个shuffle过程,-->
<property>
<name>yarn.nademanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!--为每个rm-id设置主机:端口用来提交作业。-->
<property>
<name>yarn.resourcemaneger.address</name>
<value>master:8032</value>
</property>
<!--调度器接口的地址。-->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<!--对每个rm-id设置NodeManager连接的host-->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<!--对每个rm-id指定管理命令的host-->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<!--对每个rm-id,指定RM webapp对应的host-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
<!-- 关闭虚拟内存检查-->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
8.修改env环境变量文件
在hadoop-env.sh、mapred-env.sh、yarn-env.sh文件(hadoop-2.8.3/etc/hadoop目录下)添加JAVA_HOME:
export JAVA_HOME=/usr/local/jdk
9.格式化HDFS
在hadoop-2.8.3目录下:
bin/hadoop namenode -format
格式化成功
10.开启服务(该步骤只在master节点操作)
hadoop-2.8.3目录下:
启动HDFS:
sbin/start-dfs.sh
启动YARN:
sbin/start-yarn.sh
启动job history server:
sbin/mr-jobhistory-daemon.sh start historyserver
11.查看进程
jps
12.访问NameNode的Web页面,端口号:50070
http:// NameNode IP:50070
例:http://192.168.1.190:50070
13.访问ResourceManger的Web页面,端口号:8088
http:// NameNode IP:8088
例:http://192.168.1.190:8088
14.测试(该步骤只在master节点操作)
Hadoop-2.8.3目录下:
创建 HFDS
bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/test
bin/hdfs dfs -mkdir /user/test/input
将input文件拷贝到HFDS目录下
bin/hdfs dfs -put /usr/local/hadoop-2.8.3/etc/hadoop/*.xml /user/test/input
执行hadoop job
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.3.jar grep /user/test/input output 'dfs[a-z.]+'
查看执行结果
bin/hdfs dfs -cat output/*
15.停止服务(该步骤只在master节点操作)
在hadoop-2.8.3目录下:
停止HDFS
sbin/stop-dfs.sh
停止YARN
sbin/stop-yarn.sh
标签:hadoop,Hadoop,etc,2.8,master,HOME,分布模式,HADOOP 来源: https://blog.csdn.net/weixin_45648723/article/details/101058181