`

Hadoop-2.6.0+Zookeeper-3.4.6+Spark-1.3.1+Hbase-1.1.0+Hive-1.2.0集群搭建

 
阅读更多

文章来自:http://blog.csdn.net/u013327467/article/details/45675705

 

自序
这些都是笔者半年的结晶,现将其整理为博客,供各位网友参考。博客内容分为五个部分,如下:

    Ubuntu物理机和虚拟机准备
    ssh登录和jdk安装
    Hadoop-2.6.0+zookeeper-3.4.6 集群搭建
    Spark-1.3.1集群搭建
    Hbase-1.1.0集群搭建
    hive-1.2.0搭建

第一部分:Ubuntu物理机和虚拟机准备

总览:一台物理机和两台虚拟机

    双系统安装Ubuntu 64位物理机,在Windows系统下采用easyBCD安装方法
    1.1 引导文件内容:

title Install Ubuntu
root (hd0,1)
kernel (hd0,1)/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu-14.10-desktop-amd64.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,1)/initrd.lz

1.2 进入安装界面需要使用sudo umount -l /isodevice
1.3 Ubuntu相关配置
1)更新

sudo apt-get grade         

2)安装vim

sudo apt-get install vim

3)修改root用户登录

sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

添加

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-show-manual-login=true
allow-guest=false  

4)设置 root用户密码

sudo passwd root  

此处有输入root用户的密码
5)卸载防火墙

ufw disable   //关闭
sudo apt-get remove  ufw   //卸载
sudo ufw status   //查看

6)安装ssh
安装ssh-server

sudo apt-get install openssh-server

安装ssh-client

sudo apt-get install openssh-client

确认sshserver是否安装好

ps -e | grep ssh

如果出现以下内容,则安装成功

450 ??00:00:00 sshd

重启ssh

 /etc/init.d/ssh restart

2. 在Ubuntu系统下使用VMware安装Ubuntu虚拟机

2.1 下载:VMware-Workstation-Full-11.1.0(下载linux版本)
相关密钥

1F04Z-6D111-7Z029-AV0Q4-3AEH8
YZ7HK-FVG44-H84TQ-C7ZX9-X2A8F
VY3MA-4AD90-089CZ-R4PG9-MKAR0

2.2 配置Ubuntu虚拟机按以上Ubuntu相关配置进行同样操作。
2.3. 配置好虚拟机,关闭虚拟机和VMware,复制虚拟机文件。复制完成后打开虚拟机(两台)。

    修改主机名
    因为笔者搭建此集群是为了学习spark,故将集群主机名命为

 spark01,spark02,spark03

3.1 分别修改:

sudo gedit /etc/hostname
spark01

3.2 虚拟机同上,分别换为spark02,spark03。
4. 修改IP
4.1 集群IP分别设为

192.168.8.101, 192.168.8.102, 192.168.8.103

4.2 先对虚拟机进行修改

1)虚拟机网卡设置为host-only模式
2)进行界面设置

系统设置->网络->选项 ->IPv4设置-> method选择为manual-> 点击add按钮-> 添加IP:192.168.8.102 子网掩码:255.255.255.0 网关:192.168.1.1-> apply
3)同样方式,spark03 IP设置为:192.168.8.103

4)物理机设置一个固定的IP有点麻烦,不过也能实现,一种是采用桥接,第二种是采用虚拟网卡,笔者采用桥接方式.
*点击右上角网络图标栏中的”编辑连接”,网络连接中选中”桥接”,点击”添加”;
*对跳转出来选择连接类型窗口,选择”虚拟–桥接”,点击”新建”,
*在桥接–桥接连接(c)处,点击”添加”,选择”以太网”,点击新建,在设备MAC地址(D)处.选择”eth0”,并”保存”
*点击IPv4设置,方法处选择为”手动”,>点击”添加”设置IP为:192.168.8.101 子网掩码:255.255.255.0 网关:192.168.1.1,”保存”.

    修改主机名和IP的映射关系
    sudo gedit /etc/hosts

192.168.8.101   spark01    
192.168.8.102   spark02
192.168.8.103   spark03

    重启虚拟机和物理机

第二部分:ssh配置和jdk安装

    ssh配置
    本集群的用户名为”huai”,集群统一用一个用户名,用不同的ssh登录时,还要进行一些其他处理,很麻烦,在这就别给自己添麻烦了.
    1)物理机,使用以下命令,四个回车.

huai@spark01:~$ ssh-keygen -t rsa
huai@spark01:~$ cd /home/huai/.ssh
huai@spark01:~/.ssh$ ls
id_rsa  id_rsa.pub

生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
2)对两台虚拟机进行同样操作(操作略)

3)将虚拟机的公钥传到spark01,主要”huai”是我集群的用户名,”huai”应改为你自己设定的用户名

scp id_rsa.pub huai@spark01:/home/huai/.ssh/id_rsa.pub.spark02
scp id_rsa.pub huai@spark01:/home/huai/.ssh/id_rsa.pub.spark03

4)在物理机

huai@spark01:~$ cd /home/huai/.ssh

可以看到以下文件,将公钥_rsa.pub 导入到综合authorized_keys文件中。

huai@spark01:~/.ssh$ ls
authorized_keys  id_rsa.pub          id_rsa.pub.spark03
id_rsa           id_rsa.pub.spark02  known_hosts

导入命令如下

cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.spark02 >> authorized_keys
cat id_rsa.pub.spark03 >> authorized_keys

5)将spark01上的authorized_keys复制到spark02和spark03的/home/huai/.ssh/目录下

scp authorized_keys huai@spark02:/home/huai/.ssh/authorized_keys
scp authorized_keys huai@spark03:/home/huai/.ssh/authorized_keys

7)ssh常见错误修改
  因为笔者的已经配置好了,具体错误就没有了,不过只要你按以下操作之后,保证不会再有错误.
  
1)sudo gedit /etc/ssh/sshd_config
注释”PermitRootLogin without-password”,使用”#”注释,并在其下面添加
PermitRootLogin yes
2)sudo gedit /etc/ssh/ssh_config
添加

 StrictHostKeyChecking no
 UserKnownHostsFile /dev/nul

3)分别在每台上进行ssh登录,使用”exit”退出

ssh spark01
ssh spark02
ssh spark03

4)登录完成后,在每台机子上分别操作以下命令(“huai”为用户名)

sudo chown huai: /home/huai/.ssh
sudo chown huai: /home/huai/.ssh/*  
sudo  chmod 700 /home/huai/.ssh  
sudo  chmod 600 /home/huai/.ssh/*  

5)如果ssh登录时,在known_hosts报出警告,后面显示一个数字,使用以下命令将其删除,比如显示数字”8”.

sed -i 8d /home/huai/.ssh/known_hosts

    安装JDK
    2.1 1)创建文件夹

mkdir /usr/java

2)解压

tar -zxvf jdk-7u80-linux-x64.gz -C /usr/java/

3)修改权限

sudo chmod -R 777 /usr/java/    

2.2 修改环境变量
因为笔者集群已经搭建好了,为了让大家不要经常修改环境变量,笔者在此处把所有安装包的环境变量都列出来,供大家参考。
sudo gedit /etc/profile

export JAVA_HOME=/usr/java/jdk1.7.0_80
export JRE_HOME=/usr/java/jdk1.7.0_80/jre
export SCALA_HOME=/spark/scala-2.11.6
export SPARK_HOME=/spark/spark-1.3.1
export HADOOP_HOME=/spark/hadoop-2.6.0
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native"
export HIVE_HOME=/spark/hive-1.2.0
export IDEA_HOME=/usr/idea/idea-IC-141.178.9
export HBASE_HOME=/spark/hbase-1.1.0
export ZOOKEEPER_HOME=/spark/zookeeper-3.4.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SCALA_HOME/bin:$SPARK_HOME/bin:$IDEA_HOME/bin:$HIVE_HOME/bin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin

source /etc/profile
验证,使用命令java -version
出现java version “1.7.0_80”,则安装成功

2.3 设置jdk默认(若以上安装成功,可以跳过设置默认jdk)

sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_80/bin/java 300  
sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.7.0_80/bin/javac 300  
sudo update-alternatives --install /usr/bin/jar jar /usr/java/jdk1.7.0_80/bin/jar 300
sudo update-alternatives --install /usr/bin/javah javah /usr/java/jdk1.7.0_80/bin/javah 300   
sudo update-alternatives --install /usr/bin/javap javap /usr/java/jdk1.7.0_80/bin/javap 300
sudo update-alternatives --config java  

第三部分:Hadoop-2.6.0+zookeeper-3.4.6集群搭建

 
1. 集群规划
主机名    IP        安装的软件              运行的进程
spark01 192.168.8.101 jdk、hadoop、zookeeper namenode、ResourceManager(yarn)、QuorumPeerMain、JournalNode、(zkfc)、
spark02 192.168.8.102 jdk、hadoop、zookeeper namenode、ResourceManager(yarn)、DataNode、 JournalNode、QuorumPeerMain
spark03 192.168.8.103 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain

    搭建zooekeeper

    2.1 建立spark文件

 sudo mkdir /spar

2.2 解压

tar -zxvf zookeeper-3.4.6.tar.gz -C /spark/

2.3 修改配置
1)修改zoo.cfg

cd /spark/zookeeper-3.4.6/conf/
mv zoo_sample.cfg zoo.cfg
gedit zoo.cfg

修改:

dataDir=/spark/zookeeper-3.4.6/tmp

添加

dataLogDir=/spark/zookeeper-3.4.6/logs

在最后添加:

server.1=spark01:2888:3888
server.2=spark02:2888:3888
server.3=spark03:2888:3888

保存退出

2)建立文件夹

mkdir /spark/zookeeper-3.4.6/tmp
mkdir /spark/zookeeper-3.4.6/logs

3)设置myid
在tmp下创建一个空文件

touch myid
gedit myid

在myid文件写入”1”,

4)修改环境变量
虽然前面已经把所有的环境变量都设置好了,但这个步骤使不能缺的,所以在此处重复一遍

sudo gedit /etc/profile

export ZOOKEEPER_HOME=/spark/zookeeper-3.4.6
export PATH=:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

source /etc/profile

2.4 将配置好的zookeeper拷贝到其他节点

scp -r /spark/zookeeper-3.4.6/ huai@spark02:/spark/
scp -r /spark/zookeeper-3.4.6/ huai@spark03:/spark/

2.5 分别修改虚拟机的环境变量和myid
cd /spark/zookeeper/tmp

gedit myid

其中
spark02 中写入”2”
spark03 中写入”3”

    搭建hadoop集群

    3.1 解压hadoop2.6. 0

 tar -zxvf hadoop-2.6.0.tar.gz -C /spark   

3.2 修改spark文件权限

 sudo chmod -R 777 /spark

3.2 配置hadoop2.6.0

1)cd /spark/hadoop-2.6.0/etc/hadoop/
*依次操作以下命令,添加以下内容,保存退出.

gedit hadoop-env.sh
gedit yarn-env.sh
gedit mapred-env.sh

添加

export JAVA_HOME=/usr/java/jdk1.7.0_80
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native"

注:在hadoop-env.sh,注释以下部分

#export HADOOP_OPTS="$HADOOP_OPTS -
Djava.net.preferIPv4Stack=true"

以下部分,可以直接复制替换.

2) gedit core-site.xml

<configuration>
  <property>
     <name>fs.defaultFS</name>
    <value>hdfs://ns1</value>
  </property>
  <property>
     <name>hadoop.tmp.dir</name>
     <value>/spark/hadoop-2.6.0/tmp</value>
  </property>
  <property>
     <name>ha.zookeeper.quorum</name>         <value>spark01:2181,spark02:2181,spark03:2181</value>
  </property>
</configuration>

3) gedit hdfs-site.xml

<configuration>
  <property>
     <name>dfs.nameservices</name>
     <value>ns1</value>
  </property>
  <property>
     <name>dfs.ha.namenodes.ns1</name>
     <value>nn1,nn2</value>
  </property>
  <property>
     <name>dfs.namenode.rpc-address.ns1.nn1</name>
     <value>spark01:9000</value>
  </property>
  <property>
      <name>dfs.namenode.http-address.ns1.nn1</name>
      <value>spark01:50070</value>
  </property>
  <property>
       <name>dfs.namenode.rpc-address.ns1.nn2</name>
       <value>spark02:9000</value>
  </property>
  <property>
     <name>dfs.namenode.http-address.ns1.nn2</name>
     <value>spark02:50070</value>
  </property>
  <property>
      <name>dfs.namenode.shared.edits.dir</name>  <value>qjournal://spark01:8485;spark02:8485;spark03:8485/ns1</value>
  </property>
  <property>
     <name>dfs.journalnode.edits.dir</name>
     <value>/spark/hadoop-2.6.0/journal</value>
  </property>
   <property>
      <name>dfs.ha.automatic-failover.enabled</name>
      <value>true</value>
   </property>
   <property>
      <name>dfs.client.failover.proxy.provider.ns1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
  <property>
     <name>dfs.ha.fencing.methods</name>
    <value>
          sshfence
          shell(/bin/true)
        </value>
   </property>
   <property>
      <name>dfs.ha.fencing.ssh.private-key-files</name>
      <value>/home/huai/.ssh/id_rsa</value>
  </property>
  <property>
     <name>dfs.ha.fencing.ssh.connect-timeout</name>
     <value>30000</value>
  </property>
</configuration>

4) gedit mapred-site.xml

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

  5)gedit  yarn-site.xml

<configuration>
  <property>
      <name>yarn.resourcemanager.ha.enabled</name>
      <value>true</value>
  </property>
   <property>
    <name>yarn.resourcemanager.cluster-id</name>
    <value>yrc</value>
  </property>
  <property>
      <name>yarn.resourcemanager.ha.rm-ids</name>
       <value>rm1,rm2</value>
  </property>
   <property>
      <name>yarn.resourcemanager.hostname.rm1</name>
      <value>spark01</value>
   </property>
   <property>
     <name>yarn.resourcemanager.hostname.rm2</name>
     <value>spark02</value>
 </property>
   <property>
     <name>yarn.resourcemanager.zk-address</name>
   <value>spark01:2181,spark02:2181,spark03:2181</value>
   </property>
   <property>
     <name>yarn.nodemanager.aux-services</name>
     <value>mapreduce_shuffle</value>
     </property>
</configuration>            

6) gedit slaves

    spark02
    spark03

2.4 复制到其他节点

scp -r /spark/hadoop-2.6.0 huai@spark02:/spark
scp -r /spark/hadoop-2.6.0 huai@spark03:/spark

2.5 修改环境变量,可略过
sudo gedit /etc/profile

export HADOOP_HOME=/spark/hadoop-2.6.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin        

    集群启动(严格按照下面的步骤)

    3.1 启动zookeeper集群(分别在spark01、spark02、spark03上启动zk)

 cd /spark/zookeeper-3.4.6/bin/
./zkServer.sh start

查看状态:一个leader,两个follower

./zkServer.sh status

3.2 启动journalnode(分别在spark01、spark02、spark03上启动journalnode)


cd /spark/hadoop-2.6.0/sbin
hadoop-daemon.sh start journalnode

运行jps命令检验,spark01、spark02、spark03上多了JournalNode进程

3.3 格式化HDFS
在spark01上执行命令

hdfs namenode -format

格式化成功会生成tmp文件,其路径为core-site.xml中的hadoop.tmp.dir配置路径
将其拷到其他节点

scp -r tmp   huai@spark02:/spark/hadoop-2.6.0/
scp -r tmp   huai@spark03:/spark/hadoop-2.6.0/

3.4 格式化ZK(在spark01上执行即可)

hdfs zkfc -formatZK

3.5 启动HDFS(在spark01上执行)

 sbin/start-dfs.sh

3.6 启动YARN.resourcemanager

sbin/start-yarn.sh

3.7 验证 浏览器访问:

 http://192.168.8.101:50070
NameNode 'spark01:9000' (active)
http://192.168.8.102:50070
NameNode 'spark02:9000' (standby)

3.8 验证HDFS HA
1)首先向hdfs上传一个文件

hadoop fs -put /etc/profile /profile
hadoop fs -ls /

2)然后再kill掉active的NameNode
kill -9
访问:http://192.168.8.101:50070 无法打开
访问:http://192.168.8.102:50070
NameNode ‘spark02:9000’ (active)

3)执行

 hadoop fs -ls /
-rw-r--r--   3 root supergroup      1926 2015-05-024 15:36 /profile

4)手动启动那个挂掉的NameNode.spark01上执行
sbin/hadoop-daemon.sh start namenode
访问:http://192.168.8.101:50070
NameNode ‘spark01:9000’ (standby)

5)删除上传文件

 hadoop fs -rm -r /profile

第四部分:spark-1.3.1集群搭建

1.安装 Scala
1.1 解压
tar -zxf scala-2.11.6.tgz -C /spack

1.2 修改环境变量
sudo gedit /etc/profile

export SCALA_HOME=/spark/scala-2.11.6
export PATH=PATH:$SCALA_HOME/bin

source /etc/profile

1.3 显示版本 scala -version
1.4 测试
输入”scala”命令,进入scala交互界面
huai@spark01:~$ scala
scala> 8*8
res0: Int = 64
1.5 将scala复制到其他节点

scp -r /spark/scala-2.11.6/ huai@spark02:/spark/
scp -r /spark/scala-2.11.6/ huai@spark03:/spark/

1.6 重复1.2修改其他节点的环境变量

2.安装spark
2.1 解压

 tar -zxf  spark-1.3.1-bin-hadoop2.6.tgz -C /spark

文件名修改为:spark-1.3.1

2.2 修改环境变量(环境变量原先已经配置好,此处供参考)
sudo gedit /etc/profile

export SPARK_HOME=/spark/spark-1.3.1
export PATH=PATH:$SPARK_HOME/bin   

source /etc/profile

2.3 配置spark
1) 进入spark的conf目录

cd /spark/spark-1.3.1/conf/
mv  spark-env.sh.template spark-env.sh
sudo gedit  spark-env.sh

添加:

export JAVA_HOME=/usr/java/jdk1.7.0_80
export SCALA_HOME=/spark/scala-2.10.5
export SPARK_MASTER_IP=192.168.8.101
export SPARK_WORKER_MEMORY=1g
export HADOOP_CONF_DIR=/spark/hadoop-2.6.0/etc/hadoop
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native"

2) mv slaves.template slaves
sudo gedit slaves

spark01
spark02
spark03     

2.4 把spark复制到其他节点

scp -r spark-1.3.1 huai@spark02:/spark/
scp -r spark-1.3.1 huai@spark03:/spark/

2.5 修改虚拟阶环境变量

sudo gedit /etc/profile

export SPARK_HOME=/spark/spark-1.3.1
export PATH=PATH:$SPARK_HOME/bin
export SCALA_HOME=/spark/scala-2.11.6
export PATH=PATH:$SCALA_HOME/bin

source /etc/profile

3.启动集群
3.1 启动hadoop集群:主节点上
1)启动zookeeper, 每台运行

zkServer.sh start

2)启动hadoop集群,sbin下

 ./start-all.sh

3)启动spark集群

/spark/spark-1.3.1/bin$./start-all.sh

第五部分 hbase-1.1.0集群搭建

注:当使用gedit xxx时,都是需要向文件’XXX’添加在其下面给出的内容

    解压

 tar -zxf  hbase-1.1.0.tgz -C /spack

    配置hbase集群(使用外部zk)

    2.1 gedit hbase-env.sh

export JAVA_HOME=/usr/java/jdk1.7.0_80
export HBASE_MANAGES_ZK=false
export HBASE_PID_DIR=/spark/hbase-1.1.0/pids
export HBASE_CLASSPATH=/spark/hadoop-2.6.0/etc/hadoop
export HBASE_HOME=/spark/hbase-1.1.0    

2.2 gedit hbase-site.xml

<configuration>
   <property>
       <name>hbase.tmp.dir</name>
       <value>/spark/hbase-1.1.0/tmp</value>
   </property>
  <property>
      <name>hbase.rootdir</name>
      <value>hdfs://ns1/hbase</value>
   </property>
    <property>
         <name>hbase.cluster.distributed</name>
         <value>true</value>
   </property>
   <property>
      <name>zookeeper.session.timeout</name>
      <value>120000</value>
   </property>
   <property>
    <name>hbase.zookeeper.property.tickTime</name>
    <value>6000</value>
  </property>
  <property>
     <name>hbase.zookeeper.property.clientPort</name>
     <value>2181</value>
   </property>
   <property>
      <name>hbase.zookeeper.quorum</name>
      <value>spark01,spark02,spark03</value>
    </property>
   <property>
      <name>hbase.zookeeper.property.dataDir</name>
      <value>/spark/zookeeper-3.4.6/tmp</value>
   </property>
   <property>
      <name>dfs.replication</name>
      <value>2</value>
    </property>
    <property>
       <name>hbase.master.maxclockskew</name>
       <value>180000</value>
    </property>
</configuration>

2.3 gedit regionservers

spark01
spark02
spark03

    把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下

    拷贝hbase到其他节点

scp -r /spark/hbase-1.1.0  huai@spark02:/spark/
scp -r /spark/hbase-1.1.0  huai@spark03:/spark/

5.将hbase添加到环境变量中
sudo gedit /etc/profile

export HBASE_HOME=/spark/hbase-1.1.0
export PATH=$HBASE_HOME/bin:$PATH

source /etc/profile

6.将配置好的HBase拷贝到每一个节点并同步时间和修改环境变量

7.启动所有的hbase
7.1 启动zk

zkServer.sh start

7.2 启动hadoop集群

start-dfs.sh

7.3 启动hbase,在主节点上hbase-1.1.0/bin运行

start-hbase.sh

8.通过浏览器访问hbase Web页面
8.1 HMaster Web页面

http://192.168.8.101:16010

8.2 HRegionServer Web页面

http://192.168.8.101:16030

9.shell 验证
进入hbase bin目录下:

huai@spark01:/spark/hbase-1.1.0/bin$ ./hbase shell

9.1 使用list验证:

hbase(main):001:0> list
     TABLE                                                                           
     user                                                                            
     1 row(s) in 1.4940 seconds
     => ["user"]
     hbase(main):002:0>

9.2建表验证

create 'user','name','sex'

如果list和建表都没出现错误的话,就意味着Hbase 安装成功

10.安装过程中错误排除

10.1 当Hbase shell时出现这样的错误
SLF4J: Found binding in [jar:file:/usr/local/hbase-1.1.0/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j /impl/StaticLoggerBinder.class,是因为hadoop和hbase的slf4j-log4j12 jar包冲突,将HBase中的slf4j-log4j12-1.7.5移除

10.2 Hbase运行要在hadoop非安全模式下使用,使用以下命令查看hadoop安全模式和退出安全模式.

hdfs dfsadmin -safemode get      //查看
hdfs dfsadmin -safemode leave    //退出

10.3 安装失败后,要删除hadoop文件系统下的Hbase文件,使用命令

hadoop fs -rm -r -f /hbase

10.4 这是最最关键的.hosts文件中localhost的IP为127.0.0.1,如果有127.0.1.1的话,要将其改为127.0.0.1,以下是笔者hosts文件中的内容:

sudo gedit /etc/hosts

127.0.0.1 localhost

192.168.8.101    spark01   
192.168.8.102    spark02
192.168.8.103    spark03

#The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

注:spark01,spark02,spark03为集群主机名

10.5 修改HBase文件目录权限

hadoop fs -chmod -R 777 /hbase  

10.6 如果你多次安装过不同版本的HBase且使用外部zookeeper,记得清理zookeeper中Hbase中文件,笔者就是因为这个问题,苦苦折磨了一周.

1)关闭Hbase,在zookeeper的bin目录运行zkCli.sh
终端最后显示:

WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]

2)按以下操作删除Hbase

[zk: localhost:2181(CONNECTED) 1] ls /
[hbase, hadoop-ha, yarn-leader-election, zookeeper]

//如果有Hbase则进行下一步

[zk: localhost:2181(CONNECTED) 2] rmr /Hbase

3) 重启HBase

start-hbase.sh

    1)单独启动HMaster命令

hbase start master
hbase  stop master

2)regionserver单独启动命令

hbase start  regionserver
hbase  stop  regionserver

    Hbase安装总结

    12.1 Hbase与hadoop有版本兼容要求,一般的解决方式都是把Hbase中与hadoop相关的jar包替换成hadoop版本的jar包.本次安装中,hadoop-2.6.0和hbase-1.1.0没有替换jar包,但经过一周的折腾,也安装成功了。
    12.2 集群时间记得要同步,同步方式界面操作调整时区和格式。
    12.3 安装会因为环境不同,而出现不同的错误,但整个安装过程应该有这样的心态:屡败屡战,经折腾。

第六部分 hive-1.2.0搭建

1.概述
1.1 hive安装可分为四部分
1)mysql安装
2)Metastore的配置
3)HiveClient 配置
4)spark中的ThriftServer配置
1.2 搭建分布:mysql,Metastore安装配置在主节点spark01上, HiveClient客户端安装在spark02上。
1.3 如果只搭建Metastore话,只在一台机子上配置mysql,Metastore即可。还有hive运行在hadoop集群上,安装运行时,记得启动zookeeper和hadoop。

2.mysql安装
2.1Ubuntu软件中心下载安装mysql服务器
2.2 配置mysql
1)修改mysql的密码
运行

`/usr/bin/mysql_secure_installation

2)输入密码
3)删除匿名用户

Remove anonymous users? [Y/n] Y

4)允许用户远程连接

Disallow root login remotely? [Y/n]n

5)移除test数据库

Remove test database and access to it? [Y/n] Y

6)登陆mysql
mysql -u root -p
7)建立hive数据库,并对其授权,注’huai’为你设立的登录密码

mysql>create database hive;
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'huai' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;

3.hive 安装
3.1 解压

tar -zxvf apache-hive-1.2.0.tar.gz -C /spark/

文件名修改为hive-1.2.0
3.2 配置
1)修改配置文件,hive-1.2.0/conf下

mv hive-default.xml.template hive-site.xml
mv  hive-log4j.properties.template hive-log4j.properties
mv  hive-exec-log4j.properties.template  hive-exec-log4j.properties
mv hive-env.sh.template   hive-env.sh

2)gedit hive-env.sh

export HADOOP_HOME=/spark/hadoop-2.6.0
export HIVE_CONF_DIR=/spark/hive-1.2.0/conf

3)gedit hive-log4j.properties
添加

 hive.log.dir=/spark/hive-1.2.0/logs

4)新建logs文件
mkdir /spark/hive-1.2.0/logs
     
5)gedit hive-site.xml
删除所有内容,添加如下内容.注意配置文件中的’huai’,为mysql登录密码,记得修改

<configuration>
   <property>
      <name>hive.metastore.warehouse.dir</name>
      <value>hdfs://ns1/hive/warehouse</value>
   </property>
    <property>
      <name>hive.exec.scratchdir</name>
      <value>hdfs://ns1/hive/scratchdir</value>
   </property>
   <property>
      <name>hive.querylog.location</name>
      <value>/spark/hive-1.2.0/logs</value>
   </property>
   <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
      <description>JDBC connect string for a JDBC metastore</description>
   </property>
   <property>
       <name>javax.jdo.option.ConnectionDriverName</name>
       <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
    </property>
    <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
        <description>username to use against metastore database</description>
    </property>
    <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>huai</value>
     <description>password to use against metastore database</description>
    </property>
     <property>
         <name>hive.zookeeper.quorum</name>
         <value>spark01,spark02,spark03</value>
     </property>
</configuration>

3.3 配置环境变量
sudo gedit /etc/profile

export HIVE_HOME=/spark/hive-1.2.0
export PATH=:$HIVE_HOME/bin
source /etc/profile

3.4 hive和mysq安装完成后,将mysql-connector-java-5.1.25-bin.jar连接jar拷贝到hive-1.2.0/lib目录下
3.5 运行hive,hive-1.2.0/bin下
./hive
3.5 访问 http://192.168.8.101:50070
查看hadoop文件系统,多了个hive文件,证明安装成功.
3.6 修改hive文件权限

hadoop fs -chmod -R 777 /hive

4.Hive客户端配置

此部分刚开始也可以不安装,在进一步学习之后,学习需要的话,就要安装了。
4.1 将Hive从Master节点(spark01)拷贝到Slave节点(spark02)上

scp -r /spark/hive-1.2.0  huai@spark02:/spark/

4.2 配置Metastore的连接信息
在hive-1.2.0/conf下

gedit hive-site.xml

添加以下内容 :

<property>
 <name>hive.metastore.uris</name>
  <value>thrift://spark01:9083</value>
 <description>Thrift URI for the remote metastore.Used by metastore client to connect to remote metastore.</description>
</property>

4.3 修改环境变量

sudo gedit /etc/profile
export HIVE_HOME=/spark/hive-1.2.0
export PATH=:$HIVE_HOME/bin
source /etc/profile

5.ThriftServer配置
ThriftServer相当于JDBC,是sparkSQL学习部分,此部分首先可以不做配置
在主节点spark01上,/spark/hive-1.2.0/conf下
gedit hive-site.xml
添加:

<property>
   <name>hive.metastore.uris</name>
   <value>thrift://spark01:9083</value>
    <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>
<property>
     <name>hive.server2.thrift.min.worker.threads</name>
     <value>1</value>
     <description>Minimum number of Thrift worker threads</description>
</property>
<property>
   <name>hive.server2.thrift.max.worker.threads</name>
   <value>100</value>
   <description>Maximum number of Thrift worker threads</description>
  </property>
  <property>
      <name>hive.server2.thrift.port</name>
      <value>10000</value>
      <description>Port number of HiveServer2 Thrift interface. Can be overridden by setting $HIVE_SERVER2_THRIFT_PORT</description>
  </property>
   <property>
      <name>hive.server2.thrift.bind.host</name>
      <value>spark01</value>
 </property>

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics