1、 建立hadoop群组以及hadoop用户。
2、 安装jdk,版本1.7,配置环境变量,卸载centos系统自带jdk版本
3、 配置SSH无密码登录(hadoop用户下)、
1) 在hadoop用户下
2) 配置ssh命令
4、 伪分布式不用修改etc/hosts文件,但需要在root权限下修改系统时间,关闭防火墙,所用到的端口都要添加到防火墙里。
5、 Hadoop安装配置
1)安装位置:/usr/local 解压文件到该文件下,在root权限下执行,加压后,将文件夹“hadoop”的读写权限分配给hadoop用户chown –R hadoop:hadoop hadoop ,配置环境变量etc/profile
以下在hadoop用户下配置
2)修改配置文件core-site.xml
3)修改配置文件
4)复制并重命名mapred-site.xml.template为mapred-site.xml
5)修改配置文件yarn-site.xml
6)修改slaves文件,由于是伪分布式的,直接将原来的localhost改为主机ip地址即可
7)hadoop namenode –format只需格式化一次,无需多次进行格式化
配置完启动hadoop
管理hadoop中HDFS网址http://localhost:50070
启动进程
6、 伪分布式的hbase的安装和配置
1) 解压hbase到/use/local 目录下,给hadoop用户赋予hbase文件夹的读写权限
2) 配置hbase中conf目录下的hbase-env.sh
设置HBASE_MANAGES_ZK=true 用hbase自带的zookeeper,在hbase启动后,会启动zookeeper服务,并在zookeeper上建立hbase 节点,该节点存储这regionserver的信息,通过此信息访问hbase
3) 修改regionserver
改为Master的主机名
4)修改配置文件hbase-site.xml
hbase.master 是指定运行的HMaster的服务器和端口,hbase.master.maxclockskews是用来防止Hbase节点之间时间不一致造成regionserver启动失败,hbase.zookeeper.quorum设置Zookeeper节点的主机名,它的值个数必须是奇数
问题一:
对于hbase.regionserver.ipc.address 是解决hbase绑定多网卡问题
Hbase集群节点上有两个网卡,一个是集群内部使用的网卡,一个用来和外网传输数据。但是部署安装完成后,hbase regionserver启动后60020端口一直绑定内网网卡,导致外网无法访问hbase集群
Java API 操作hbase连接时一直报如下错误:
表示没有从zookeeper节点处获得hbase相关meta表的信息,没有访问到hbase集群。
通过netstat –ntpl 发现60020绑定到hosts里面配置的内网ip
这里获取ip的方式是解析hosts文件里面第一个和本机hostname对应的IP然后绑定,在hbase-site.xml配置文件中手动人为的添加regionserver启动ip地址问题。可以解决
问题二:
在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hadoop namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID保持不变。
解决方法
根据hdfs-site.xml 里面配置的datanode和namenode对应的目录,找到current文件夹里的VERSION,可以看到clustID,改变datanode中的VERSION文件的clusterID与namenode一样即可。
HMaster主要负责Table和Region的管理工作,具体包括:
1、 管理用户对Table的增删改查操作
2、 管理HregionServer负载均衡,调整Region分配。
3、 在Region Split后,负责新Region的分配
4、 在HRegionServer停机后,负责失效HRegionServer上的Region迁移
HMaster主要任务就是告诉每台HRegion Server它要维护哪些HRegion。当一台新的HRegionServer登录到HMaster时,HMaster会告诉它等待分配的数据。当其中一个HRegion死机时,HMaster会再将它们分配到其他的HRegionServer中。
HRegionServer:
所有的数据库数据保存在HDFS分布式系统上,一台机器上面一般只运行一个HRegionServer,且每个区段的HRegion也只会被一个HRegion服务器维护。