您的位置:首页 > 大数据 > Hadoop

CenOs7搭建hadoop,hbase,hive环境

2020-01-15 11:12 1161 查看

CentOs7搭建hadoop相关环境

纯净版centOs7搭建hadoop相关环境,要安装的的软件:

  • jdk环境
  • mysql数据库
  • hadoop
  • hive
  • zookeeper
  • HBase

一,前期准备

  1. 设置IP地址

更改网卡配置

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

TYPE=Ethernet
BOOTPROTO=static			//地址分配为静态获取
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=7ca42776-092a-433b-90c2-a3c8c75981df
DEVICE=enp0s3
ONBOOT=yes					//开机自动启动
IPADDR=192.168.56.101		//设置ip地址
  1. 设置主机名称
    主机名称的设置不能有特殊字符,否则在使用hadoop框架时容易出现问题

      查看主机名称

      hostnamectl

      Static hostname: localhost.localdomain
      Icon name: computer-vm
      Chassis: vm
      Machine ID: c2d43cf4694d4208bf53b23c50196349
      Boot ID: 800fdde254bc4aa6af9b0689cfb24a6e
      Virtualization: kvm
      Operating System: CentOS Linux 7 (Core)
      CPE OS Name: cpe:/o:centos:centos:7
      Kernel: Linux 3.10.0-514.el7.x86_64
      Architecture: x86-64
    • 更改主机名

      hostnamectl set-hostname hadoop1

      set-hostname 里的hostname是指定更改的是Static hostname属性

    • 查看是否更改成功

      Static hostname: hadoop1
      Icon name: computer-vm
      Chassis: vm
      Machine ID: c2d43cf4694d4208bf53b23c50196349
      Boot ID: 800fdde254bc4aa6af9b0689cfb24a6e
      Virtualization: kvm
      Operating System: CentOS Linux 7 (Core)
      CPE OS Name: cpe:/o:centos:centos:7
      Kernel: Linux 3.10.0-514.el7.x86_64
      Architecture: x86-64
    • 更改地址映射里的配置

      vi /etc/hosts

      将静态ip地址与主机名绑定

      192.168.56.101 hadoop1

      查看是否匹配成功

      ping hadoop1

hadoop依赖环境的安装与配置

二,安装java环境

hadoop是使用java开发的,所以要先安装java环境

  1. 解压tar压缩包

    tar -xvf jdk1.8.0_161.tar -C /usr/lib/

    如果是.gz格式参数用-zxvf

  2. 配置jdk环境变量

    vi /etc/profile

    在最后在PATH和CLASSPATH添加jJAVA_HOME和JRE_HOME的lib目录与bin目录

    export JAVA_HOME=/usr/lib/jdk1.8.0_161
    export JRE_HOME=/usr/lib/jdk1.8.0_161/jre
    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
    export PATH=$JAVA_HOME/bin:$PATH

三,安装mysql

hive会将元数据存放在mysql数据库中,所以要先安装mysql

见博客上的文章:https://blog.51cto.com/14449767/2433570

脚本:

#!/bin/bash
rpm -qa | grep mariadb | xargs rpm -e --nodeps
yum install wget
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm;
rpm -ivh  mysql-community-release-el7-5.noarch.rpm;
yum install mysql-server -y;
systemctl start mysqld.service;
systemctl enable mysqld.service;
  • 配置mysql

    使用脚本安装的是5.6版本,5.6以上版本配置方式不同

      第一次进入mysql

      mysql -uroot;

    1. 为root用户添加密码

      update user set password=PASSWORD(“root”) where user =‘root’;

    2. 添加网络中的其他主机访问数据库的权限

      GRANT ALL PRIVILEGES ON . TO root@"%" IDENTIFIED BY “root”;

    3. 刷新权限设置

      flush privileges;

    4. 退出mysql

      quite

  • 5.6以上版本配置参照我的博客上的配置步骤
    https://blog.51cto.com/14449767/2433570

安装hadoop框架

要安装hadoop,hive,zookeeper,HBase,使用的是cdh版
下载hadoop:http://archive.cloudera.com/cdh5/cdh/5/

解压文件

  1. 准备好安装文件,解压
    使用脚本:保证压缩包与脚本在同一目录下

    #!/bin/bash
    mkdir /opt/bigdata;
    tarfile=`ls | grep .gz`
    for i in $tarfile
    do
    tar -zxvf $i -C /opt/bigdata/;
    done
    cd /opt/bigdata/;
    path=`ls`
    for i in $path
    do
    mv $i ${i%%-cdh*};
    done
  2. 查看opt下的bigdata目录

    [root@hadoop1 ~]# ls /opt/bigdata/
    hadoop-2.6.0 hbase-1.2.0 hive-1.1.0 zookeeper-3.4.5

配置hadoop

hadoop的配置文件放在{HADOOP_HOME}/etc/hadoop/下

  1. hadoop-env.sh

    vi hadoop-env.sh

    # The java implementation to use.
    export JAVA_HOME=/usr/lib/jdk1.8.0_161	//这里放自己的java目录
  2. hadoop核心配置文件core-site.xml

    mkdir /opt/hadoopdata

    vi core-site.xml

    将下面内容复制到configuration标签中

    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://192.168.56.101:9000</value>		//最好使用ip地址
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoopdata</value>
    </property>
    <property>
    <name>hadoop.proxyuser.root.users</name>
    <value>*</value>
    </property>
    <property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
    </property>
  3. hdfs-site.xml:hdfs文件系统配置
    配置副本,由于是单节点设置为1

    vi hdfs-site.xml

    <configuration>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    </configuration>
  4. mapred-site.xml

    cp mapred-site.xml.template mapred-site.xml

    vi mapred-site.xml

    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    </configuration>
  5. yarn-site.xml

    vi yarn-site.xml

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
    <property>
    <name>yarn.resourcemanager.localhost</name>
    <value>localhost</value>
    </property>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    </configuration>

配置hive

hive在运行时需要连接数据库,所有需要将mysql-jdbc的jar包放在{HIVE_HOME}/lib目录下

hive的配置文件在{HIVE_HOME}/conf下

  1. 配置hive-env.sh文件,设置与hadoop相关,以及配置文件存放的路径

    cp hive-env.sh.template hive-env.sh

    HADOOP_HOME=/opt/bigdata/hadoop-2.6.0
    
    export HIVE_CONF_DIR=${HIVE_HOME}/conf
  2. 配置hive-site.xml

    vi hive-site.xml

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
    <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://192.168.56.101:3306/hive?createDatabaseIfNotExist=true</value>
    </property>
    <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    </property>
    <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>
    </property>
    </configuration>

配置zookeeper

配置文件同样在conf目录下

  1. 配置zoo.cof

    cp zoo_sample.cfg zoo.cfg

    mkdir /opt/zkdir

    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just
    # example sakes.
    dataDir=/opt/zkdir
    
    # the port at which the clients will connect
    clientPort=2181
    
    server.1=192.168.56.101:2888:3888

配置HBase

配置文件在conf下

  1. 配置hbase-env.sh,配置javahome,关闭自带的zookeeper

    vi hbase-env.sh

    # The java implementation to use.  Java 1.7+ required.
    export JAVA_HOME=/usr/lib/jdk1.8.0_161
    # Extra Java CLASSPATH elements.  Optional.
    export HBASE_CLASSPATH=false
  2. 配置hbase-site.xml ,指定hadoop

    vi hbase-site.xml

    在configuration标签中添加:

    <property>
    <name>hbase.rootdir</name>
    <value>hdfs://192.168.56.101:9000/hbase</value>
    </property>
    <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    </property>
    <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/opt/zkdir</value>
    </property>
    <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
    </property>

配置环境变量

vi /etc/profile

#hadoop
export HADOOP_HOME=/opt/bigdata/hadoop-2.6.0
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 PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
#hive
export HIVE_HOME=/opt/bigdata/hive-1.1.0
export PATH=$PATH:$HIVE_HOME/bin
#zookeeper
export ZOOKEEPER_HOME=/opt/bigdata/zookeeper-3.4.5
export PATH=$PATH:$ZOOKEEPER_HOME/bin
#Hbase
export HBASE_HOME=/opt/bigdata/hbase-1.2.0
export PATH=$PATH:$HBASE_HOME/bin

配置免密登录

要将这个节点的公钥发送给其他节点,这里搭配伪分布式集群,将公钥发给自己

ssh-keygen
cd /root/.ssh
cat id_rsa.pub >> authorized_keys

启动

  1. 启动hadoop

    第一次启动之前要先格式化节点,否则会提示name文件夹打开失败,导致namenode无法启动
    (会报错:Directory /opt/hadoopdata/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.)

    hdfs namenode -format

    启动hadoop

    start-all.sh

  2. 启动zookeeper

    zkServer.sh start

  3. 启动Hbase

    start-hbase.sh

  4. 启动hive

      hive

      hive

    • 起hive服务hiveserver2

      hiveserver2 -d //加-d脚本后台运行

访问失败,原因是未关闭防火墙

  1. 直接禁用防火墙

    [root@hadoop1 logs]# systemctl stop firewalld
    [root@hadoop1 logs]# systemctl disable firewalld

配置文件说明

Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。

(1)默认配置文件:存放在hadoop相应的jar包中

[core-default.xml]

​ hadoop-common-2.7.2.jar/ core-default.xml

​ [hdfs-default.xml]

hadoop-hdfs-2.7.2.jar/ hdfs-default.xml

​ [yarn-default.xml]

hadoop-yarn-common-2.7.2.jar/ yarn-default.xml

​ [mapred-default.xml]

hadoop-mapreduce-client-core-2.7.2.jar/ mapred-default.xml

​ (2)自定义配置文件:存放在$HADOOP_HOME/etc/hadoop

​ core-site.xml

​ hdfs-site.xml

​ yarn-site.xml

​ mapred-site.xml

  • 点赞 1
  • 收藏
  • 分享
  • 文章举报
Quite-quiet 发布了15 篇原创文章 · 获赞 7 · 访问量 5万+ 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐