centos7安装hadoop伪分布式学习环境

使用虚拟机搭建个hadoop伪分布环境,用于模拟一个小规模的集群用于学习。
在虚拟机里安装一台centos7系统

ip主机名
192.168.158.30hadoop.master

1.安装java环境我安装的是JDK 1.8
安装方法:https://blog.csdn.net/ltgsoldier1/article/details/97780445
我把jdk安装到如下目录:

/usr/java/jdk1.8.0_221

配置java环境变量:

export JAVA_HOME=/usr/java/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

2.修改主机名 因为是伪分布式 所以也可以不设置

hostnamectl set-hostname hadoop.master           # 使用这个命令会立即生效且重启也生效
hostname                                         #查看是否修改完成

3.修改/etc/hosts改成如下内容

192.168.158.30 hadoop.master
192.168.158.30 localhost          #添加此项是为了8088端口其他主机可以访问 默认只能本地访问

4.关闭防火墙

systemctl stop firewalld                           #关闭防火墙
systemctl disable firewalld                        #开机禁用防火墙

5.设置ssh无密码登陆
虽然是伪分布 但是hadoop还是需要使用ssh来启动守护进程跟分布式一样

yum -y install openssh-clients                 #安装ssh
ssh-keygen -t rsa                              #一直按回车 生成秘钥
ssh-copy-id hadoop.master                      #发送到cdh.slave1节点
ssh localhost                                  #测试能否登录

6.下载hadoop
下载地址:https://hadoop.apache.org/releases.html
在这里插入图片描述
我下载的是2.9.2版 点击binary进入下载页
在这里插入图片描述
这两个地址 下载那个都可以

#下载
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz 

7.解压安装

mkdir /usr/hadoop                              #创建安装目录
tar -zxvf hadoop-2.9.2.tar.gz -C /usr/hadoop   #解压到安装目录

8.把hadoop添加到环境变量

vi /etc/profile.d/hadoop.sh         #添加编辑文件
#如下内容添加到hadoop.sh
export HADOOP_HOME=/usr/hadoop/hadoop-2.9.2
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$HADOOP_HOME/sbin:$PATH

#使修改的环境变量生效
source /etc/profile
#测试hadoop是否工作
hadoop version

9.配置hadoop
伪分布式的配置 需要配置四个文件

/usr/hadoop/hadoop-2.9.2/etc/hadoop   #配置文件位置

core-site.xml

<?xml version="1.0"?>
<!-- core-site.xml -->
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost/</value>
  </property>
</configuration>

注意:如果想要在本地使用ide链接hadoop测试需要如下配置 hdfs://localhost/ 只能在服务器上执行java访问hdfs 远程链接不上

<configuration>
 <property>
    <name>fs.defaultFS</name>
   <!-- <value>hdfs://localhost/</value> 伪分布 只能本机访问-->
    <value>hdfs://hadoop.master:8020/</value>
  </property>
</configuration>

hdfs-site.xml

<?xml version="1.0"?>
<!-- hdfs-site.xml -->
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>

mapred-site.xml 需要先修改文件名

mv mapred-site.xml.template mapred-site.xml

<?xml version="1.0"?>
<!-- mapred-site.xml -->
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

yarn-site.xml

<?xml version="1.0"?>
<!-- yarn-site.xml -->
<configuration>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>localhost</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <!--开启日志聚合服务 可以在任务完成 查看任务日志 还可以查看map里的标准输出 和标准错误-->
  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>True</value>
  </property>

</configuration>

10.格式化HDFS文件系统
首次运行hadoop 需要先格式化HDFS文件系统

hdfs namenode -format

11.启动和停止服务

/usr/hadoop/hadoop-2.9.2/sbin/start-all.sh           #启动服务
/usr/hadoop/hadoop-2.9.2/sbin/mr-jobhistory-daemon.sh start historyserver            #启动历史服务器
/usr/hadoop/hadoop-2.9.2/sbin/stop-all.sh           #停止服务
/usr/hadoop/hadoop-2.9.2/sbin/mr-jobhistory-daemon.sh stop historyserver           #停止历史服务器
#查看启动的服务
jps
#所有启动的服务
NameNode
DataNode
ResourceManager
SecondaryNameNode
JobHistoryServer
NodeManager

12.创建用户目录

hadoop fs -mkdir -p /user/$user

13.日志跟访问地址

/usr/hadoop/hadoop-2.9.2/logs        #日志

namenode地址:http://192.168.158.30:50070
资源管理器地址:http://192.168.158.30:8088
历史服务器地址:http://192.168.158.30:19888/jobhistory

最后附上hadoop服务与对应的端口

组件节点默认端口配置用途说明
HDFSDateNode50010dfs.datanode.addressdatanode服务端口,用于数据传输
HDFSDateNode50075dfs.datanode.http.addresshttp服务的端口
HDFSDateNode50475dfs.datanode.https.addresshttp服务的端口
HDFSDateNode50020dfs.datanode.ipc.addressipc服务的端口
HDFSNameNode50070dfs.namenode.http-addresshttp服务的端口
HDFSNameNode50470dfs.namenode.https-addresshttps服务的端口
HDFSNameNode8020fs.defaultFS接收Client连接的RPC端口,用于获取文件系统metadata信息。
HDFSjournalnode8485dfs.journalnode.rpc-addressRPC服务
HDFSjournalnode8480dfs.journalnode.http-addressHTTP服务
HDFSZKFC8019dfs.ha.zkfc.portZooKeeper FailoverController,用于NN HA
YARNResourceManage8032yarn.resourcemanager.addressRM的applications manager(ASM)端口
YARNResourceManage8030yarn.resourcemanager.scheduler.addressscheduler组件的IPC端口
YARNResourceManage8031yarn.resourcemanager.resource-tracker.addressIPC
YARNResourceManage8033yarn.resourcemanager.admin.addressIPC
YARNResourceManage8088yarn.resourcemanager.webapp.addresshttp服务端口
YARNNodeManager8040yarn.nodemanager.localizer.addresslocalizer IPC
YARNNodeManager8042yarn.nodemanager.webapp.addresshttp服务端口
YARNNodeManager8041yarn.nodemanager.addressNM中container manager的端口
YARNJobHistory Server10020mapreduce.jobhistory.addressIPC
YARNJobHistory Server19888mapreduce.jobhistory.webapp.addresshttp服务端口
HBaseMaster60000hbase.master.portIPC
HBaseMaster60010hbase.master.info.porthttp服务端口
HBaseRegionServer60020hbase.regionserver.portIPC
HBaseRegionServer60030hbase.regionserver.info.porthttp服务端口
HBaseHQuorumPeer2181hbase.zookeeper.property.clientPortHBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。
HBaseHQuorumPeer2888hbase.zookeeper.peerportHBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。
HBaseHQuorumPeer3888hbase.zookeeper.leaderportHBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。
HiveMetastore9085/etc/default/hive-metastore中export PORT=<port>来更新默认端口
HiveHiveServer10000/etc/hive/conf/hive-env.sh中export HIVE_SERVER2_THRIFT_PORT=<port>来更新默认端口
ZooKeeperServer2181/etc/zookeeper/conf/zoo.cfg中clientPort=<port>对客户端提供服务的端口
ZooKeeperServer2888/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分follower用来连接到leader,只在leader上监听该端口
ZooKeeperServer3888/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分用于leader选举的。只在electionAlg是1,2或3(默认)时需要
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值