• 主页
  • 相册
  • 随笔
  • 目录
  • 存档
Total 244
Search AboutMe

  • 主页
  • 相册
  • 随笔
  • 目录
  • 存档

实验:hadoop的安装与简单使用

2020-05-26

1. 实验目的

  • hadoop的安装与简单使用

2. 实验原理

2.1. Apache Hadoop

Apache Hadoop是一款支持数据密集型分布式应用程序并以Apache 2.0许可协议发布的开源软件框架。它支持在商品硬件构建的大型集群上运行的应用程序。他是由Java撰写的。

  • 大概原理就是Master主机将大任务分成小任务给Slave主机,再收集每个Slave的结果处理

2.2. Hadoop集群类型

  • Local (Standalone) Mode – It runs as a single java process.
  • Pseudo-Distributed Mode(伪分布式模式) – Each Hadoop daemon runs as a separate process.
  • Fully Distributed Mode – a multinode cluster. Ranging from few nodes to an extremely large cluster.

3. 实验内容

3.1. (可选)创建Hadoop用户

  • sudo adduser hadoop && sudo usermod -aG sudo hadoop
    • su - hadoop
      • 注意命名小写

3.1.1. 配置本地SSH免密

1
2
3
4
5
$ ssh-keygen

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

$ chmod 600 ~/.ssh/authorized_keys
  • 验证:ssh 127.0.0.1

3.2. 配置Java环境

1
sudo apt-get install openjdk-8-jre

The openjdk-8-jre package contains just the Java Runtime Environment. If you want to develop Java programs then please install the openjdk-8-jdk package.

  • 或者sudo apt-get install default-jre openjdk-8-jdk-headless

检查

1
2
3
4
$ java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~18.04-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

3.3. 安装Hadoop

Hadoop-镜像

1
2
3
4
5
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz

tar -zxvf hadoop-3.1.3.tar.gz

sudo mv hadoop-3.1.3 /usr/local/hadoop

3.4. 设置环境变量

在伪分布式模式下配置Hadoop,首先要在~/.bashrc文件中设置环境变量。

Change JAVA_HOME and HADOOP_HOME variable entries in the file depending upon your environment.

  • sudo vim ~/.bashrc
    1
    2
    3
    4
    5
    6
    7
    8
    9
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/
    export HADOOP_HOME=/usr/local/hadoop
    export HADOOP_INSTALL=$HADOOP_HOME
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export HADOOP_YARN_HOME=$HADOOP_HOME
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
  • 将环境变量应用于当前终端会话:source ~/.bashrc
  • 检查是否生效:hadoop

3.5. 伪分布配置

3.5.1. 编辑Hadoop环境文件并更新变量

  • sudo vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
    1
    2
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/
    export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"

3.5.2. 编辑core-site.xml并更新文件中的HDFS主机名

  • sudo vim $HADOOP_HOME/etc/hadoop/core-site.xml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <configuration>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/usr/local/hadoop/tmp</value>
    <description>Abase for other temporary directories.</description>
    </property>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
    </property>
    </configuration>

    hadoop.tmp.dir用来存放hadoop运行过程中临时文件的目录,目录指定为/usr/local/hadoop/tmp,如果不设置这个目录,那么当hadoop关闭后某些系统临时目录会被清空,当下一次需要启动hadoop时需要重新进行初始化。所以这里人工指定目录可以避免被清空

    df.defaultFS设置好逻辑名称,当我们下次需要访问分布式文件系统的时候,用localhost:9000就可以访问了

3.5.3. 编辑hdfs-site.xml并更新文件中的NameNode和DataNode目录信息

  • sudo vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <configuration>
    <property>
    <name>dfs.replication</name>
    <value>1</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>
    </configuration>
    • dfs.replication表示副本的数量,伪分布式要设置为1
    • dfs.namenode.name.dir表示本地磁盘目录,是存储fsimage文件的地方
    • dfs.datanode.data.dir表示本地磁盘目录,HDFS数据存放block的地方
  • NameNode格式化

    1
    $ hadoop namenode -format
  • 验证

    1
    2
    3
    $ cd /usr/local/hadoop/
    $ ./sbin/start-dfs.sh
    $ jps
  • start-dfs.sh - Starts the Hadoop DFS daemons, the namenode and datanodes. Use this before start-mapred.sh

3.5.4. 访问web界面

  • (可选)检查虚拟机和主机是否能相互ping通

    • 注意这里的ping通应当是指ping VirtualBox Host-Only Network地址
      • 如果主机ping不通虚拟机应当检查VirtualBox Host-Only Network的地址分配以及虚拟机端口网络配置
  • 虚拟机访问localhost:9870

    • 主机访问虚拟机ip:9870
3.5.4.1. 例子
1
2
3
4
5
6
7
8
9
10
11
# 创建执行MapReduce作业所需的 DFS 目录
$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/hadoop
$ bin/hdfs dfs -mkdir /user/output

# 拷贝输入文件到分布式文件系统
$ bin/hdfs dfs -put etc/hadoop input
2020-05-28 11:40:30,875 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = fals

# 查看输出的文件
$ bin/hdfs dfs -cat output/*

3.5.5. YARN单机配置

  • 配置mapred-site.xml
    1
    2
    3
    4
    5
    6
    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    </configuration>
  • 配置yarn-site.xml
    1
    2
    3
    4
    5
    6
    <configuration>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    </configuration>
  • 启动ResourceManager daemon 和 NodeManager daemon
    • sbin/start-yarn.sh
  • 访问localhost:8088查看

3.5.6. HBase单机配置

HBase镜像

  • 安装

    1
    2
    3
    4
    $ sudo tar -zxvf  hbase-1.2.11-bin.tar.gz -C /usr/local
    $ sudo mv /usr/local/hbase-1.2.11 /usr/local/hbase
    $ cd /usr/local
    $ sudo chown -R hadoop ./hbase
  • 配置环境变量

    1
    export PATH=$PATH:/usr/local/hbase/bin
  • 验证:hbase

3.5.6.1. hBase单机模式
  • sudo vim /usr/local/hbase/conf/hbase-site.xml
    1
    2
    3
    4
    5
    6
    <configuration>
    <property>
    <name>hbase.roodir</name>
    <value>file:///usr/local/hbase/hase-tmp</value>
    </property>
    </configuration>
  • 采用如下命令启动服务、查看进程和启动客户端
    1
    2
    3
    4
    $ cd /usr/local/hbase
    $ bin/start-hbase.sh
    $ jps
    $ bin/hbase shell
3.5.6.2. hbase伪分布模式
  • 配置hbase-site.xml文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <configuration>
    <property>
    <name>hbase.roodir</name>
    <value>hdfs://localhost:9000/hbase</value>
    </property>
    <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    </property>
    </configuration>
  • 配置hbase-env.sh

    • export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/
  • 启动hbase

    1
    2
    $ start-dfs.sh
    $ start-hbase.sh
  • 访问http://192.168.50.129:16010/master-status

3.5.7. hbase shell使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 创建表
create 'test','cf'

# 显示表信息
list 'test'

# 显示表的详细信息
describe 'test'

# 向表中加入数据
put 'test','row1','cf:a','value1'

# 扫描表
scan 'test'

# 取一行数据
get 'test','row1'

# 修改表模式
disable 'test'
alter 'test',NAME=>'cf',VERSIONS=>5
enable 'test'

# 删除表
disable 'test'
drop 'test'

4. 参考

  • OpenJDK: Download and install
  • Hadoop到底是干什么用的? - 知乎
  • How to Configure Hadoop on Ubuntu Xenial - Scaleway
  • 伪分布式安装core-site.xml和hdfs-site.xml配置文件 - 、苏州城外的微笑 - 博客园
  • NoSQL数据库系统Hadoop-Hbase安装配置(伪分布模式)与简单使用 | Purplezi
  • Lab
  • Sql
  • Lab
xss攻击实验
Flask浅析-2
  1. 1. 1. 实验目的
  2. 2. 2. 实验原理
    1. 2.1. 2.1. Apache Hadoop
    2. 2.2. 2.2. Hadoop集群类型
  3. 3. 3. 实验内容
    1. 3.1. 3.1. (可选)创建Hadoop用户
      1. 3.1.1. 3.1.1. 配置本地SSH免密
    2. 3.2. 3.2. 配置Java环境
    3. 3.3. 3.3. 安装Hadoop
    4. 3.4. 3.4. 设置环境变量
    5. 3.5. 3.5. 伪分布配置
      1. 3.5.1. 3.5.1. 编辑Hadoop环境文件并更新变量
      2. 3.5.2. 3.5.2. 编辑core-site.xml并更新文件中的HDFS主机名
      3. 3.5.3. 3.5.3. 编辑hdfs-site.xml并更新文件中的NameNode和DataNode目录信息
      4. 3.5.4. 3.5.4. 访问web界面
        1. 3.5.4.1. 3.5.4.1. 例子
      5. 3.5.5. 3.5.5. YARN单机配置
      6. 3.5.6. 3.5.6. HBase单机配置
        1. 3.5.6.1. 3.5.6.1. hBase单机模式
        2. 3.5.6.2. 3.5.6.2. hbase伪分布模式
      7. 3.5.7. 3.5.7. hbase shell使用
  4. 4. 4. 参考
© 2024 何决云 载入天数...