近期抽空搭建了一下hadoop-2.7.3 + hbase-1.3.1 + zookeeper-3.4.8 + hive-2.3.0完全分布式平台环境,网上查询了很多相关资料,安装成功后,特意记录下来以供参考。

一、软件准备

  VMware12、hadoop-2.7.3、hbase-1.3.1、zookeeper-3.4.8、hive-2.3.0、jdk-8u65-linux-x64.tar.gz

二、hadoop安装配置

  1.解压jdk:tar -zxvf jdk-8u65-linux-x64.tar.gz -C /home/zs/app/(提前建好的文件夹路径) 

 2. 解压hadoop  tar -zxvf hadoop-2.7.0.tar.gz -C /home/zs/app/

   3.配置环境变量: gedit /etc/proflie 打开文件添加:

   # jdk 
   export JAVA_HOME=/home/zs/app/jdk1.8.0_65
   export JRE_HOME=${JAVA_HOME}/jre
   export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
   export PATH=${JAVA_HOME}/bin:$PATH

   # hadoop2.7.3
   export HADOOP_HOME=/home/zs/app/hadoop-2.7.3
   mapred-site.xml


 4.配置Hadoop中的配置文件

   主要配置四个文件,在Hadoop2.7.3/etc/hadoop中分别为core-site.xml       hdfs-site.xml    yarn-site.xml     mapred-site.xml(拷贝mapred-site.xml.template产生)  同样用sudo gedit命令打开xml文件

      1)core-site.xml

  <configuration>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/zs/app/hadoop-2.7.3/tmp</value>
  </property>
  <property>
     <name>fs.defaultFS</name>
     <value>hdfs://master:9000</value> // master 也可改为机器IP
  </property>
  </configuration>      
      2) hdfs-site.xml

       这里是配置有多少个datanode节点,这里默认为master节点就是NameNode节点,slave节点就是datanode节点。我们这里有两个datanode节点。

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
</configuration>

       3yarn-site.xml

  <configuration>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
 </configuration>

     4mapred-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

      5配置slaves文件,使用gedit 打开,添加:
slave1
slave2

告诉master机器 子节点是什么


     6)配置hadoop-env.sh文件
export JAVA_HOME=/home/zs/app/jdk1.8.0_65
 

    5.配置ssh免密登录

首先通过命令 sudoapt-get install ssh 安装ssh

接下来用命令ssh-keygen -t rsa生成本机密钥,一路回车就好

用命令cat id_rsa.pub >> authorized_keys进行授权

配置好了之后可以用ssh localhost用来测试,如果无需密码弹出如下信息则配置成功

Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-21-generic x86_64)

 * Documentation:  https://help.ubuntu.com/


302 packages can be updated.
4 updates are security updates.

*** System restart required ***
Last login: Sat Dec  3 06:16:02 2016 from 127.0.0.1


6.克隆虚拟机两份,作为slave节点

7.修改主机名称

使用sudo gedit /etc/hostname修改主机名称,主机为master。其余的两台分别为slave1和slave2

8.修改hosts

同样用sudo gedit /etc/hosts ,修改内容如下,其中IP可以使用ifconfig命令查看

192.168.71.134 master
192.168.71.135 slave1
192.168.71.136 slave2

三台虚拟机都要修改

至此,Hadoop的配置环境就建立好了

验证:在master节点中格式化namenode节点

hadoop namenode -format

之后启动hadoop集群

start-all.sh

之后可以使用jps命令查看每台机器上的Java进程


master节点:

30976 Jps
29922 NameNode
30134 SecondaryNameNode
30286 ResourceManager


slave1节点:

2567 Jps
2346 NodeManager
2171 DataNode


slave2节点:2306 NodeManager
2107 DataNode
2557 Jps


三、hive安装配置(基于MySQL的本地模式安装)

  1.解压hive tar -zxvf apache-hive-2.3.0-bin.tar.gz    -C   /home/zs/app

  2.添加MySQL驱动:

         下载mysql-connector-Java-x.y.z-bin.jar文件并放到apache-hive-2.1.1-bin/lib目录下面。

 3.配置环境变量 sudo /etc/profile  添加:

    #hive
   export HIVE_HOME=/home/zs/app/hive-2.3.0
   export PATH=$PATH:$HIVE_HOME/bin

 4.修改hive-site.xml(hive-default.xml 复制重命名而成):

   

  1. <configuration>  
  2.     <property>  
  3.         <name>javax.jdo.option.ConnectionURL</name>  
  4.         <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>  
  5.         <description>JDBC connect string for a JDBC metastore</description>      
  6.     </property>     
  7.     <property>   
  8.         <name>javax.jdo.option.ConnectionDriverName</name>   
  9.         <value>com.mysql.jdbc.Driver</value>   
  10.         <description>Driver class name for a JDBC metastore</description>       
  11.     </property>                 
  12.   
  13.     <property>   
  14.         <name>javax.jdo.option.ConnectionUserName</name>  
  15.         <value>hive</value>  
  16.         <description>username to use against metastore database</description>  
  17.     </property>  
  18.     <property>    
  19.         <name>javax.jdo.option.ConnectionPassword</name>  
  20.         <value>123456</value>  
  21.         <description>password to use against metastore database</description>    
  22.     </property>            
  23. </configuration>  

    5.修改hive-env.sh(hive-env.sh.template  复制重命名而成

  1. export HADOOP_HEAPSIZE=1024  
  2. HADOOP_HOME=/home/zs/app/hadoop-2.7.3  #这里设置成自己的hadoop路径   
  3. export HIVE_CONF_DIR=/home/zs/app/hive-2.3.0/conf   
  4. export HIVE_AUX_JARS_PATH=/home/zs/app/hive-2.3.0/lib 
   
    6.MySQL下创建hive用户

  1.  mysql -uroot -p
  2. Enter password:   
  3.    ......此处省略部分日志......  
  4. mysql> <u>create user 'hive' identified by 'hive';</u>  
  5. Query OK, 0 rows affected (0.05 sec)  
  6.   
  7. mysql> <u>grant all privileges on *.* to 'hive' with grant option;</u>  
  8. Query OK, 0 rows affected (0.00 sec)  
  9.   
  10. mysql> <u>flush privileges;</u>  
  11. Query OK, 0 rows affected (0.00 sec)     
    
     7.hive初始化元数据
    bin/schematool -initSchema -dbType mysql

      8.先启动Hadoop,然后进入hive的lib目录,使用:hive 命令 启动hive

三、zookeeper安装配置

1.部署说明

      ZK官网建议安装在至少3台机器上,故这里将ZK分别安装三台机器组成的集群中

2.解压zookeeper 到/home/zs/app/ 下面

3.设置myid

    在dataDir指定的数据目录(/opt/zookeeper-3.8.4/data)下,创建文件myid,文件内容为一个正整数值,用来唯一标识当前机器,因此不同机器的数值不能相同,建议从1开始递增标识,以方便记忆和管理。

     #     IP(可换成hosts中配置的名字)         标识数值
          192.168.68.122                                      1
          192.168.68.123                   2
          192.168.68.124                   3


4.修改conf/zoo.cfg(zoo_sample.cfg 复制重命名而来

           tickTime=2000

           dataDir=/home/zs/app/zookeeper -3.8.4/data
           clientPort=2181
           initLimit=5
           syncLimit=2
           server.1=master1:2888:3888 
           server.2=slave1:2888:3888
           server.3=slave2:2888:3888
           以上内容的配置,参照了ZooKeeper的官方文档:zookeeperStarted.html。server.X用来配置ZooKeeper集群中的各节点,并建议X的值和myid保持一致。
           端口2181用于监听客户端的连接,端口2888用于Leader监听Follower的连接,而3888则用于Leader选举。
           scp将 zoo.cfg 复制到另外两台机器上
                    scp -r zookeeper/  slave1:/home/zs/app/
                    scp -r zookeeper/  slave2:/home/zs/app/ 

 5:启动zk

         每台机器上执行:[master@master1 zookeeper]$  sudo bin/zkServer.sh start

         之后我们可以使用       sudo bin/zkServer.sh status 查看状态

                                     sudo bin/zkServer.sh stop    停止服务


 

四:Hbase的安装配置



1.解压Hbase 到/home/zs/app 下

2.配置环境变量  sudo /etc/profile

     #hbase
     export HBASE_HOME=/home/zs/app/hbase-1.3.1
     export PATH=$HBASE_HOME/bin:$PATH
     

3.配置hbase-env.sh

[html]  view plain  copy
  1. export JAVA_HOME=/home/zs/app/jdk1.8.0_65
  2. export HBASE_CLASSPATH=/home/zs/app/hbase1.3.1/conf  
  3. # 此配置信息,设置由zk集群管理,故为false  
  4. export HBASE_MANAGES_ZK=false  
  5. export HBASE_HOME=/home/zs/app/hbase1.3.1 
  6. export HADOOP_HOME=/home/zs/app/hadoop-2.7.3 
  7. #Hbase日志目录  
  8. export HBASE_LOG_DIR=/home/zs/app/hbase1.3.1/logs

4.配置hbase-site.xml

[html]  view plain  copy
  1. <configuration>  
  2.   <property>  
  3.     <name>hbase.rootdir</name>  
  4.     <value>hdfs://192.168.68.122:9000/home/zs/app/hbase1.3.1</value>  
  5.   </property>  
  6.   <property>  
  7.      <name>hbase.cluster.distributed</name>  
  8.      <value>true</value>  
  9.   </property>  
  10.   <property>  
  11.       <name>hbase.master</name>  
  12.       <value>master:60000</value>  
  13.   </property>  
  14.    <property>  
  15.     <name>hbase.zookeeper.property.dataDir</name>  
  16.     <value>/home/zs/app/zookeeper-3.8.4</value>  
  17.   </property>  
  18.   <property>  
  19.     <name>hbase.zookeeper.quorum</name>  
  20.     <value>master,slave1,slave2</value>  
  21.   </property>  
  22.   <property>  
  23.     <name>hbase.zookeeper.property.clientPort</name>  
  24.     <value>2181</value>  
  25.   </property>  
  26. </configuration>  

5.配置regionservers

         清空该文件,加入集群的节点,例如我这里是

         slave1

         slave2

6.将hbase scp到节点

           sudo scp/home/zs/app/hbase-1.3.1  slave1:/home/zs/app/
           sudo scp /home/zs/app/hbase-1.3.1  slave1:/home/zs/app/
    

7.启动

           启动之前得保证ZK和hadoop已经启动

          bin/start-hbase.sh

  最终jps效果如下:

                           

8.Web界面访问

           貌似从1.0版本以后端口改为16010端口了,所以web访问为:http://192.168.68.122:16010/


以上个人配置成功了,借鉴了很多朋友们分享出的资料,借此向他们表示感谢,文档整理的可能并不是很完善,有不明白的地方,欢迎与各位多交流。
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐