环境
本文介绍Hadoop、Hbase的伪分布式安装。
- 操作系统: Centos7
- Hadoop: 2.7.3
- Hbase: 1.2.3
Hadoop安装
JAVA_HOME环境变量配置
由于Hbase是基于HDFS的,所以我们首先部署Hadoop。
下载jdk7和hadoop-2.7.3
cd hadoop-2.7.3/etc/hadoop
vim hadoop-env.sh
打开文件后,搜索这一行
export JAVA_HOME
因为默认是使用系统JAVA_HOME
,所以要修改成我们下载的jdk,以笔者的环境为例:
export JAVA_HOME=/home/pay/soft/java/jre
设置完以后,运行如下命令
bin/hadoop
如果出现usage文档,即配置成功。
HDFS配置
在etc/hadoop/core-site.xml
的<configuration>
标签内做如下配置:
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
接着在etc/hadoop/hdfs-site.xml
的<configuration>
标签内做如下配置:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- Hadoop 的Web UI端口配置 -->
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:8777</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
默认的Hadoop的Web UI端口是50070,若你的机器做了端口限制,可以配置dfs.http.address
的新的值,从而可以从浏览器访问Web UI。
配置SSH的免key登陆
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
由于Hadoop节点之间通过SSH通信,为了避免连接过程中人工输入密码,所以要配置SSH的免key登陆,由于本文讲得是伪分布式,因此只需要对本机localhost免key登陆即可。
完成以上命令以后,输入以下命令,若不需要输入密码,则说明配置。
ssh localhost
运行
对文件系统格式化:
bin/hdfs namenode -format
起文件系统:
sbin/start-dfs.sh
检查HDFS是否起了,输入jps
,看控制台输出
7923 Jps
15782 NodeManager
22139 DataNode
22683 SecondaryNameNode
21842 NameNode
25072 -- process information unavailable
15380 ResourceManager
若DataNode
、NameNode
、SecondaryNameNode
、NodeManager
、ResourceManager
这几个进程都起来了,则说明HDFS部署成功。
再访问WEB UI界面,输入http://yourUrl:8777/
,yourUrl服务器的地址,浏览器会出现如下界面:
在HDFS中创建文件夹,并将文件上传到HDFS:
bin/hadoop fs -mkdir /usr
bin/hadoop fs -mkdir /usr/test
./hadoop fs -put /home/pin/hadoop-2.7.3/etc/hadoop/hdfs-site.xml /usr/test
YARN监控任务
对etc/hadoop/mapred-site.xml
如下配置:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
再对etc/hadoop/mapred-site.xml
做如下配置:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置完以后,执行脚本起YARN服务:
sbin/start-yarn.sh
用浏览器访问http://yourUrl:8088
即可看到资源和节点的管理信息。如下:
运行示例程序
运行如下命令:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep /usr/test /usr/output 'dfs[a-z.]+'
示例程序运行一个正则统计程序,我们可以通过访问http://yourUrl:8088
来观察job的运行情况,job结束以后,我们输入以下命令:
>> bin/hadoop fs -cat /usr/output/*
1 dfs.replication
1 dfs.namenode.name.dir
1 dfs.http.address
1 dfs.datanode.data.dir
以上即被正则统计到的字符串以及出现的次数。
至此,Hadoop的安装完成。
Hbase安装
解压Hbase的安装包,修改conf/hbase-env.sh
文件,如下:
export JAVA_HOME=/home/pay/soft/java
export HBASE_CLASSPATH=/home/pay/pin/hbase-1.2.3/conf
export HBASE_MANAGES_ZK=true
再修改conf/hbase-site.xml
文件,如下:
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<!-- Hbase的web UI端口 -->
<property>
<name>hbase.master.info.port</name>
<value>8171</value>
</property>
</configuration>
启动Hbase:
./bin/start-hbase.sh
在HDFS上查看Hbase文件,如下则创建成功
>> hadoop fs -ls /hbase
drwxr-xr-x - root supergroup 0 2017-11-13 15:41 /hbase/.tmp
drwxr-xr-x - root supergroup 0 2017-11-13 15:41 /hbase/MasterProcWALs
drwxr-xr-x - root supergroup 0 2017-11-13 15:42 /hbase/WALs
drwxr-xr-x - root supergroup 0 2017-11-13 15:56 /hbase/archive
drwxr-xr-x - root supergroup 0 2017-11-13 15:22 /hbase/data
-rw-r--r-- 3 root supergroup 42 2017-11-13 15:22 /hbase/hbase.id
-rw-r--r-- 3 root supergroup 7 2017-11-13 15:22 /hbase/hbase.version
drwxr-xr-x - root supergroup 0 2017-11-13 16:30 /hbase/oldWALs
输入jps
命令,查看进程
27137 HRegionServer
15782 NodeManager
22139 DataNode
22683 SecondaryNameNode
26844 HQuorumPeer
21842 NameNode
25072 -- process information unavailable
27607 Jps
15380 ResourceManager
26959 HMaster
若输出以上的信息,则说明Hadoop和Hbase都创建成功。
以上。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。