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,如图所示,表示安装成功
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配置
进入HADOOP_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
见如图示例:
(2)配置yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_111
见如图示例:
(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>
见如下示例:
(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>
见如下示例:
(5)配置mapred-site.xml
添加如下配置:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
见如下示例:
(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>
见如下示例:
以上配置完成后便可启动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
见如下示例:
在浏览器中输入http://localhost:8099/ 即可看到YARN的ResourceManager的界面。注意:默认端口是8088,本文设置了yarn.resourcemanager.webapp.address为:${yarn.resourcemanager.hostname}:8099
如下所示:
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
见如下所示:
(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>
见如下所示:
3.2 启动Hbase
注意:启动hbase前,确保hadoop已正常启动
在hbase解压根目录下输入命令bin/start-hbase.sh,没有出现报错则表示安装成功
正常启动提示信息如下所示:
同时可以浏览器端查看,输入地址localhost:60010,正常启动浏览器端如下所示:
输入命令bin/hbase shell,进入hbse的shell环境,操作数据库
4 Windows桌面连接linux上hbase
4.1 配置hosts文件
(1)查询CentOS的ip,输入命令ifconfig –a
找到IPv4为192.168.220.130
(2)在centOS中找到/etc/hosts文件,编辑加入192.168.220.130 centOS
centOS命名可按自己喜好修改
(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数据库
原创不易,喜欢本文的朋友,给博主点个赞关注一下吧~