ZK Hadoop Hive 集群搭建
ZK Hadoop Hive 集群搭建
奔跑的青蛙 发表于9个月前
ZK Hadoop Hive 集群搭建
  • 发表于 9个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 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
×
奔跑的青蛙
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: