HADOOP+ZOOKEEPER+HBASE+HIVE

    xiaoxiao2021-04-17  43

     

    1.配置yum源

    Xftp 10.72.39.160  /etc/yum.repo.d/RHEL.repo

    目的机器上:

    cd /etc/yum.repos.d/

    mkdir bak

    mv CentOS-*.repo bak

    yum clean all

    yum makecache

    yum list

     

    2.编译64位库

    yum install gcc-c++-y

    yum installncurses-devel -y

    yum install cmake -y

    yum installzlib-devel -y

     

    解压tar-zvxf hadoop-2.7.2.tar.gz

    4.安装hadoop准备

    在安装Hadoop之前,所有集群节点均需对操作系统进行以下配置:

    4.1)去掉操作系统ulimit -n 限制

    (1)修改/etc/security/limits.conf ,在最后增加如下内容:

    * soft nofile 102400

    * hard nofile 409600

    (2)修改/etc/pam.d/login,在最后添加如下内容:

    session required/lib/security/pam_limits.so

    (3)重启系统使得配置生效

    4.2)关闭防火墙

    (1)重启后生效

    关闭:chkconfig iptables off

    (2)即时生效,重启后失效

    关闭:serviceiptables stop

    4.3)配置hostname,设置主机名

    vi/etc/sysconfig/network

    NETWORKING=yes

    HOSTNAME=master

    4.4).配置host, 设置ip和主机名的映射

    vi /etc/hosts

    10.72.39.55   master

    10.72.39.58   slave01

    10.72.39.62   slave02

    10.72.39.67   slave03

     

    4.5)查看系统的JDK版本

    rpm –qa | grepjdk  若是1.8则不用管,若不是1.8则卸载系统jdk

    yum –y remove 系统JDK版本

             安装jdk-8u66-linux-x64.rpm

             cd/usr/local

             chmod+x jdk-8u66-linux-x64.rpm

             rpm–ivh jdk-8u66-linux-x64.rpm

    修改vim~/.bash_profile  环境变量

    将JAVA_HOME添加到PATH目录中,如下:

    JAVA_HOME=/usr/java/jdk1.8.0_66

    PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

     

    export PATH

     

    4.6) 配置ssh无密码连接

    SSH无密码登录节点

    这个操作是要让 Master 节点可以无密码 SSH 登陆到各个 Slave 节点上。

    首先生成 Master 节点的公匙,在 Master 节点的终端中执行:

    cd~/.ssh

    rm./id_rsa*

    ssh-keygen–t rsa  

     (2) 让 Master 节点需能无密码 SSH 本机,在 Master 节点上执行:

    cat ./id_rsa.pub>> ./authorized_keys

     

    完成后可执行 ssh Master 验证一下(可能需要输入 yes,成功后执行 exit 返回原来的终端)。接着在 Master 节点将上公匙传输到 Slave 节点:

    scp~/.ssh/id_rsa.pub root@Slave:/root/

     

    接着在 Slave节点上,将ssh 公匙加入授权:

    cat ~/id_rsa.pub >>~/.ssh/authorized_keys

    rm~/id_rsa.pub

    如果有其他 Slave 节点,也要执行将 Master 公匙传输到 Slave 节点、在 Slave 节点上加入授权这两步。

    这样,在 Master 节点上就可以无密码 SSH 到各个 Slave 节点了。

    最后测试 ssh slave01

     

    5. Hadoop安装

    在主节点dmdb1配置

    5.1)配置文件 有的要创建目录,根据配置文件而定。

    拷贝/hadoop+hbase集群/home/hadoop-2.7.2/etc/hadoophadoop-env.sh,core-site.xml,hdfs- site.xml,mapred-site.xml, yarn-site.xml, yarn-env.shslaves到dmdb1相同目录,覆盖原文件。

    5.2) 拷贝配置好的hadoop到slave节点

    scp –r /opt/hadoop-2.7.2slave01:/opt

    scp –r /opt/hadoop-2.7.2slave02:/opt

    scp –r /opt/hadoop-2.7.2slave03:/opt

     

    6.配置时间同步

    Includefile上面还掉了两句:server127.127.1.0

    fudge127.127.1.0stratum10

     

    6.2) Ntp服务器master上以守护进程启动ntpd

    service ntpd start

    注:ntpd启动后,客户机要等几分钟再与其进行时间同步,否则会提示“no server suitable for synchronizationfound”错误。

    6.3)配置时间同步客户机slave01,slave02,slave03

    vi/var/spool/cron/root

    添加一行,客户机每小时跟ntp服务器进行时间同步:

    * */1 * * * /usr/sbin/ntpdate master

    备注:如果客户机没有ntpdate,可以下载ntpdate.tar.gz/usr/sbin/目录,然后解压

    最后检查4台机器时间是否一直。

     

     

    7.安装zookeeper

    拷贝/hadoop+hbase集群/opt/zookeeper-3.4.8/conf目录下面的zoo.cfg到master相同位置

    远程分发

    scp –r /opt/zookeeper-3.4.8slave01:/opt

    scp –r /opt/zookeeper-3.4.8slave02:/opt

    scp –r /opt/zookeeper-3.4.8slave03:/opt

    在Zookeeper集群的每台节点上创建Zookeeper的数据文件:

    mkdir /opt/hadoop-2.7.2/zookeeper/

    设置myid:

    master

    echo “1”> /opt/hadoop-2.7.2/zookeeper/myid

    slave01

    echo “2”>/opt/hadoop-2.7.2/zookeeper/myid

    slave02

    echo “3”> /opt/hadoop-2.7.2/zookeeper/myid

    slave03

    echo “4”> /opt/hadoop-2.7.2/zookeeper/myid

     

    8.hbase安装

    在主节点上解压HBase的tar包:

    tar –zvxfhbase-1.1.4-bin.tar.gz

    拷贝/hadoop+hbase集群/opt/hbase-1.1.4/conf目录下面的hbase-env.sh, hbase-site.xml, regionservers,backup-masters,core-site.xml,hdfs-site.xml到master的相同目录

    其中hbase-env.sh   exportHBASE_HEAPSIZE=32  这个值要根据内存而定。

    将配置好的HBase安装目录拷贝到其他slave节点,例如:

    scp–r /opt/hbase-1.1.4 slave01:/opt

    scp–r /opt/hbase-1.1.4 slave02:/opt

    9.启动zookeeper集群

    在每台Zookeeper集群节点上,进入到Zookeeper的安装目录,运行以下命令:

    bin/zkServer.sh start

    查看单机Zookeeper是leader还是follower:

    bin/zkServer.shstatus 

    停止Zookeeper:

    bin/zkServer.sh stop

    10.启动hadoop集群(只用到了dfs)

    Hadoop集群的启动(在Master节点上操作)

    /opt/hadoop-2.7.2/bin/hdfs namenode -format

     

    启动dfs集群

    cd $HADOOP_HOME/sbin

    ./start-dfs.sh

    输入jps查看java相关进程

    浏览器访问相关页面

    若输入网址为如下,需进行解析

    http://master:50070/   dfs页面

    Hadoop集群的停止

    停止dfs集群

    cd $HADOOP_HOME/sbin

    ./stop-dfs.sh

    11.启动hbase集群

    在启动HBase集群之前,需保证Hadoop集群和Zookeeper集群是正常运行,然后进入到HBase的安装目录:

    启动HBase

    bin/start-hbase.sh

    输入jps查看HBase进程情况

    Master

    Slave01

    Slave02(main进程忽略不看)

    Slave03(main进程忽略不看)

    停止HBase

    bin/stop-hbase.sh

    进入HBase shell

    bin/hbase shell

    若报找不到hadoop资源库的错,可以在hbase shell脚本里加入exportLD_LIBRARY_PATH=/ho me/hadoop-2.7.2/lib/native/,不加也不影响使用。

    查看HBase HMaster Web页面

    http://master:16010

    12.开机启动配置

    拷贝/hadoop+hbase集群/home下master-zk-hadoop-hbase-start.sh到master指定目录

    master中加/home/master-zk-hadoop-hbase-start.sh到系统服务,防止机器重启服务挂掉

    chmod +xmaster-zk-hadoop-hbase-start.sh

    ln -smaster-zk-hadoop-hbase-start.sh /etc/init.d/

     

    拷贝/hadoop+hbase集群/home下slave-zk-start.sh到dmdb2, dmdb3,dmdb4指定目录

    dmdb2, dmdb3, dmdb4中加/home/slave-zk-start.sh到系统服务,防止机器重启服务挂掉

    chmod +xslave-zk-start.sh

    ln -s slave-zk-start.sh/etc/init.d/

     

    13.创建表

    bin/hbase shell

    create‘GA_GXRY_ACT’,{NAME=>’act’,VERSIONS=>1},SPLITS_FILE=>’splits.txt’

    注意:创建完表,其中存有数据后,不要修改系统时间,否则会导致hbase数据不可用,故请提前配置好集群时间同步。万不得已要改时间重新同步,得删除表重新创,数据将全部丢失。

     

    HIVE部署

    将hive部署到跟NameNode同一个节点就行。

     

    进入hive的conf文件夹:

    cp hive-default.xml.template hive-site.xml

    cp hive-log4j.properties.template hive-log4j.properties

     

    (1)       修改hive-site.xml

    Hive的元数据存储到DM数据库中

    需要修改的配置有:

    javax.jdo.option.ConnectionURL

    javax.jdo.option.ConnectionDriverName

    javax.jdo.option.ConnectionUserName

    javax.jdo.option.ConnectionPassword

    hive.metastore.warehouse.dir

     

    修改如下:

    将javax.jdo.option.ConnectionURL配置修改成如下:

    其中192.168.195.1这个ip是指DM数据库所在的IP。

    <property>

    <name>javax.jdo.option.ConnectionURL</name>

    <value>jdbc:dm://10.74.203.57:5236?createDatabaseIfNotExist=true</value>

    <description>JDBC connect string for a JDBC metastore</description>

    </property>

     

    将javax.jdo.option.ConnectionDriverName配置修改成如下:

    配置DM数据库的驱动

    <property>

    <name>javax.jdo.option.ConnectionDriverName</name>

    <value>dm.jdbc.driver.DmDriver</value>

    <description>Driver class name for a JDBC metastore</description>

    </property>

     

    将javax.jdo.option.ConnectionUserName配置修改成如下:

    配置用户名

    <property>

    <name>javax.jdo.option.ConnectionUserName</name>

    <value>HIVE</value>

    <description>username to use against metastore database</description>

    </property>

     

    将javax.jdo.option.ConnectionPassword配置修改成如下:

    配置DM数据库的密码

    <property>

    <name>javax.jdo.option.ConnectionPassword</name>

    <value>888888888</value>

    <description>password to use against metastore database</description>

    </property>

     

    将hive.metastore.warehouse.dirs配置修改成如下:

    <property>

    <name>hive.metastore.warehouse.dir</name>

    <value>hdfs://master:9000/user/hive/warehouse</value>

    <description>location of default database for the warehouse</description>

    </property>

     

    由于将Hive的元数据放在DM数据库中,则需要做适配才行,所以要加一项配置:

    <property>

             <name>datanucleus.mapping.Schema</name>

             <value>HIVE</value>

             <description>默认模式</description>

    </property>

     

    (2)       添加Jar包

    将DM数据库驱动的jar包:Dm7JdbcDriver16-20131009.jar

    DM数据库适配置jar包:datanucleus-rdbms-dm-0.0.1-SNAPSHOT.jar

     

    将这两个jar加到hive的lib中。

     

    (3)       修改hive-log4j.properties

    将log4j.appender.EventCounter修改成:

    log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter

     

    (4)       添加Hive的环境变量

    export HIVE_HOME=/opt/hive

    export PATH=$ HADOOP_HOME/bin:$ HIVE_HOME /bin:$PATH

     

    (5)       hdfs上面,创建目录

     

    $HADOOP_HOME/bin/hdfsdfs -mkidr /tmp

    $HADOOP_HOME/bin/hdfsdfs -mkidr /user/hive/warehouse

    $HADOOP_HOME/bin/hdfsdfs -chmod g+w /tmp

    $HADOOP_HOME/bin/hdfsdfs -chmod g+w /user/hive/warehouse

     

    (6)       启动Hive

    启动metastore服务

    bin/hive --service metastore &

     

    启动hiveserver服务

    bin/hive --service hiveserver2 &

     

    转载请注明原文地址: https://ju.6miu.com/read-674337.html

    最新回复(0)