今天部署了一下hadoop和hbase,期间踩了不少坑。写此文以帮助hadoop、hbase的新手避坑。
不要选择最新的软件
不要选择最新的软件
不要选择最新的软件
重要的事情说三遍
安装包下载
jdk:
- 版本:jdk-8u191-linux-x64.tar.gz
- 网址:wget http://upyun.qubianzhong.cn/file/java/jdk-8u191-linux-x64.tar.gz
- 来自:https://cloud.tencent.com/developer/article/1371521
hadoop:
- 版本:hadoop-2.9.2.tar.gz
- 网址:https://hadoop.apache.org/releases.html
hbase:
- 版本:hbase-1.4.9-bin.tar.gz
- 网址:http://hbase.apache.org/downloads.html
百度云:
- 链接: https://pan.baidu.com/s/1z8iX9IxTiYgDNNYp_f5vrA
- 提取码: 81iu
jdk
将压缩包解压放置于你喜欢的目录,并进入该目录,笔者放在了/home/bruce/Software。
编辑/etc/profile文件,添加环境变量
1 | export JAVA_HOME=/home/bruce/Software/jdk1.8.0_191 |
Hadoop
安装依赖
首先安装以下软件:
1 | $ sudo apt-get install ssh |
下载Hadoop:
将压缩包解压放置于你喜欢的目录,并进入该目录,笔者放在了/home/bruce/Software。
1 | cd hadoop-2.9.2/ |
可以在/etc/profile中为hadoop添加环境变量:
1 | export Hadoop=/home/bruce/Software/hadoop-2.9.2/bin |
修改配置:
etc/hadoop/core-site.xml:
1 | <configuration> |
etc/hadoop/hdfs-site.xml:
1 | <configuration> |
修改 etc/hadoop/hadoop-env.sh 文件:
在文件末尾加入
1 | export JAVA_HOME=/home/bruce/Software/jdk1.8.0_191 |
配置无密码ssh登录
确认是否可以无密码登录:
1 | ssh localhost |
若不可以则执行以下操作:
1 | ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa |
本地运行一个 MapReduce job
格式化文件系统
1
bin/hdfs namenode -format
Start NameNode daemon and DataNode daemon:
1
sbin/start-dfs.sh
运行完后应该可以访问http://localhost:50070/
Make the HDFS directories required to execute MapReduce jobs:
1
2bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/<username>Copy the input files into the distributed filesystem:
1
bin/hdfs dfs -put etc/hadoop input
Run some of the examples provided:
1
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep input output 'dfs[a-z.]+'
执行 jps 可以看到以下进程:
1 | $ jps |
- Examine the output files: Copy the output files from the distributed filesystem to the local filesystem and examine them:
1 | bin/hdfs dfs -get output output |
成功的话会得到如下输出:
1 | 6 dfs.audit.logger |
or
View the output files on the distributed filesystem:
1 | bin/hdfs dfs -cat output/* |
会得到一样的输出
Hbase
下载Hbase:
将压缩包解压放置于你喜欢的目录,并进入该目录,笔者放在了/home/bruce/Software。
1 | cd hbase-1.4.9/ |
可以在/etc/profile中为hbase添加环境变量:
1 | export Hbase=/home/bruce/Software/hbase-1.4.9/bin |
修改配置
编辑 conf/hbase-site.xml 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15<configuration>
<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.property.dataDir</name>
<value>/home/hadoop/zookeeper</value>
</property>
</configuration>编辑 conf/hbase-env.sh 文件
在文件末尾加入:1
export JAVA_HOME=/home/bruce/Software/jdk1.8.0_191
启动hbase
1
bin/start-hbase.sh
若启动成功,执行jps会看到一下进程:
1 | $ jps |
- hdfs会自动生成hbase目录
1
2
3
4
5
6
7
8
9
10$ ./bin/hadoop fs -ls /hbase
Found 8 items
drwxr-xr-x - hadoop supergroup 0 2019-04-23 23:33 /hbase/.tmp
drwxr-xr-x - hadoop supergroup 0 2019-04-23 23:33 /hbase/MasterProcWALs
drwxr-xr-x - hadoop supergroup 0 2019-04-23 23:33 /hbase/WALs
drwxr-xr-x - hadoop supergroup 0 2019-04-23 23:33 /hbase/data
drwxr-xr-x - hadoop supergroup 0 2019-04-23 23:33 /hbase/hbase
-rw-r--r-- 1 hadoop supergroup 42 2019-04-23 23:32 /hbase/hbase.id
-rw-r--r-- 1 hadoop supergroup 7 2019-04-23 23:32 /hbase/hbase.version
drwxr-xr-x - hadoop supergroup 0 2019-04-23 23:34 /hbase/oldWALs
以上操作可以使用root用户进行操作。也可以使用普通用户,若遇到权限问题,可以添加一个hadoop用户
1 | #添加用户 |