大数据学习——hadoop正式安装
hadoop的安装需要配置好jdk等一系列的准备工作,具体见https://blog.csdn.net/weixin_43848194/article/details/106410715
1.解压hadoop压缩包
tar -zxvf hadoop-2.7.2.tar.gz -C /opt/
cd /opt
mv hadoop-2.7.2 hadoop #改名
#配置环境变量
vi /etc/profilt
# 在最后一行添加hadoop_Home 并添加到path中
export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$JAVA_HOME/sbin:$PATH
# 也可以在/etc/profile.d中创建一个新的.sh文件将环境变量添加进去。这样方便群起集群。
如图
配置hadoop,并启动集群
进入到hadoop目录,配置hadoop的各个配置文件。这些配置文件在 hadoop目录下的etc/hadoop/下。进入到该目录下
配置core-site.xml
<!--hadoop目录下的etc/hadoop/中,大部分配置文件都在这里-->
<configuration>
<!-- hdfs的地址名称:schame,ip,port,默认值files:///代表本地文件系统-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
<!--hdfs://表示存在hdfs中
hadoop01:表示namenode所在的主机名,这里也可以写成ip
:8020:表示端口号,如果使用/表示使用当前 版本的默认端口号-->
</property>
<!-- hdfs的基础路径,被其他属性所依赖的一个基础路径
默认存放在一个临时文件夹中,不安全-->
<property>
<!--其中将存放重要的数据文件 -->
<name>hadoop.tmp.dir</name>
<value>/usr/local/tmp</value>
</property>
</configuration>
配置hdfs-site.xml
<!-- 这里可以只配replication,但是最好配置以以下secondarynamenode的地址-->
<!-- 块的副本数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- secondarynamenode守护进程的http地址:主机名和端口号。最好好不要和namenode,和resourcemanager在一起-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop03:50090</value>
</property>
<property>
<!--用来指定namenode的http协议的地址,默认是0.0.0.0:50070,namenode在哪0.0.0.0就表示在哪,可以改也可以不改-->
<name>dfs.http.address</name>
<value>hadoop01:50070</value>
</property>
<!-- namenode守护进程管理的元数据文件fsimage存储的位置 ,namenode数据name文件夹的位子 和-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/name</value>
</property>
<!-- 确定DFS数据节点应该将其块存储在本地文件系统的何处 datanode数据文件夹data的位置-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/data</value>
</property>
<!-- 块的大小(128M),下面的单位是字节-->
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
<!--文件的检测目录-->
<property>
<name>fs.checkpoint.dir</name>
<value>file:///${hadoop.tmp.dir}/checkpoint/dfs/cname</value>
</property>
<!--日志edits的检测目录-->
<property>
<name>fs.checkpoint.edits.dir</name>
<value>file:///${hadoop.tmp.dir}/checkpoint/dfs/cname</value>
</property>
配置mapread-site.xml,需要改名,默认的名字是mapread-sie.xml.XXXX
<!-- 指定mapreduce使用yarn资源管理器-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配置作业历史服务器的地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>
<!-- 配置作业历史服务器的http地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>
配置yarn-site.xml
<!-- 指定yarn的shuffle技术-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定resourcemanager所在的节点-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop02</value>
</property>
<!----------------------------------------下面的可选--------------------------------->
<!--指定shuffle对应的类 -->
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!--配置resourcemanager的内部通讯地址-->
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop02:8032</value>
</property>
<!--配置resourcemanager的scheduler的内部通讯地址-->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop02:8030</value>
</property>
<!--配置resoucemanager的资源调度的内部通讯地址-->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop02:8031</value>
</property>
<!--配置resourcemanager的管理员的内部通讯地址-->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop02:8033</value>
</property>
<!--配置resourcemanager的web ui 的监控页面-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop02:8088</value>
</property>
配置hadoop-env.sh,yarn-env.sh,mapred-env.sh中的javahome
配置slaves:这里配置的是你的datanode节点的位置,这里不可以有空行和空格
如下
分发到其他集群
scp -r /opt/hadoop hadoop02:/opt/
scp -r /opt/hadoop hadoop03:/opt/
#如果其他集群没有jdk那么也要将jdk分发过去
#同时也要把配置文件分发过去
scp -r /etc/profile.d/env.sh hadoop03:/etc/profile.d/
scp -r /etc/profile.d/env.sh hadoop02:/etc/profile.d/
分别进入该主机,source 一下
格式化NameNode,并启动集群
#格式化namenode
hdfs namenode -format
# 单独启动进程
hadoop-daemon.sh start|stop 守护进程名称'datanode'等
yarn-daemon.sh 启动yarn的,使用daemons 是启动全部集群的
#一次性启动
start-all.sh
#分模块启动,建议使用这种。
start-dfs.sh
start-yarn.sh
#注意启动yarn要在ResourceManager的机器上启动
启动完成后使用jps查看,可以查看到以下进程
hadoop01上的进程
hadoop02上的进程
hadoop03上的进程
或者是在web网页中输入 虚拟机ip:50070 可以进入到hadoop的web ui那么表示配置完成,如下:
如果在windows中配置了hosts的话,就可使用主机名:50070进入web ui。