搭建 Hadoop ubuntu 16.04
关于 Hadoop
hadoop可以作为分布式存储框架存储大规模数据
Hadoop生态4层架构:
- 底层:存储层,文件系统HDFS,NoSQL Hbase
- 中间层:资源及数据管理层,YARN以及Sentry等
- 上层:MapReduce、Impala、Spark等计算引擎
- 顶层:基于MapReduce、Spark等计算引擎的高级封装及工具,如Hive、Pig、Mahout
例子:wordCount (相当于hadoop的HelloWorld的程序)、文档倒排索引、PageRank、K-Means 算法
关于 Hive
- Hive是基于Hadoop的一个数据仓库工具,可直接用类似SQL的语言描述数据处理逻辑,避免开发人员在开发大数据查询分析处理程序时,编写复杂的基于JAVA的MapReduce程序。
- 换句话说,Hive是将MapReduce抽象为类似SQL语句,在执行SQL语句时,Hive将其转换为MapReduce任务并运行。
- 很明显Hive需要依赖Hadoop,而且,不同于HBase,Hive必须依赖于HDFS,不能使用本地文件系统;Hive基于Hadoop的分布式存储系统HDFS和HBase以及MapReduce并行计算框架工作。
一、安装 java1.8
apt-get update
apt-get install openjdk-8-jdk
- 查看 java 版本,
java -version
在选择 jdk 版本方面,现在 jdk已经发布了 1.12 版本。1.7、1.8、1.9都是成熟版本,Oracle发出2019年1月停止更新1.8的通知。1.8和1.7的应用都比较广泛,最推荐 1.8,1.9版本第二位。
jdk 和 jre 的区别:jdk(java development kit)是java的开发工具包,jre (java runtime environment) 是java程序的运行环境,jre是jdk的一个子集。
如果使用 apt-get install
安装,环境变量已经自动配置好了,如果有必要配置环境变量的时候,一种是通过profile文件,一种是通过environment来配置.
二、安装 Hadoop 3.2.0
准备部分
- 创建一个 hadoop 用户,环境隔离
sudo useradd -m hadoop -s /bin/bash
- 设置密码
sudo passwd hadoop
123456 - 添加管理员权限
sudo adduser hadoop sudo
- 切换到 hadoop 用户
- 更新 apt
sudo apt-get update
- 安装ssh,配置 ssh无密码登录,因为Hadoop 中的集群,单点模式是需要使用到SSH登录,Ubuntu默认参数了SSH client, 我们还需要安装SSH Server:
sudo apt-get install openssh-server
- ssh登录本机
ssh localhost
- 退出 ssh,配置无密钥登录,利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
exit
cd ~/.ssh/ #若没有该目录,先执行一次ssh localhost
ssh-keygen -t rsa #有提示,回车即可
cat ./id_rsa.pub >> ./authorized_keys
此时,可用ssh localhost直接登录了。
安装 Hadoop
- 下载稳定版本 3.2.0
wget http://mirror.bit.edu.cn/apache/hadoop/common/stable/hadoop-3.2.0.tar.gz
- 解压到/usr/local中
sudo tar -zxf hadoop-3.2.0.tar.gz -C /usr/local
-
cd /usr/local/
sudo mv ./hadoop-3.2.0/ ./hadoop
# 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop
# 修改文件权限 - 查看解压的Hadoop是否是可用:
cd /usr/local/hadoop
# 进入Hadoop 目录下
./bin/hadoop version
# 在该目录下执行该命令
Hadoop 成功启动时返回的结果
-
启动 Hadoop 时遇到问题:
启动时报Error: JAVA_HOME is not set and could not be found.
-
解决办法:
修改/etc/hadoop/hadoop-env.sh中设JAVA_HOME,使用绝对路径 -
如何查看 java 安装位置
1)update-alternatives --config java
2)通过whereis java命令不能知道java真实安装路径,得到/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
3)vi ~/.bachrc
在前面export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
4)source ~/.bashrc
# 使变量设置生效
配置单机 Hadoop
- 默认模式为非分布式模式,无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。
参考链接:
https://wangchangchung.github.io/2017/09/28/Ubuntu-16-04%E4%B8%8A%E5%AE%89%E8%A3%85Hadoop%E5%B9%B6%E6%88%90%E5%8A%9F%E8%BF%90%E8%A1%8C/
https://blog.csdn.net/lusongno1/article/details/79998712