1.文档目的

上篇博文
在linux下安装hadoop分布式集群非单机版 大家安装时候需要创建3个虚拟机,但是有的小伙伴说,我的笔记本配置不够,带不动,咋办呢?
所以笔者也是把单机版的安装方式整理了一份

本文可以让大家熟悉安装hadoop和hbase,并能自主解决安装过程中遇到的问题。本文主要是描述安装和配置hadoop和hbase的详细步骤。

本文档假设读者已在VMware上安装centOS虚拟机,相关资源将会在文末贴出~

2. 安装和配置hadoop

本机示例环境为centOS 6.5,hadoop版本为hadoop-2.6.0

2.1安装JDK

(1)安装JDK1.6或者以上版本,这里安装1.8.0_111,解压到/usr/java/jdk1.8.0_111;
(2)在/root/.bash_profile中添加如下配置:

export JAVA_HOME=/usr/java/jdk1.8.0_111
export PATH=$JAVA_HOME/bin:$PATH

(3)为使环境变量生效,在终端输入命令 source ~/.bash_profile

(4)安装验证jdk是否安装成功 输入命令 java -version,如图所示,表示安装成功

linux hadoop 安装 用户组 linux安装hadoop集群_大数据

2.2配置SSH无密码登陆

此为非必要步骤,但执行后不需在后续启动hadoop时频繁输入密码授权,分别输入以下命令:

ssh-keygen –t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

验证ssh,输入 ssh localhost,未提示要输入密码即可登录。

2.3安装Hadoop

(1)复制 hadoop-2.6.0.tar.gz 到/root/hadoop目录下,然后输入命令

tar -xzvf hadoop-2.6.0.tar.gz

解压,解压后目录为:/root/hadoop/ hadoop-2.6.0
(2)在/root/hadoop/hadoop-2.6.0/目录下,建立tmp、hdfs/name、hdfs/data目录,执行如下命令(也可手动创建以下文件夹)

mkdir /root/hadoop/hadoop-2.6.0/tmp
mkdir /root/hadoop/hadoop-2.6.0/hdfs
mkdir /root/hadoop/hadoop-2.6.0/hdfs/name
mkdir /root/hadoop/hadoop-2.6.0/hdfs/data

其中/root/hadoop/hdfs/hadoop-2.6.0/data也可不创建,hadoop在初始化启动时会自动创建该目录
(3)设置环境变量,输入命令

vi ~/.bash_profile

按insert键编辑文本,写入

set hadoop path
export HADOOP_HOME=/root/hadoop/hadoop-2.6.0
export PATH=$PATH:$HADOOP_HOME/bin

编辑完成后按shift+;进入命令模式,出:后输入wq!保存退出
(4)使环境变量生效,输入命令 :source ~/.bash_profile

2.4 Hadoop配置

进入linux hadoop 安装 用户组 linux安装hadoop集群_linux hadoop 安装 用户组_02HADOOP_HOME是你所解压hadoop的地址,上文中有配置到这个参数),涉及的配置文件如下:

hadoop-2.6.0/etc/hadoop/hadoop-env.sh
hadoop-2.6.0/etc/hadoop/yarn-env.sh
hadoop-2.6.0/etc/hadoop/core-site.xml
hadoop-2.6.0/etc/hadoop/hdfs-site.xml
hadoop-2.6.0/etc/hadoop/mapred-site.xml
hadoop-2.6.0/etc/hadoop/yarn-site.xml

(1)配置hadoop-env.sh

# The java implementation to use.
#export  JAVA_HOME=${JAVA_HOME}
export  JAVA_HOME=/usr/lib/jdk1.8.0_111

见如图示例:

linux hadoop 安装 用户组 linux安装hadoop集群_hadoop_03

(2)配置yarn-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_111

见如图示例:

linux hadoop 安装 用户组 linux安装hadoop集群_centos_04

(3)配置core-site.xml
添加如下配置:

<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<description>HDFS的URI,文件系统://namenode标识:端口号</description>
</property>
<property>
 	<name>hadoop.tmp.dir</name>
 	<value>/root/hadoop/hadoop-2.6.0/tmp</value>
 	<description>namenode上本地的hadoop临时文件夹</description>
</property>

见如下示例:

linux hadoop 安装 用户组 linux安装hadoop集群_centos_05

(4),配置hdfs-site.xml
添加如下配置

<property>
<name>dfs.name.dir</name>
<value>/root/hadoop/hadoop-2.6.0/hdfs/name </value>
<description>namenode上存储hdfs名字空间元数据 </description>?
</property>
<property>
<name>dfs.data.dir</name>
<value>/root/hadoop/hadoop-2.6.0/hdfs/data</value>
<description>datanode上数据块的物理存储位置</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>副本个数,配置默认是3,应小于datanode机器数量</description>
</property>

见如下示例:

linux hadoop 安装 用户组 linux安装hadoop集群_linux hadoop 安装 用户组_06

(5)配置mapred-site.xml
添加如下配置:

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

见如下示例:

linux hadoop 安装 用户组 linux安装hadoop集群_大数据_07

(6)配置yarn-site.xml
添加如下配置:

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8099</value>
</property>

见如下示例:

linux hadoop 安装 用户组 linux安装hadoop集群_大数据_08

以上配置完成后便可启动hadoop了

2.5 Hadoop启动

记住:以下命令接在hadoop根目录下执行
(1)格式化namenode
输入命令

bin/hdfs namenode –format

(2)启动NameNode 和 DataNode 守护进程
输入命令

sbin/start-dfs.sh

(3)启动ResourceManager 和 NodeManager 守护进程
输入命令

sbin/start-yarn.sh

(4)启动验证

执行jps命令,有如下进程,说明Hadoop正常启动

54679 NameNode

54774 DataNode

15741 Jps

55214 NodeManager

55118 ResourceManager

54965 SecondaryNameNode

见如下示例:

linux hadoop 安装 用户组 linux安装hadoop集群_linux_09

在浏览器中输入http://localhost:8099/ 即可看到YARN的ResourceManager的界面。注意:默认端口是8088,本文设置了yarn.resourcemanager.webapp.address为:${yarn.resourcemanager.hostname}:8099

如下所示:

linux hadoop 安装 用户组 linux安装hadoop集群_hadoop_10

3 安装和配置Hbase

此处安装hbase版本为hbase-1.0.0

3.1 安装hbase

首先创建目录/root/hbase,可手动创建也可使用命令mkdir /root/hbase创建。
将压缩文件解压到该目录下 tar –vxfz hbase-1.0.0-cdh5.4.8.tar

3.2 修改hbase配置文件

修改的配置文件目录在/root/hbase / hbase-1.0.0/conf,涉及到修改的配置文件为

hbase-env.sh
hbase-site.xml
(1)修改hbase-env.sh,添加以下配置:

export JAVA_HOME=/usr/java/jdk1.8.0_111
export HBASE_MANAGES_ZK=true

见如下所示:

linux hadoop 安装 用户组 linux安装hadoop集群_大数据_11

linux hadoop 安装 用户组 linux安装hadoop集群_linux_12

(2)修改hbase-site.xml,添加以下配置:

<property>
		<name>hbase.rootdir</name>
		<value>hdfs://localhost:9000/hbase</value>
	</property>
	<property>
		<name>hbase.cluster.distributed</name>
		<value>true</value>
	</property>
	<property>
        	<name>hbase.zookeeper.quorum</name>
       		<value>centOS</value>
	</property>
	
	<property>
		<name>dfs.replication</name>
		<value>1</value>
	</property>

见如下所示:

linux hadoop 安装 用户组 linux安装hadoop集群_linux_13

3.2 启动Hbase

注意:启动hbase前,确保hadoop已正常启动

在hbase解压根目录下输入命令bin/start-hbase.sh,没有出现报错则表示安装成功

正常启动提示信息如下所示:

linux hadoop 安装 用户组 linux安装hadoop集群_linux hadoop 安装 用户组_14

同时可以浏览器端查看,输入地址localhost:60010,正常启动浏览器端如下所示:

linux hadoop 安装 用户组 linux安装hadoop集群_大数据_15

输入命令bin/hbase shell,进入hbse的shell环境,操作数据库

linux hadoop 安装 用户组 linux安装hadoop集群_大数据_16

4 Windows桌面连接linux上hbase

4.1 配置hosts文件

(1)查询CentOS的ip,输入命令ifconfig –a

linux hadoop 安装 用户组 linux安装hadoop集群_hadoop_17

找到IPv4为192.168.220.130

(2)在centOS中找到/etc/hosts文件,编辑加入192.168.220.130 centOS

centOS命名可按自己喜好修改

linux hadoop 安装 用户组 linux安装hadoop集群_大数据_18


(3)在windows中C:\Windows\System32\drivers\etc找到hosts文件,

编辑加入192.168.220.130 centOS

4.2 设置centOS防火墙

输入命令

service iptables stop

关闭centOS防火墙

输入命令

service iptables status

查看centOS防火墙是否成功关闭

防火墙关闭成功。
4.3 防火墙永久关闭
centOS在每次重启后,防火墙又会重新启用,所以这里进行永久关闭
输入命令

chkconfig iptables off

5 启动hadoop和hbase中可能遇到的问题

5.1 启动hadoop后运行jps命令没有dataNode
可以尝试删除自已创建的hadoop/hdfs/data文件夹,然后重启hadoop
5.2启动hadoop后运行jps命令没有nameNode
可以查看hadoop的log文件,找到错误原因后,查找相关资料解决,log文件地址为hadoop目录下logs文件夹
5.3启动hbase时报错ssh无法找到22端口
centOS: ssh connect to host centOS port 22:no route to host 此处centOS为上文中配置hosts文件的ip地址的映射名称,经查为linux的ip地址发生变更,修改hosts文件的ip为正确值,重启hbase就没问题了。也可以将linux的ip设置为固定值,则不会出现该问题。
5.4 在hbase的shell环境使用 list、put、scan命令时出现Error:can’t get master address from ZooKeeper;znode data==null
在hbase-site.xml中添加一个文件夹地址供zooKeeper写入数据,配置如下

<property>
		<name>hbase.zookeeper.property.dataDir</name>
		<value>/hbase-1.0.0-cdh5.4.8/zookeeper-log</value>
	</property>

类似以上配置即可(个人示例,无须完全一致),重启hbase数据库

原创不易,喜欢本文的朋友,给博主点个赞关注一下吧~