设为首页 收藏本站
查看: 938|回复: 0

[经验分享] hadoop zookeeper hbase的安装、配置

[复制链接]

尚未签到

发表于 2016-12-7 08:46:04 | 显示全部楼层 |阅读模式
      在Hadoop还未诞生的那个时代,我们一般通过多线程、多任务分解的方式来尽可能的使用计算机资源,最大限度利用计算资源。而在这个大数据 迅速膨胀的今天,显然这样的处理已经不能满足我们的需求,面对互联网越来越多有价值的数据,如何更好的分析这些数据?如何挖掘其中的内 在价值?这时Hadoop作为一个分布式文件系统(Hadoop Distributed File System),简称HDFS应运而生。让使用者在完全不了解其底层实现细节的情况下,完成对 分布式计算应用的开发。HDFS有高容错性的特点,而且可以部署在低廉的硬件上,但是提供高传输率来访问应用程序的数据。
      Hadoop是根据 google公司发表的MapReduce和Google档案系统的论文自行实践而成。Hadoop实现了MapReduce (任务分解与结果汇总)的编程范式,将应用程序分割成许多小部分,而且每个小部分都能在集群中的任意节点上执行或重新执行。HDFS是用做存储所 有的计算节点的数据,为整个带来了非常高的带宽。MapReduce和HDFS的结合,可以使整个框架能很好地自动处理节点故障。 Apache Hadoop平台包括:Hadoop内核、MapReduce、HDFS以及相关的项目。eg,Apache Hive、Apache HBase、ZooKeeper、Avro etc.
    Hadoop的安装非常简单,目前最新的版本2.5.0 release已经发布。大家可以去官网上下载自己喜欢的版本。本文使用的hadoop-1.1.2。
   Hadoop是为了再Linux平台上使用而开发的,当然在windows、UNIX、甚至是Mac OS X 系统上运行也有良好的表现。不过在windows系统上安装就稍显负责一点儿需要安装Cygwin来模拟Linux然后才能安装Hadoop。闲话少说先让我们来看看在Linux如何安装Hadoop吧。
  我们都知道Hadoop是用java编写的,所以在安装Hadoop之前需要做点儿准备工作。
 
   1.我们要先来安装Hadoop编译以及MapReduce运行所必须的JDK。这里推荐安装JDK6.
   2.由于Hadoop运行在一个分布式集群的环境,所以会在多台机器上进行交互 我们需要安装ssh来实现不输入密码通信
 
   搭建hadoop环境
1.修改ip地址
namenode:192.168.134.100
datanode1:192.168.134.101
datanode2:192.168.134.102
    
DSC0000.jpg
 我的namenode的ip设置为


DSC0001.jpg
 这时候修改完后需要执行一下命令 否则修改不起作用


DSC0002.jpg
 

2.修改hostname

DSC0003.jpg
 修改相应的位置 保存退出即可。

将hostname与ip绑定

DSC0004.jpg
 然后验证一下

DSC0005.jpg
3.关闭防火墙 


 
DSC0006.jpg
  

4.设置SSH自动登录
  创建用户组
  groupadd hadoop  添加一个组
  useradd hadoop -g hadoop  添加用户
 切换到普通用户下,输入ssh-keygen -t rsa 命令生成公钥和私钥
然后进入/home/hadoop/.ssh目录下  执行cp id_rsa.pub authorized_keys
然后可以尝试ssh 连接hostname(第一次需要输入密码,第二次就不用了)
DSC0007.jpg

所谓的SSH的无密码登录就是在master上生成一个公钥和私钥对,然后将公钥复制到slave机器上,当master去ssh slave时,在slave上会生成一个随机数并用master的公钥加密后传给master,然后master用自己的私钥解密后回传给slave 去判断是否一致。
在使用ssh无密码登录时我们需要注意:
1.需要且到root下,修改/etc/ssh/sshd_config修改一下配置

DSC0008.png
 

2.切到普通用户如hadoop 将.ssh权限设置为700 :chmod 700 .ssh
3.切到普通用户如hadoop  将authorized_keys(公钥) 权限设置为600 chmod 600 authorized_keys
 5.jdk安装
执行mkdir /usr/java  然后通过ssh工具将jdk安装包上传到linux中 我使用的版本为jdk-6u45-linux-x64.bin它是一个自解压文件 安装过程如下
# chmod 755 jdk-6u45-linux-x64.bin
# ./jdk-6u45-linux-x64.bin
然后配置环境变量
# vi /etc/profile
添加以下内容

DSC0009.jpg
 然后 修改保存完毕 需要使文件生效  执行命令 source /etc/profile

然后我们可以测试以下

DSC00010.jpg
 JDK安装完成。

6.安装tomcat
创建文件夹并上传tomcat安装文件 mkdir /usr/servers 我使用的是apache-tomcat-6.0.39.tar.gz
解压apache-tomcat-6.0.39.tar.gz
# tar -zxvf apache-tomcat-6.0.39.tar.gz
解压OK了 我们可以执行命令  netstat -ano|grep 8080检查8080端口是否被占用 如果没有输出 则未被占用
我们进入apache-tomcat-6.0.39/bin下执行./startup.sh出现如下提示 说明tomcat安装 DSC00011.jpg
 

 
     基本环境我们已经搞定,现在我们的主角hadoop即将登场,我们可以从Apache官网找到hadoop的压缩包,我们需要使用工具将其上传到Linux中,然后解压 过程跟安装tomcat类似。接下来让我们来看看,如何配置hadoop的吧。
     我们首先进入hadoop放置配置文件的文件夹,浏览一下大概内容:

DSC00012.jpg
 在这之前切记不能忘了修改 %hadoop_home%/confg/hadoop-env.sh文件的Java_home

否则我们会在启动hadoop中报错 ”[hadoop] Error:JAVA_HOME is not set“
然后我们首先来配置一下core-site.xml文件


DSC00013.jpg
 
 

接下来让我们来配置一下文件系统HDFS的配置文件hdfs-site.xml,由于我们只有俩个数据节点所以设置为2(默认值为3)

DSC00014.jpg
 

接下来我们要对MapReduce进行配置mapred-site.xml

DSC00015.jpg
 最后来配置一下masters(主) 修改成namenode 与上面保持一致,slaves(从)修改为 datanode1 datanode2

然后需要我们将配置好的hadoop 分发给datanode1和datanode2
scp -r /home/hadoop/hadoop-1.1.2 datanode1:/home/hadoop/
scp -r  /home/hadoop/hadoop-1.1.2 datanode2:/home/hadoop/
 现在我们开始来尝试启动hadoop吧:
启动前我们需要对HDFS文件系统进行格式化操作


DSC00016.jpg
 
 

然后我们可以尝试启动我们的hadoop了
执行命令./start-all.sh即可
 【遇到的问题】

DSC00017.jpg
 

【解决办法】
 修改${hadoop_home}/conf/hadoop-env.sh中的hadoop_pid_dir的内容
【可能遇到的防火墙问题导致hadoop无法启动解决办法】
关闭掉selinux
#/usr/sbin/setenforce 0 立刻关闭selinux
service iptables stop
DSC00018.jpg
 

这时我们可以通过 /hadoop hdfsadmin -report来验证一下
  [hadoop@master bin]$./hadoop dfsadmin -report
  Configured Capacity: 37558796288 (34.98 GB)
  Present Capacity: 28923084830 (26.94 GB)
  DFS Remaining: 28923027456 (26.94 GB)
  DFS Used: 57374 (56.03 KB)
  DFS Used%: 0%
  Under replicated blocks: 1
  Blocks with corrupt replicas: 0
  Missing blocks: 0
  -------------------------------------------------
  Datanodes available: 2 (2 total, 0 dead)
  Name: 192.168.134.102:50010
  Decommission Status : Normal
  Configured Capacity: 18779398144 (17.49 GB)
  DFS Used: 28687 (28.01 KB)
  Non DFS Used: 4317794289 (4.02 GB)
  DFS Remaining: 14461575168(13.47 GB)
  DFS Used%: 0%
  DFS Remaining%: 77.01%
  Last contact: Sat Sep 20 21:15:45 PDT 2014
  Name: 192.168.134.101:50010
  Decommission Status : Normal
  Configured Capacity: 18779398144 (17.49 GB)
  DFS Used: 28687 (28.01 KB)
  Non DFS Used: 4317917169 (4.02 GB)
  DFS Remaining: 14461452288(13.47 GB)
  DFS Used%: 0%
  DFS Remaining%: 77.01%
  Last contact: Sat Sep 20 21:15:45 PDT 2014
 
我们也可以通过hadoop的web管理验证
查看jobtracker状态
http://192.168.134.100:50030
查看tasktracker状态
http://192.168.134.101:50060
http://192.168.134.102:50060
查看HDFS状态:
http://192.168.134.100:50070
安装zookeeper-3.4.5
使用WinSCP将zookeeper-3.4.5.tar上传到/home/hadoop目录下
tar -zxvf zookeeper-3.4.5.tar 解压
  进入zookeeper-3.4.5/conf/目录 我们会看到zoo_simple.cfg配置文件
  [hadoop@master zookeeper-3.4.5]$ cd conf/
  [hadoop@master conf]$ ls
  configuration.xsl  log4j.properties  zoo_sample.cfg
  执行命令 cp zoo_sample.cfg zoo.cfg
  编辑zoo.cfg文件如下:
  
DSC00019.jpg
 

 为了让系统能够识别zoo.cfg中的server.id=host:port:port中server.id,在namenode节点的/home/hadoop/zookeeper-3.4.5/data中创建一个myid 里面只有一个数字1;同理datanode1的/home/hadoop/zookeeper-3.4.5/data下创建一个myid里面只有一个数字2,依次类推...id范围为1-255
  这些配置需要复制到集群的每个节点上。
  然后切换到root用户修改/etc/profile文件:
  
DSC00020.jpg
 
  然后同步修改其他节点,修改完成后执行zookeeper分发命令
  scp -r zookeeper-3.4.5 datanode1:/home/hadoop
  scp -r zookeeper-3.4.5 datanode2:/home/hadoop
  现在我们可以尝试运行zookeeper了。
  [hadoop@namenode bin]$ ./zkServer.sh start
  [hadoop@datanode1 bin]$ ./zkServer.sh start
  [hadoop@datanode2 bin]$ ./zkServer.sh start
  然后我们可以通过
  [hadoop@datanode1 bin]$ ./zkServer.sh status
  JMX enabled by default
  Using config: /home/hadoop/zookeeper-3.4.5/bin/../conf/zoo.cfg
  Mode: leader
  [hadoop@datanode2 bin]$ ./zkServer.sh status
  JMX enabled by default
  Using config: /home/hadoop/zookeeper-3.4.5/bin/../conf/zoo.cfg
  Mode: follower
  来验证当前节点在zookeeper中的角色是leader还是follower。
  至此zookeeper安装完成。
  【可能遇到的问题】
  我们打开zookeeper-3.4.5/bin/zookeeper.out会看到这些异常(确实看着让人很不爽)不过我们不用管它,这只是其他节点上的zookeeper未启动导致的。
  
DSC00021.jpg
 
  HBase安装
  同样我首先需要上传HBase安装包并解压(具体过程与上一样 略)。
  我们使用的是hbase-0.94.7-security.tar.gz 故解压完后将其重命名为hbase-0.94.7。
  由于HBase-0.94.7中带有hadoop-core.1.0.4.jar 而我们使用的hadoop-1.1.2所以未了避免冲突,我们需要将hadoop-core-1.0.4.jar换成hadoop-core-1.1.2.jar。
  然后打开conf/hbase-env.sh修改一下内容
  # The java implementation to use.  Java 1.6 required.
  export JAVA_HOME=/usr/java/jdk1.6.0_45
  # Extra Java CLASSPATH elements.  Optional.
  export HBASE_CLASSPATH=/home/hadoop/hadoop-1.1.2/conf
  # Tell HBase whether it should manage it's own instance of Zookeeper or not.
  export HBASE_MANAGES_ZK=false
  接下来需要我们来配置conf/hbase-site.xml
  
DSC00022.jpg
 hbase.rootdir指定Hbase数据存储目录,如果/hbase目录不存在,则需要在namenode节点中通过hadoop fs -    mkdir /hbase创建该目录
  hbase.cluster.distributed 指定是否是完全分布式模式,单机模式和伪分布式模式需要将该值设为false
  hbase.master指定Master的位置
  hbase.zookeeper.quorum 指定zooke的集群,多台机器以逗号分隔
  接下来,打开conf/regionservers添加一下内容
  datanode1
  datanode2
  指定HRegionServer进程将在哪些节点上运行
  然后将配置好的HBase分发给各个节点 同上 略...
  至此,HBase配置已经OK,在namenode上启动hadoop集群,接着在每台机器上启动zookeeper,最后启动hbase,以./hbase shell进入hbase的shell命令行,运行status查看当前的状态,如果命令可正常运行说明集群配置成功。
  验证地址:
  http://192.168.134.100:60010/master-status
  
DSC00023.jpg
 
  启动顺序:hadoop-》zookeeper-》hbase
  停止顺序:hbase-》zookeeper-》hadoop
  哈哈 大功告成 小开心一下。 DSC00024.gif

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-310729-1-1.html 上篇帖子: hadoop的应用(摘自itpub论坛) 下篇帖子: [Hadoop] TopK的一个简单实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表