从零搭建Hadoop+zookeeper+hbase+hive完全分布式环境(01)——Hadoop

博主将用四篇博客详细讲解如何从零搭建Hadoop+zookeeper+hbase+hive完全分布式环境,本篇主要为搭建Hadoop集群

前期准备

安装包:
在这里插入图片描述
新建一个虚拟机(使用VMtools将虚拟机时间和主机时间同步)
将新建software根目录,将jdk、hadoop、hadoop-native、hive、hbase、zookeeper、mysql和java连接数据库jar包引入software目录下
将jdk、hadoop、hive、hbase、zookeeper解压到opt目录下
hadoop-native解压到hadoop/etc/bin和hadoop/etc/bin/native目录下

配置集群环境变量(将整个集群的环境变量一次配置完成)

vi /etc/profile 将下方代码插入文件最后,source /etc/profile 刷新环境变量
java -version、hadoop version、hive version、hbase version 检查环境变量配置是否正确

export JAVA_HOME=/opt/java8
export JRE_HOME=/opt/jdk8/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export HADOOP_HOME=/opt/hadoop
export HBASE_HOME=/opt/hbase
export HIVE_HOME=/opt/hive
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin

在这里插入图片描述
在这里插入图片描述

修改主机名

hostnamectl  set-hostname 主机名

修改主机列表

vi /etc/hosts
//将集群内的虚拟机都加入主机列表

在这里插入图片描述

配置免密登录

生成免密密钥:ssh-keygen -t rsa -P  "" 

将生成的免密私钥复制到公钥:cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys  (>>为追加,若覆盖则用>)

为集群虚拟机添加互信:ssh-copy-id -i .ssh/id_rsa.pub -p22 root@192.168.56.122(或主机名)

免密登录验证:ssh -p 22 root@192.168.56.122(或主机名)

配置单机Hadoop

进入hadoop/etc/hadoop目录下
配置hadoop-env.sh
vi hadoop-env.sh
将JAVA_HOME改为虚拟机的java路径
在这里插入图片描述

配置core-site.xml

vi core-site.xml
<configuration>


<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.56.110:9000</value>    //主机ip
</property>


<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>    //hadoop临时文件存放目录,此处放在hadoop根目录下
</property>


<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>


<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>


</configuration>

配置hdfs-site.xml

vi hdfs-site.xml
<configuration>


<property>
<name>dfs.replication</name>
<value>1</value>
</property>


<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop01:50090</value>    //主机名
</property>


</configuration>

配置mapred-site.xml

vi mapred-site.xml
<configuration>


<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>


<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>    //主机名
</property>


<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>    //主机名
</property>


</configuration>

配置yarn-site.xml

vi yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- reducer获取数据方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop01</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>
</configuration>

配置slaves

vi slaves

将集群的主机名添加到slaves中(目前为单机模式只添加单个虚拟机名就可以)
在这里插入图片描述

格式化HDFS

hadoop namenode -format
//查看是否有报错日志,有报错根据报错信息检查配置文件

启动Hadoop

start-all.sh
//检查节点数量是否正确

在这里插入图片描述

登录网页查看Hadoop

192.168.56.110:50070 //HDFS页面
192.168.56.110:8088 //YARN管理页面
192.168.56.110:19888 //hadoop历史服务界面

检查无误后关闭Hadoop

stop-all.sh    

搭建Hadoop集群

将搭建好单机Hadoop的虚拟机复制两个

VMware复制虚拟机时要重新生成MAC地址否则会网卡冲突无法连接网络

修改两个新建虚拟机的IP和主机名

 vi /etc/sysconfig/network-scripts/ifcfg-ens33
hostnamectl set-hostname 主机名

修改集群所有虚拟机的主机列表

vi /etc/hosts
//将所有主机名加入主机列表

为集群内所有虚拟机设置免密登录

//将集群内所有虚拟机设置为免密登录
ssh-keygen -t rsa -P  ""

//将集群内所有虚拟机私钥复制到公钥
cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys

//为集群内所有虚拟机添加互信
ssh-copy-id -i /root/.ssh/id_rsa.pub -p22 root@192.168.56.122(或主机名)

//检验集群内虚拟机是否互相之间能免密登录
ssh -p 22 root@192.168.56.110

将集群内所有虚拟机切换到/opt/hadoop/etc/hadoop目录下

配置hdfs-site.xml(每台虚拟机都要配置)

vi hdfs-site.xml
<configuration>

<property>
<name>dfs.replication</name>
<value>3</value>    //将数值改为集群虚拟机数量的值
</property>

<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:50090</value>    //备用节点主机名
</property>
</configuration>

配置slaves(每台虚拟机都要配置)

vi slaves
//将集群内所有的虚拟机名加入slaves中

格式化HDFS

删除集群内所有虚拟机/opt/hadoop/tmp目录:rm -rf /opt/hadoop/tmp
格式化HDFS:hadoop namenode -format

在集群主节点虚拟机上启动hadoop集群

start-all.sh
//检查节点数量若缺少节点,就停止集群,并删除所欲虚拟机上/opt/Hadoop/tmp文件夹,再重新格式化HDFS,再启动hadoop集群

在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值