文档章节

ZK Hadoop Hive 集群搭建

 奔跑的青蛙
发布于 2017/08/11 08:31
字数 879
阅读 6
收藏 0

修改主机名
hostnamectl set-hostname servername

SSH免密登录
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 0600 ~/.ssh/authorized_keys


配置环境变量
    export JAVA_HOME=/opt/jdk
    export HIVE_HOME=/opt/hive
    export HADOOP_HOME=/opt/hadoop
    export ZOOKEEPER_HOME=/opt/zookeeper
 export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin:$HIVE_HOME/bin:$PATH
    
zoo.cfg
    ticktickTime=2000
    initLimit=10
    syncLimit=5
    clientPort=2181
    dataDir=/opt/zookeeper/data
    dataLogDir=/opt/zookeeper/logs  
    server.1=n103:2888:3888    
    server.2=n104:2888:3888    
    server.3=n105:2888:3888  
在dataDir下创建myid文件    

修改hadoop-env.sh export JAVA_HOME=/opt/jdk
    
core-site.html    
    <configuration>  
        <!-- 指定hdfs的nameservice为cluster -->  
        <property>  
            <name>fs.defaultFS</name>  
            <value>hdfs://cluster/</value>  
        </property>  
        <!-- 指定hadoop临时目录 -->  
        <property>  
            <name>hadoop.tmp.dir</name>  
            <value>/opt/workspace/hadoop/tmp</value>  
        </property>  
        <!-- 指定zookeeper地址 -->  
        <property>  
            <name>ha.zookeeper.quorum</name>  
            <value>N103:2181,N104:2181,N105:2181</value>  
        </property>  
    </configuration>

hdfs-site.xml
    <configuration>  
        <!--指定hdfs的nameservice为cluster,需要和core-site.xml中的保持一致 -->  
        <property>  
            <name>dfs.nameservices</name>  
            <value>cluster</value>  
        </property>  
        <!-- cluster下面有两个NameNode,分别是n101,n102 -->  
        <property>  
            <name>dfs.ha.namenodes.cluster</name>  
            <value>N101,N102</value>  
        </property>  
        <!-- n101的RPC通信地址 -->  
        <property>  
            <name>dfs.namenode.rpc-address.cluster.N101</name>  
            <value>N101:9000</value>  
        </property>  
        <!-- n101的http通信地址 -->  
        <property>  
            <name>dfs.namenode.http-address.cluster.N101</name>  
            <value>N101:50070</value>  
        </property>  
        <!-- n102的RPC通信地址 -->  
        <property>  
            <name>dfs.namenode.rpc-address.cluster.N102</name>  
            <value>N102:9000</value>  
        </property>  
        <!-- n102的http通信地址 -->  
        <property>  
            <name>dfs.namenode.http-address.cluster.N102</name>  
            <value>N102:50070</value>  
        </property>  
        <!-- 指定NameNode的元数据在JournalNode上的存放位置 -->  
        <property>  
            <name>dfs.namenode.shared.edits.dir</name>  
            <value>qjournal://N103:8485;N104:8485;N105:8485/cluster</value>  
        </property>  
        <!-- 指定JournalNode在本地磁盘存放数据的位置 -->  
        <property>  
            <name>dfs.journalnode.edits.dir</name>  
            <value>/opt/workspace/hadoop/journaldata</value>  
        </property>  
        <!-- 开启NameNode失败自动切换 -->  
        <property>  
            <name>dfs.ha.automatic-failover.enabled</name>  
            <value>true</value>  
        </property>  
        <!-- 配置失败自动切换实现方式 -->  
        <property>  
            <name>dfs.client.failover.proxy.provider.cluster</name>  
            <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>  
        </property>  
        <!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->  
        <property>  
            <name>dfs.ha.fencing.methods</name>  
            <value>sshfence</value>  
        </property>  
        <!-- 使用sshfence隔离机制时需要ssh免登陆 -->  
        <property>  
            <name>dfs.ha.fencing.ssh.private-key-files</name>  
            <value>/opt/.ssh/id_rsa</value>  
        </property>  
        <!-- 配置sshfence隔离机制超时时间 -->  
        <property>  
            <name>dfs.ha.fencing.ssh.connect-timeout</name>  
            <value>30000</value>  
        </property>
        <property>      
            <name>dfs.namenode.name.dir</name>      
            <value>file:///opt/workspace/hadoop/name</value>      
        </property>      
          
        <property>      
            <name>dfs.datanode.data.dir</name>      
            <value>file:///opt/workspace/hadoop/data</value>      
        </property>      
        <property>      
           <name>dfs.replication</name>      
           <value>3</value>      
        </property>    
    </configuration>  
    
yarn-site.xml
    <configuration>  
        <!-- 开启RM高可用 -->  
        <property>  
           <name>yarn.resourcemanager.ha.enabled</name>  
           <value>true</value>  
        </property>  
        <!-- 指定RM的cluster id -->  
        <property>  
           <name>yarn.resourcemanager.cluster-id</name>  
           <value>yrc</value>  
        </property>  
        <!-- 指定RM的名字 -->  
        <property>  
           <name>yarn.resourcemanager.ha.rm-ids</name>  
           <value>rm1,rm2</value>  
        </property>  
        <!-- 分别指定RM的地址 -->  
        <property>  
           <name>yarn.resourcemanager.hostname.rm1</name>  
           <value>N101</value>  
        </property>  
        <property>  
           <name>yarn.resourcemanager.hostname.rm2</name>  
           <value>N102</value>  
        </property>  
        <!-- 指定zk集群地址 -->  
        <property>  
           <name>yarn.resourcemanager.zk-address</name>  
           <value>N103:2181,N104:2181,N105:2181</value>  
        </property>  
        <property>  
           <name>yarn.nodemanager.aux-services</name>  
           <value>mapreduce_shuffle</value>  
        </property>  
    </configuration>

mapred-site.xml
    <configuration>
     <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
      <property>
              <name>mapreduce.jobhistory.address</name>
              <value>N101:10020</value>
      </property>
      <property>
              <name>mapreduce.jobhistory.address</name>
              <value>N101:19888</value>
      </property>
    </configuration>
    
在所有zookeeper上执行 zkServer.sh start
在所有journalnode上执行 hadoop-daemons.sh start journalnode
在一台namenode上执行 hdfs namenode -format 然后执行 hadoop-daemon.sh start namenode 
在另一台namenode上执行 hdfs namenode -bootstrapStandby
在一台namenode上执行 hdfs zkfc -formatZK
在一台namenode上执行 start-dfs.sh

安装mysql yum install mysql-server 
    systemctl enable mysql 添加服务
    systemctl start mysql    启动
    systemctl stop mysql    停止
    systemctl restart mysql    重启
    grant all privileges on *.* to root@'%'  identified by 'root' with grant option;
    use mysql;
    delete from user where host != '%';
    flush privileges;
    create database hive;

修改hive-env.sh
    export JAVA_HOME=/opt/jdk
    将mysql驱动包放到HIVE_HOME/lib
    替换HADOOP_HOME/share/hadoop/yarn/lib/jline-x.x.x.jar
    
hive-config.sh
    export JAVA_HOME=/opt/jdk
    export HADOOP_HOME=/opt/hadoop

hive-site.xml 服务端
    <configuration>
        <property>
            <name>hive.metastore.warehouse.dir</name>
            <value>/hive</value>
        </property>
        <property>
            <name>hive.metastore.local</name>
            <value>true</value>
        </property>
        <property>  
           <name>hive.metastore.schema.verification</name>  
           <value>false</value>  
        </property> 
        <property> 
           <name>javax.jdo.option.ConnectionURL</name> 
           <value>jdbc:mysql://localhost: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>
    
    hive --service metastore
    
hive-site.xml 客户端
    <configuration>
        <property>
            <name>hive.metastore.warehouse.dir</name>
            <value>/hive</value>
        </property>
        <property>
            <name>hive.metastore.local</name>
            <value>true</value>
        </property>
        <property>
            <name>hive.metastore.uris</name>
            <value>thrift://N102:9083</value>
        </property>
        
    </configuration>


ss -lnp|grep 2181 查看端口

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 1
码字总数 879
作品 0
长春
程序员
ZooKeeper一二事 - 搭建ZooKeeper伪分布式及正式集群 提供集群服务

集群真是好好玩,最近一段时间天天搞集群,redis缓存服务集群啦,solr搜索服务集群啦,,,巴拉巴拉 今天说说zookeeper,之前搭建了一个redis集群,用了6台机子,有些朋友电脑跑步起来,有点...

风间影月
2016/05/02
0
0
Hive从入门到实战视频教程【40讲全】

1、Hive是什么,Hive的体系结构,Hive和Hadoop的关系 2、Hive的元数据存储、Hive的数据存储、Hive和RDBMS的区别 3、JDK安装 4、Hadoop集群搭建-1 5、Hadoop集群搭建-2 6、Hadoop集群搭建-3 ...

tom先生
2014/11/26
48
0
大数据学习系列之五 ----- Hive整合HBase图文详解

  引言   在上一篇大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)和之前的大数据学习系列之二 ----- HBase环境搭建(单机)中成功搭建了Hive和HBase的环境,并进行了相应的测...

大数据头条
2017/12/19
0
0
hbase高可用集群部署(cdh)

一、概要 本文记录hbase高可用集群部署过程,在部署hbase之前需要事先部署好hadoop集群,因为hbase的数据需要存放在hdfs上,hadoop集群的部署后续会有一篇文章记录,本文假设hadoop集群已经部...

navyaijm2012
2017/05/10
0
0
面试问题

358、你们的集群规模? 开发集群:10台(8台可用)8核cpu 359、你们的数据是用什么导入到数据库的?导入到什么数据库? 处理之前的导入:通过hadoop命令导入到hdfs文件系统 处理完成之后的导...

HIVE
2016/07/05
464
2

没有更多内容

加载失败,请刷新页面

加载更多

《看图轻松理解数据结构与算法系列》导引贴

最近学习数据结构,遇到一个很喜欢的博主,他的文章图文并茂,理解起来很容易。特此开贴记录,方便反复阅读。 博主主页 https://juejin.im/user/57c3970f79bc440063e58518/posts?sort=popul...

科陆李明
46分钟前
1
0
20.27 分发系统介绍~ 20.30 expect脚本传递参数

分发系统介绍分发系统-expect讲解(也就是一个分发的脚本)场景:业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者lnmp,最好还需要吧代码上传到服务器上;但是因...

洗香香
今天
2
0
设计一个百万级的消息推送系统

前言 首先迟到的祝大家中秋快乐。 最近一周多没有更新了。其实我一直想憋一个大招,分享一些大家感兴趣的干货。 鉴于最近我个人的工作内容,于是利用这三天小长假憋了一个出来(其实是玩了两...

crossoverJie
今天
2
0
软件架构:5种你应该知道的模式

Singleton(单例模式)、仓储模式(repository)、工厂模式(factory)、建造者模式(builder)、装饰模式(decorator)……大概每个上课听讲的程序员都不会陌生——软件的设计模式为我们提供...

好雨云帮
今天
3
0
OSChina 周二乱弹 —— 这只是一笔金钱交易

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《暮春秋色》- 窦唯 / 译乐队 《暮春秋色》- 窦唯 / 译乐队 手机党少年们想听歌,请使劲儿戳(这里) @我没有抓狂:跨服聊...

小小编辑
今天
1K
18

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部