大数据学习笔记

  1. 介绍说明
  2. 配置部署:
  1. Hadoop集群安装部署:
  1. 下载hadoop-3.1.0.tar.gz解压
  2. 修改配置文件参考: https://blog.csdn.net/ViMan1204/article/details/88980813
  3. kms-env.sh:

export JAVA_HOME=/usr/local/sbin/jdk1.8.0_241/

  1. core-site.xml:

<property>

 <name>fs.defaultFS</name><value>hdfs://192.168.25.129:9000/</value>

</property>

<property>

 <name>hadoop.tmp.dir</name><value>/usr/local/sbin/hadoop-3.1.0/tmp/</value>

</property>

  1. hdfs-site.xml:

<property>

 <name>dfs.replication</name><value>1</value>

</property>

 

  1. mapred-site.xml

<property>

 <name>mapreduce.framework.name</name><value>yarn</value>

</property>

<property>

   <name>mapreduce.application.classpath</name>

   <value>/usr/local/sbin/hadoop-3.1.0/share/hadoop/mapreduce/*, /usr/local/sbin/hadoop-3.1.0/share/hadoop/mapreduce/lib/*</value>

</property>

 

  1. yarn-site.xml

<name>yarn.resourcemanager.hostname</name><value>hadoop-server-00</value>

</property>

<property>

 <name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>

</property>

  1. works(老版本的slaves)
  2.  
  1. Hadoop启动和关闭(手动):
  1. dfs格式化  

 ./bin/hadoop namenode -format

uploading.4e448015.gif转存失败重新上传取消

  1. 启动 namenode 进程-- ./sbin/hadoop-daemon.sh start namenode
  2. 启动 datanode 进程--  ./sbin/hadoop-daemon.sh start datanode
  3. 启动secondarynamenode进程-- ./sbin/hadoop-daemon.sh start secondarynamenode
  4. 启动 yarn resource进程-- ./sbin/yarn-daemon.sh start resourcemanager
  5. 启动 yarn node进程-- ./sbin/yarn-daemon.sh start nodemanager
  6. 查看进程-- .jps

uploading.4e448015.gif转存失败重新上传取消

      

  1. 查看端口进程-- netstat -nltp

uploading.4e448015.gif转存失败重新上传取消

图形界面:http://192.168.25.129:9870

 

  1. Hadoop启动和关闭(自动):未测试。
  1. Hdfs启动-- ./sbin/start-dfs.sh
  2. Hdfs 关闭-- ./sbin/stop-dfs.sh
  3. Yarn启动 --./sbin/start-yarn.sh 
  4. Yarn关闭 --./sbin/stop-yarn.sh
  5. 如果报错,请添加以下代码

===================

在/hadoop/sbin路径下:

将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数

#!/usr/bin/env bash

HDFS_DATANODE_USER=root

HADOOP_SECURE_DN_USER=hdfs

HDFS_NAMENODE_USER=root

HDFS_SECONDARYNAMENODE_USER=root

 

还有,start-yarn.sh,stop-yarn.sh顶部也需添加以下:

#!/usr/bin/env bash

YARN_RESOURCEMANAGER_USER=root

HADOOP_SECURE_DN_USER=yarn

YARN_NODEMANAGER_USER=root

修改后重启 ./start-dfs.sh,成功!

原文链接:https://blog.csdn.net/lglglgl/article/details/80553828

 

  1. 免密登录设置

 

  1. hdfs说明
  1. hdfs原理图

 

uploading.4e448015.gif转存失败重新上传取消

 

  1. hdfs命令

1. 查看hdfs根目录下的文件:./bin/hadoop fs -ls  hdfs://master:9000/

可以简写为以下的形式:./bin/hadoop fs -ls /

或者这么写:./bin/hdfs dfs -ls /

 

2. 创建文件夹:./bin/hadoop fs -mkdir /test

 

3. 在指定文件夹中创建空文件:./bin/hadoop fs -touchz /test/zs.txt

文件为空时 再创建一个同名的文件不会报错

 

4. 上传本地文件到HDFS(将Linux系统下当前目录下的a.php文件上传到根目录下):./bin/hadoop fs -put ./a.php /test

文件存在时 如果再上传相同的文件 就会报错

选项-f:如果文件存在 则再上传相同的文件直接覆盖之前的文件

 

5. 显示文件内容:./bin/hadoop fs -cat /test/a.php

 

6. 从hdfs下载文件到本地:./bin/hadoop fs -get /test/a.php

没有覆盖本地文件的选项 如果本地存在相同文件 则会报错

 

7. 将本地文件移动到hdfs中(与put功能类似 不同之处在于 moveFromLocal会删除本地的文件 而put则不会)

./bin/hadoop fs -moveFromLocal ./b.php /test

 

8. 将hdfs中的文件移动到本地(moveToLocal与get功能类似 不同之处在于 moveToLocal会删除hdfs中的文件 而get则不会)

 

9. 将本地文件拷贝到hdfs中(copyFromLocal与put功能相同):./bin/hadoop fs -copyFromLocal ./c.php /test

 

10. 将hdfs中的文件拷贝到到本地(copyToLocal与get功能相同)

 

11. 将本地的文件追加到hdfs中已经存在的文件末尾:hdfs fs -appendToFile ./test.php /test/a.php

 

12. 查看文件末尾:./bin/hadoop fs -tail /test/a.php

 

13. 以字符形式显示文件内容:./bin/hadoop fs -text /test/a.php(功能类似于cat 区别在于如果不是字符文件 则会显示乱码)

 

14. 修改文件权限:./bin/hadoop fs -chmod 777 /test/a.php

 

15. 修改文件用户和组:./bin/hadoop fs -chown 777 /test/a.php(./bin/hadoop没有用户的概念 它是一种弱的权限控制 并不会检验用户是否存在 即使该用户和组不存在也可以设置成功 你指定它的用户和组是谁就是谁)

 

16. 将文件从hdfs的一个路径拷贝到另外一个路径:./bin/hadoop fs -cp /test/a.php /

拷贝相同的文件到同一个目录中会报错

-f参数会直接忽视错误 不管文件是否存在 强行将文件拷贝过去

 

17. 将文件从hdfs的一个路径拷贝到另外一个路径:./bin/hadoop fs -mv /test/c.php /

 

18. 将多个文件从hdfs上合并下载到本地:./bin/hadoop fs -getmerge /test/*.php ./merge.php

这是hadoop的bug 参数中有*时 它会在本地查找 而不是在hdfs中查找 要想避免这种问题 就要把地址写全

 

19. 删除文件:./bin/hadoop fs -rm  /test/a.php

-r参数表示递归删除某个目录下的所有文件和子目录:./bin/hadoop fs -rm -r  /test

 

20. 删除空目录:./bin/hadoop fs -rmdir  /test/a.php(这个命令无法删除非空目录)

 

21. 统计文件系统的可用空间信息:./bin/hadoop fs -df

./bin/hadoop fs -df -h /

 

22. 统计文件及目录的大小信息:./bin/hadoop -fs du /

-s 参数表示显示大小信息 -h参数表示带单位:./bin/hadoop -fs du -s  -h /

 

23. 统计一个指定目录下的文件节点数目:./bin/hadoop fs  -count /

 

24. 设置hdfs中文件副本数目:./bin/hadoop fs -setrep 2 /a.php(文件夹只是一种描述文件的特殊文件 是文件系统的元数据 它本身并不存储数据 因此在hdfs中副本数为0)

a.php文件 在设置之前的副本数为3

a.php文件 在设置之后的副本数为2

 

 

uploading.4e448015.gif转存失败重新上传取消

 

 

uploading.4e448015.gif转存失败重新上传取消

uploading.4e448015.gif转存失败重新上传取消

 

  1. Hadoop的rpc

uploading.4e448015.gif转存失败重新上传取消

 

  1. mapreduce介绍说明
  1. mapreduce运行机制

uploading.4e448015.gif转存失败重新上传取消

 

uploading.4e448015.gif转存失败重新上传取消

  1. mapreduce数据流向

uploading.4e448015.gif转存失败重新上传取消

 

  1. mapreduce代码实现(map和reduce实现)

 

uploading.4e448015.gif转存失败重新上传取消

 

 

  1. mapreduce代码实现(job实现)

uploading.4e448015.gif转存失败重新上传取消

  1. 打成jar 上传到主服务器并执行jar.

./bin/hadoop jar wordcount.jar  com.bigdata.wordcount.WordCountJobSubmitter

 

  1. 代码实例-统计手机号码流量
  1. 分析HTTP_TEST.data里面的数据,根据手机号码统计流量。
  2. 注意FlowBean 里面的序列两个方法。WritereadFields

 

uploading.4e448015.gif转存失败重新上传取消

 

  1. 代码实例-省份统计手机号码流量。

uploading.4e448015.gif转存失败重新上传取消

 

  1. Shuffle机制详解。

 

uploading.4e448015.gif转存失败重新上传取消

uploading.4e448015.gif转存失败重新上传取消

 

  1. YARN 工作机制

uploading.4e448015.gif转存失败重新上传取消

uploading.4e448015.gif转存失败重新上传取消

 

 

  1. Mapreduce并发和切片。

 

注意:如果处理的数据是大量小文件,使用默认的切片机制,会导致大量切片,从而maptask进程特别多,每个切片很小,每个maptask处理数据量很小,整体效率很低。

通用解决方案:将多个小文件划分成一个切片:实现办法自定义一个inputformat.

  1. Mapreduceb编程练习之【共同好友】

uploading.4e448015.gif转存失败重新上传取消

  1. Mapreduceb编程练习之【join连表查询_reduce端】

思想:

 

 

  1. Mapreduceb编程练习之【join连表查询_map端】

思想:利用caceFile 方法把小表的数据分布缓存起来。Map端能够拿到缓存中的数。

 

uploading.4e448015.gif转存失败重新上传取消

 

uploading.4e448015.gif转存失败重新上传取消

  1. Zookeeper简介。

 

  1. Mapreduceb编程练习之【倒排序】

uploading.4e448015.gif转存失败重新上传取消

 

 

  1. Mapreduceb编程练习之【多job提交】

uploading.4e448015.gif转存失败重新上传取消

 

  1. Zookeeper功能
  1. 环境搭建

uploading.4e448015.gif转存失败重新上传取消

 

  1. 功能图:

uploading.4e448015.gif转存失败重新上传取消

 

  1. 命令行

./bin/zkServer.sh start

 

 

ZooKeeper -server host:port cmd args

        stat path [watch]

        set path data [version]

        ls path [watch]

        delquota [-n|-b] path

        ls2 path [watch]

        setAcl path acl

        setquota -n|-b val path

        history

        redo cmdno

        printwatches on|off

        delete path [version]

        sync path

        listquota path

        get path [watch]

        create [-s] [-e] path data acl

        addauth scheme auth

        quit

        getAcl path

        close

        connect host:port

 

  1. Zookeeper服务器列表。
  1. 【注册服务】创建一个节点,create.不要关闭 close.
  2. 【监听服务】创建一个client,用wath监听。

uploading.4e448015.gif转存失败重新上传取消

 

 

 

  1. Zookeeper分布式锁。

uploading.4e448015.gif转存失败重新上传取消

 

  1. Hadoop-ha机制:

 

 

  1. Hbase数据库:
  1. 配置文件
  1. 配置hbase-env.sh

export JAVA_HOME=/usr/local/sbin/jdk1.8.0_241 #Java安装路径

export HBASE_MANAGES_ZK=false    #由HBase负责启动和关闭Zookeeper

 

  1. 配置hbase-site.xml

<property>

    <name>hbase.rootdir</name>

    <value>hdfs://hadoop-server-00:9000/hbase</value>

</property>

<property>

    <name>hbase.cluster.distributed</name>

    <value>true</value>

</property>

<property>

    <name>hbase.zookeeper.quorum</name>

    <value>hadoop-server-00:2181,hadoop-server-01:2181,hadoop-server-02:2181</value>

</property>

 

 

  1. 配置文件conf/regionservers

hadoop-server-00

hadoop-server-01

hadoop-server-02

  1. 复制文件,分发到其他机器。

cp /usr/local/sbin/hadoop-3.1.0/etc/hadoop/core-site.xml  ./

cp /usr/local/sbin/hadoop-3.1.0/etc/hadoop/hdfs-site.xml  ./

 

scp -r ./hbase-1.5.0 hadoop-server-01:/usr/local/sbin/

scp -r ./hbase-1.5.0 hadoop-server-02:/usr/local/sbin/

 

 

  1. 启动服务

./bin/start-hbase.sh

 

./bin/stop-hbase.sh

  1. 常用命令

进入终端:./bin/hbase shell

 

创建创建表

create 'user','username','mobile' 

创建表

       create 'table_person', {NAME => 'base_info', VERSIONS => 1}, {NAME => 'extend_info', VERSIONS => 1}, {NAME => 'other_info', VERSIONS => 1}

查询和插入:

get 'table_person','rk02'

put 'table_person','rk02','base_info:age',18

put 'table_person','rk02','base_info:name','zhangsan'

 

命名空间:

create_namespace 'ns01'

create 'ns01:table_person' , {NAME => 'base_info', VERSIONS => 1}, {NAME => 'extend_info', VERSIONS => 1}, {NAME => 'other_info', VERSIONS => 1}

 

图形界面:http://192.168.25.130:16010/master-status

 

  1. get和scan的区别

 hbase的查询实现只提供两种方式:

  1. 按指定rowkey获取唯一一条记录:get方法。
  2. 按指定条件获取一批记录:scan方法。

 

实现条件查询功能使用的就是scan方式,scan在使用时有以下几点值的注意:

scan可以通过setCaching与setBatch方法提高速度(以空间换时间)

scan可以通过setStartRow与setEndRow来限定范围。范围越小,性能越高。

scan可以通过setFilter方法添加过滤器,这也是分页(性能差)、多条件查询的基础。

  1. Hive使用
  1. 机制介绍

uploading.4e448015.gif转存失败重新上传取消

 

uploading.4e448015.gif转存失败重新上传取消

 

  1. 环境配置。

环境配置

1.复制hive-env.sh

 cp hive-env.sh.template  hive-env.sh

 2.修改 hive-env.sh

 export  HADOOP_HOME=/usr/local/sbin/hadoop-3.1.0

 3.从Hive2.1起,必须先用schematool进行一次初始化,比如使用内嵌的derby数据库进行初始化。

./bin/schematool -dbType derby -initSchema

Hive installation issues: Hive metastore database is not initialized如果碰到这种报错,可以参考RJ Code的回答。

https://stackoverflow.com/questions/35655306/hive-installation-issues-hive-metastore-database-is-not-initialized

 

 

  1. 常用命令使用。

 

  1. 创建表:create table t_order (id int ,product_id string,number int, amount double) row format delimited  fields terminated by ','

uploading.4e448015.gif转存失败重新上传取消

 

 

 

  1. 上传数据(hfsf方式):./bin/hadoop fs -put ./t_order_data1 /user/hive/warehouse/t_order

uploading.4e448015.gif转存失败重新上传取消

  1. 上传数据(hive方式):

load data local inpath '/usr/local/sbin/hadoop-3.1.0/t_order_data2' into table t_order

 

  1.  

 

  1. sqoop使用
  1. 使用场景。
  1. 数据库中的数据导入HDFS(支持where)

sqoop import …

  1.  数据库数据导入hive.

 

 

  1. storm实时流式计算
  1. 环境配置
  1. 修改配置文件:storm.yaml

uploading.4e448015.gif转存失败重新上传取消

 

  1. Storm启动

storm nimbus &
storm ui &
storm supervisor &
storm logviewer &

 

  1. 访问路径:

http://192.168.25.130:8080/index.html

  1. 工作机制。

 

 

uploading.4e448015.gif转存失败重新上传取消

 

uploading.4e448015.gif转存失败重新上传取消

 

uploading.4e448015.gif转存失败重新上传取消

uploading.4e448015.gif转存失败重新上传取消

 

  1. 实例代码

 

  1. Aauploading.4e448015.gif转存失败重新上传取消

uploading.4e448015.gif转存失败重新上传取消

 

uploading.4e448015.gif转存失败重新上传取消

  1. 代码 (mapreduce和strom)

uploading.4e448015.gif转存失败重新上传取消

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值