大数据XD 02 hadoop

Hadoop

HDFS :分布式存储

MapReduce: 分布式海量数据处理.

Hadoop 在企业中的应用

MR : MapReduce 的简称.

Apache Hadoop 版本 

Hadoop 2.0 架构与1.0版本差距很大.

 

还有一些 Hadoop 的商业版本, 别的公司出的, Hortonworks, cloudera (CDH), MapR

Hadoop 项目结构(生态)

 

Hive: 数据仓库, 满足企业决策分析的需求. (SQL -> 批量 MapReduce 作业)

Hbase: 非关系型分布式数据库.

Flume: 实时的日志收集

Sqoop: 数据库导入导出工具, ETL 工具.

Ambari: 在 Hadoop 安装和部署套件.

Hadoop 的安装

 

useradd -m hadoop -s /bin/bash

passwd hadoop

adduser hadoop sudo           (增加sudo 权限给 hadoop)

hadoop 登录以后, 要先更新一下 sudo apt-get update

sudo apt-get install vim

SSH 登录权限设置: 需要配置机器无密码登录:  (这个比较有用, 我们平时也可以用到)

Ubuntu 默认已经安装了 SSH client, 此外还需要安装 SSH server

sudo apt-get install openssh-server

ssh localhost

然后执行以下命令:

exit

cd ~/.ssh/

ssh-keygen -t rsa                  -- 这步是为了生成公钥和私钥

cat ./id_rsa.pub >> ./authorized_keys (或者使用命令 ssh-copy-id localhost 这样会自动创建authorized_keys 文件, 这个文件的权限必须是 600) 

补充: 无需密码登录的原理是:

举例: 

有机器A(192.168.1.155) B(192.168.1.181), 现在想A 通过ssh 免密登录到 B.

1. 在 A 机器下生成公钥/秘钥对. ssh-keygen -t rsa -P "" , 在/home/的.ssh 下有 id_rsa 和 id_rsa.pub

2. 把 A 机器下的 id_rsa.pub 复制到 B 机器下, 在B 机器/home/.ssh/authorized_keys 文件里(如果B机器没有.ssh和authorized_keys, 要先创建这个文件夹和文件), 注意 authorized_keys 的权限一定要是 600.

3. A 机登录 B 机,  ssh 192.168.1.181, 按照提示输入 yes 就可以了.

小结: 登录的机子可有私钥,被登录的机子要有登录机子的公钥,这个公钥/私钥一般在私钥的主机产生(私钥打算留在哪里, 就在哪里产生)。

所以,SSH 远程登录时有两种验证方式:  密码 , 或者 这种 公钥/私钥 的方式.

JAVA 8 安装

1. 下载 JAVA8 Linux 然后传到 server.

2. cd /urs/lib

    sudo mkdir jvm

    cd 到JAVA8安装包目录下, sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm

3. 设置环境变量

    cd ~

    vim ~/.bashrc

    

 4. 保存 退出后, 激活环境变量配置, source ~/.bashrc

5.  检验, java -version

安装 Hadoop 

1.下载一个 hadoop, 目前已经到版本3,我们先用版本2做一个实验. 所以下载版本2.7.7

2. 解压到 /usr/local 中, sudo tar -zxvf ~/hadoop-2.7.7.tar.gz -C /usr/local

3. 修改hadoop权限

    cd /usr/local/

    sudo mv ./hadoop-2.7.7 ./hadoop

    sudo chown -R hadoop:hadoop ./hadoop

4. 检查 hadoop 安装情况 cd /usr/local/hadoop

    ./bin/hadoop version     会显示 Hadoop 2.7.7

这样安装完之后, 就是本地模式, 无需任何配置, 就可以运行. 非分布式即单 java 进程, 方便调试.

举例: 运行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar (这个jar包里有很多例子, 我们运行 grep举例)

将配置文件作为输入文件.

 命令解析: ./bin/hadoop jar 表示hadoop整体是运行jar包, 后边是具体的jar包, input作为输入, output作为输出, grep 是类名  'dfs[a-z.]+'

如果是 linux 命令运行jar包, java -jar /myapp/asdfexpampe.jar

找到了一个匹配的结果. 

注意: Hadoop 默认不会覆盖结果文件, 所以再次运行会报错, rm -r ./output 删除结果文件之后, 再运行.

Hadoop 伪分布式安装

本来 NameNode 和 DataNode 应该放在不同机器上. 这里把NameNode 和 DataNode 放在一个机器上了.

Hadoop 配置文件位于 /usr/local/hadoop/etc/hadoop 中, core-site.xml  和  hdfs-site.xml

 

 

 

 block 是基本单位, 类似 oracle 中的 data block.

原文地址:https://www.cnblogs.com/moveofgod/p/12367793.html