Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建

Linux操作系统下安装Hadoop以及集群搭建

准备工作:

  • VMware新建虚拟机(虚拟机时间需要与主机同步)
  • 在根目录下新建software目录,把jdk、hadoop、hadoop-native、hive、hbase、zookeeper、mysql和java连接数据库jar包导入software目录下
    Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建_第1张图片在这里插入图片描述在这里插入图片描述
    Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建_第2张图片
  • 将jdk、hadoop、hive、hbase、zookeeper解压到opt目录下
  • hadoop-native解压到hadoop/etc/bin和hadoop/etc/bin/native目录下

配置环境变量(集群环境变量一次配置完成):

  • vi /etc/profile 按shift+g、o 插入以下代码:
export JAVA_HOME=/opt/jdk8
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

Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建_第3张图片

  • source /etc/profile 刷新并执行环境变量
  • 测试环境变量是否配置成功 java -version、hadoop version、hive version、hbase version
    Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建_第4张图片
  • 修改主机名
    vi /etc/hostname
#主机名
hadoop101
  • 修改主机列表
    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 [email protected](或主机名)
    • 免密登录验证:
      ssh -p 22 [email protected](或主机名)

配置Hadoop

  • 进入hadoop/etc/hadoop目录下
  • 配置hadoop-env.sh
    vi hadoop-env.sh
    JAVA_HOME后的路径修改为虚拟机的java路径
    Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建_第5张图片
  • 配置core-site.xml
    vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.128.101: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(当前单机模式只需输入主节点主机名)
hadoop101
hadoop102
hadoop103
  • 格式化HDFS
    hadoop namenode -format (检查是否有报错,根据报错信息查改配置文件)
  • 启动Hadoop
    start-all.sh (配置完hadoop环境变量才可以无视目录启动,否则进入hadoop的bin目录下启动)
    启动完成后输入jps检查节点
    Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建_第6张图片
    • 登录网页50070端口查看是否能够正常连接
      Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建_第7张图片
    • 8088端口查看yarn管理页面
      Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建_第8张图片
    • 19888端口查看hadoop历史服务页面
      Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建_第9张图片
  • 检查无误后关闭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
  • 为集群内所有虚拟机添加互信
  • 检验集群内虚拟机是否互相之间能免密登录
  • 将集群内所有虚拟机切换到/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中
      Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建_第10张图片
  • 格式化HDFS
    • 删除集群内所有虚拟机/opt/hadoop/tmp目录:rm -rf /opt/hadoop/tmp
    • 格式化HDFS:hadoop namenode -format
  • 在集群主节点虚拟机上启动hadoop集群
    • start-all.sh
    • 检查节点数量若缺少节点,就停止集群,并删除所有虚拟机上/opt/Hadoop/tmp文件夹,再重新格式化HDFS,再启动hadoop集群
      Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建_第11张图片
      Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建_第12张图片
      以上,Hadoop及Hadoop集群搭建完成

你可能感兴趣的:(Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建)