发布新日志

  • 大数据测试之hadoop单机环境搭建(超级详细版)

    2018-01-30 11:08:14

    友情提示:本文超级长,请备好瓜子

    Hadoop的运行模式


    单机模式是Hadoop的默认模式,在该模式下无需任何守护进程,所有程序都在单个JVM上运行,该模式主要用于开发和调试mapreduce的应用逻辑;

    伪分布式模式下,Hadoop守护进程运行在一台机器上,模拟一个小规模的集群。该模式在单机模式的基础上增加了代码调试的功能,允许你检查NameNode,DataNode,Jobtracker,Tasktracker等模拟节点的运行情况;

    单机模式和伪分布式模式均用于开发和调试的目的,真实Hadoop集群的运行采用的是完全分布式模式

    单机模式安装步骤


    一个干净的linux基础环境(重要,这个环境如果有问题后续就全是问题了)

    为了方便大家我已经安装好了一个,大家只需下载导入到vm里即可使用。

    链接:https://pan.baidu.com/s/1qXRjaK8 密码:xjfk

    关闭防火墙(适用于centos7,低版本不适用)

    分别执行如下两条命令:

    systemctl stop firewalld.service

    systemctl disable firewalld.service

    修改host name

    vi /etc/hosts

    然后把自己虚机的名字追加到两行的末尾,如果用的是我们提供的虚机,名字就是linux,追加之后的效果如图

    重启网络:/etc/rc.d/init.d/network restart

    设置无密码登录(用于hadoop启动)

    cd ~ #进入当前用户的目录

    mkdir -p /root/.ssh #我们用的root用户

    cd ~/.ssh/

    ssh-keygen -t rsa #如有提示,直接按回车 cat id_rsa.pub >> authorized_keys # 加入授权

    安装jdk1.8并配置环境变量

    tar解压

    cp解压后的包到/usr/lib/java/(如果没有java目录就创建一下)

    vi /etc/profile,末尾添加如下内容:

    export JAVA_HOME=/usr/lib/java/jdk1.8.0_11

    export JRE_HOME=/usr/lib/java/jdk1.8.0_11/jre

    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

    export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

    执行source /etc/profile使得环境变量生效

    验证是否成功,如下图

    安装hadoop2.7.4

    tar解压

    cp解压后的包到/usr/lib/hadoop/(如果没有hadoop目录就创建一下)

    设置hadoop-env.sh

    vi /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop/hadoop-env.sh

    找到# The java implementation to use.这句话,在下面添加如下内容:

    #export JAVA_HOME=${JAVA_HOME}

    export JAVA_HOME=/usr/lib/java/jdk1.8.0_11

    export HADOOP_HOME=/usr/lib/hadoop/hadoop-2.7.4

    export PATH=$PATH:/usr/lib/hadoop/hadoop-2.7.4/bin

    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

    执行source /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop/hadoop-env.sh,使得环境变量生效

    验证是否成功,如下图

    配置相关的xml文件

    vi /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop/core-site.xml(hadoop全局配置)

    内容如下:

    <configuration>

    <!--指定namenode的地址-->

    <property>

    <name>fs.defaultFS</name>

    <value>hdfs://127.0.0.1:9000</value>

    </property>

    </configuration>

    vi /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop/hdfs-site.xml(hdfs配置)

    内容如下:

    <configuration>

    <!--指定hdfs保存数据的副本数量-->

    <property>

    <name>dfs.replication</name>

    <value>1</value>

    </property>

    </configuration>

    cd /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop

    cp mapred-site.xml.template mapred-site.xml

    vi mapred-site.xml(MapReduce的配置)

    内容如下:

    <configuration>

    <!--告诉hadoop以后MapReduce运行在YARN上-->

    <property>

    <name>mapreduce.framework.name</name>

    <value>yarn</value>

    </property>

    </configuration>

    vi yarn-site.xml(yarn配置)

    内容如下:

    <configuration>

    <!-- Site specific YARN configuration properties -->

    <!--nomenodeManager获取数据的方式是shuffle-->

    <property>

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

    <value>mapreduce_shuffle</value>

    </property>

    </configuration>

    格式化hdfs文件系统

    初次运行hadoop时一定要有该操作,命令如下:

    /usr/lib/hadoop/hadoop-2.7.4/bin/hadoop namenode -format

    执行期间可能需要确认是否继续,如果有,就输入y回车即可

    当你看到如下的内容时证明成功了

    如果看到的是exiting with status 1,那么请运行如下命令,之后在进行hdfs的格式化

    mkdir -pv /tmp/hadoop-root/dfs/name

    启动hadoop(hdfs和yarn)

    sh /usr/lib/hadoop/hadoop-2.7.4/sbin/start-all.sh

    sh /usr/lib/hadoop/hadoop-2.7.4/sbin/stop-all.sh #停止

    如果没有报错说明就成功了

    使用jps命令查看进程,如果出现下面的内容就说明确定以及肯定成功啦

    PS:如果修改了上面的xml文件需要重启服务哦

    使用web查看Hadoop运行状态

    http://你的服务器ip地址:50070/

    使用web查看集群状态

    http://你的服务器IP地址:8088

    可能会遇到的问题

    如果你多次进行了hdfs的格式化操作,可能会无法启动datanode,原因是id不一致,一般的解决方法为将namenode clusterID和datanode clusterID改成一样的就行了。修改的文件为/tmp/hadoop-root/dfs/下的name or data文件下的VERSION里的内容

  • 测试开始与结束通知邮件模板

    2018-01-25 10:34:30

    测试开始通知邮件模板

    Hi all,

    根据XXX项目的情况,将从2009-4-24 11:30 至 18:00进入第XX轮XX测试,测试结束前请开发人员不要修改测试环境,保持环境的稳定。

    测试计划如下:

    测试版本

    tags/xxxx

    测试环境

    登录地址:

    登录后访问: 

    hosts设置:

    测试范围

    1 回归上轮缺陷;

    2 进行本轮测试,除feed、通知内容之外的全部功能:

    测试策略

    本阶段测试完成后,立即进入缺陷评审,以确定后续工作计划.

    测试人员

    缺陷管理

    1. 欢迎大家参与测试

    为避免重复或无效,除测试和产品工程师在JIRA填报提案外,发现的问题请直接发信给xxx

    2. 缺陷分配

    -  需求无异议的缺陷直接分配给xxx,由他安排解决

    -  需要产品确认的缺陷分配给xxx,经确认确实是bug的提案,分配给xxx

    3. 缺陷填报

    -  缺陷库:JIRA中的“xxx-APP -缺陷库”

    -  版本选择:xxx 第一次集成测试

    -  组件选择:xxx

    测试结束通知邮件模板

    Hi all,

    XXX第X轮系统测试(之冒烟测试X)结束。

    测试版本

    xxx

    测试时间

    XX月XX日 XX:XX – XX月XX日 XX:XX

    测试范围

    测试人员

    测试工程师+产品工程师+客服人员

    测试结论

    本轮新报出的缺陷分析

    1、缺陷按优先级划分:

    本轮新发现X个提案,其中B级X个,C级X个,D级X个,E级X个;

    2、缺陷按模块划分:

    XX模块:XX个缺陷,其中C级缺陷X个;

    3、缺陷按状态划分:

    开放中:XX个;

    已解决:XX个

    4、高权重问题分析:

    影响说明(XXXX)  (列举相关提案)

    回归缺陷分析:

    本轮共验证提案X个:其中验证通过X个,重开X个(包括验证不通过后又被修改的提案)

    测试结论及风险

    [测试未通过]

    1.  当前系统尚未达到上线标准。

    2.  修改全部新发现的缺陷和重开缺陷,构建新的版本以进入第四轮系统测试。

    3. ……

    [测试通过]

    1.  当前系统可以达到上线标准。建议所有未验证、未修复提案均延迟处理,冻结代码。

    2.  发布版本:举例:xxxx

    3.  测试报告将于上线后给出。

    附件:缺陷列表

  • 湿货|小白学习大数据测试之Hive和Hbase

    2018-01-25 08:37:49

    作为初学者经常会对Hive和Hbase产生疑问,不知道两者是干啥的,有啥区别,总觉得都是存储数据的。其实他们还真是有本质区别的,请听我慢慢道来~

    Hbase是nosql数据库,以key-value形式存储数据的,主要用于海量数据的实时查询,比如日志信息。

    Hive是数据仓库,而非数据库,主要是用来解决数据处理、计算的。开发人员能够通过SQL来计算和处理HDFS上的结构化数据,适用于离线的批量数据计算

    两者一般都是配合使用的,为了方便大家理解我简单画了下数据流图。

    最后来一点小科普:

    数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。

    • OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。

    • OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

    像我们上面讲的Hbase就属于OLTP,Hive属于OLAP


  • 关于selenium webdriver chromedriver下载的问题

    2018-01-23 12:14:54

    引子


    经常有童鞋问这样的问题:

    1、chromedriver哪里可以下载?

    2、为啥我配好了chromedriver但chrome启动不了啊?


    解决方案


    今天我们就来解决他们。

    1、chromedriver官网下载地址:http://chromedriver.storage.googleapis.com/index.html

    这里有所有的版本,点击某个版本目录之后可以看到详细的内容,后缀为win32的就是windows下的,后缀为mac64的就是mac下的


    2、为啥我配好了chromedriver但chrome启动不了啊?

    因为你chromedriver和chrome的版本不一致啊。解决方法分三步走:

    • 查看自己chrome的版本,不要问我怎么看。。。。比如:我的是60

    • 访问chromedriver官网,一般版本越高的对应的chrome版本也越高,经过查找chrome 60对应的是chromedriver 2.33。如何确定的呢?其实你进入版本目录里点击notes.txt,里面就会告诉你的,如下图

      blob.png

    • 把对应版本的chromedriver复制到你的python根目录下就万事大吉了

  • python3.x操作csv文件的实战

    2018-01-16 22:49:49

    说明


    python3.x集成了对csv文件的操作,直接引入包即可,但python2.x则需要单独安装。


    实战


    1、读取csv文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #引入包
    import csv
    #打开文件
    csvfile = open('xiaoqiang.csv',newline='')
    #获得对象
    csvReader = csv.reader(csvfile)
    #读取内容并打印
    for content in csvReader:
      print(content)
       
    #关闭。这个经常有小伙伴忘了,今天在群里就有人遇到这个问题了
    csvfile.close()


    2、写入csv文件