hadoop基本环境搭建

 

linux配置

本地模式

伪分部模式

完全分布式

HA架构

 

启动方式

基准测试

 

 

 

clouder版本说明

  由于电脑配置限制 没有用 CDH 加CM (配置足够的话这两个更方便)直接下载的各个模块 地址:http://archive.cloudera.com/cdh5/cdh/5/

推荐 jdk 8u144 , JDK 8u408u45  and 8u60  8u75 有问题不要用

用cdh 5.13.0 以下的版本

 

linux配置

1.配置主机名

编辑:/etc/sysconfig/network

内容:

NETWORKING=yes

HOSTNAME=master

 

2.配置dns

编辑:/etc/resolv.conf

内容:

search master

nameserver 114.114.114.114

nameserver 114.114.115.115

备用:

223.5.5.5

223.6.6.6

112.124.47.27

114.215.126.16

 

3.配置静态ip (IP生效:ifdown 设备名,ifup  设备名)

编辑:/etc/sysconfig/network-scripts/ifcfg-eno

内容:

DEVICE=eth0

BOOTPROTO=static

TYPE=Ethernet

IPADDR=192.168.13.10

NETMASK=255.255.255.0         //子网掩码

NETWORK=192.168.13.0         //网络地址

GATEWAY=192.168.13.2          //网关

BROADCAST=192.168.13.255  //广播地址

ONBOOT=yes

 

4.host配置(scp传到所有机器)

编辑:   /etc/hosts

格式:

192.168.13.10 master.cty.com  master

 

5.yum源配置

<<yum源.txt>>

6.安装jdk

卸载原有包:

rpm -qa|grep java

rpm -e --nodeps java-* …

解压安装包:

tar -zxfjdk-7u67-linux-x64.tar.gz -C /opt/modules/

配置环境变量: /etc/profile

JAVA_HOME=

PATH=$PATH:$JAVA_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

7.关闭防火墙Selinux

service iptables status

chkconfig iptables off

 

firewall-cmd --state 

systemctl stop firewalld.service 

systemctl disable firewalld.service #禁止firewall开机启动

 

修改/etc/selinux/config文件中设置SELINUX=disabled 然后重启服务器

 

8.ssh配置

确认已安装ssh:

rpm –qa | grep openssh

rpm –qa | grep rsync

 

master:

生成密匙对:

#ssh-keygen -t rsa -P ''

#ssh-copy-id 192.168.13.10 (master本机ip)

#ssh-copy-id -i~/.ssh/id_rsa.pub 用户名@对方机器IP

 

所有机器:

#chmod 600 ~/.ssh/authorized_keys(且.ssh文件夹应为700)

root用户下 vi /etc/ssh/sshd_config

把文件中的下面几条信息的注释去掉: 

  RSAAuthentication yes # 启用 RSA 认证

  PubkeyAuthenticationyes # 启用公钥私钥配对认证方式

  AuthorizedKeysFile.ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)

重启ssh

service sshd restart(或systemctl restart sshd.service)

 

运行 ps -e | grep ssh,查看是否有sshd进程

若ssh进程未启动:  /etc/init.d/ssh -start 

解决 Agentadmitted failure tosign using the key

如果出现该错误,则需要在所有的节点都执行   ssh-add   ~/.ssh/id_rsa   将私钥加入ssh

 

 

 

本地模式

1.简介:

本地就是单机模式,hadoop默认安装完就是单机模式

hdfs默认使用本地的文件系统

hdfs dfs -ls / 查看本地文件系统 和linux的ls/一样

2.安装解压:

tar xf /soft/hadoop-2.7.3.tar.gz -C /…

编辑: /etc/profile

   HADOOP_HOME=…

编辑: hadoop/etc/hadoop/hadoop-env.sh

   修改jAVA_HOME

如果需要修改日志存储路径,则需要在conf/hadoop-env.sh文件中增加:

export HADOOP_LOG_DIR=/home/xxxx/xxxx即可

 

3.测试wordcount:

#hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input/output

 

 

伪分部模式

1.简介

Hadoop进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。

2.安装及配置

在本地模式的基础上

在hadoop文件夹下建立 tmp name data文件夹

配置core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/home/**/hadoop/tmp</value>

</property> </configuration>

配置hdfs-site.xml

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

 </property>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/home/**/hadoop/name</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>master.cty.com:50090</value>

</property>

 

 <property>

<name>dfs.datanode.data.dir</name>

<value>/home/**/hadoop/tmp/data</value>

</property>

</configuration>

 

配置mapred-site.xml

<configuration>

<property>

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

<value>yarn</value>

</property>

 

<!-- ###########jobhistory############    -->

<property>

<name>mapreduce.jobhistory.address</name>

<value>master.cty.com:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>master.cty.com:19888</value>

</property>

 

</configuration>

 

配置yarn-site.xml

<configuration>

<property>

<name>yarn.resourcemanager.hostname</name>

<value>master</value>

</property>

<property>

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

<value>mapreduce_shuffle</value>

</property>

 

<property>

     <name>yarn.log-aggregation-enable</name>

     <value>true</value>

</property>

<property>

     <name>yarn.log-aggregation.retain-seconds</name>

     <value>640800</value>

</property>

</configuration>

配置slaves

Master

 

格式化

bin/hadoop namenode -format

可查看集群状态

hdfs dfsadmin -report 

进入离开安全模式

hadoop dfsadmin -safemode leave/enter

启动JobHistoryServer服务

sbin/mr-jobhistory-daemon.sh starthistoryserver 

start-balancer.sh(负载均衡)

hadoop job -kill job_id 杀进程

通过web 50070端口可查看hdfs信息

 

 

完全分布式

1.安装及配置

在本地模式的基础上

在hadoop文件夹下建立 tmp name data文件夹

配置core-site.xml

<<core-site.xml>>

 

配置hdfs-site.xml

<<hdfs-site.xml>>

配置mapred-site.xml

<<mapred-site.xml>>

 

配置yarn-site.xml

<<yarn-site.xml>>

配置slaves

加入从节点的hostname

 

2.启动方式

* 各个服务组件逐一启动

* hdfs   

hadoop-daemon.sh start|stopnamenode|datanode|secondarynamenode

* yarn   

yarn-daemon.sh start|stop resourcemanager|nodemanager

* mapreduce  

mr-historyserver-daemon.sh start|stop historyserver

* 各个模块分开启动

* hdfs

start-dfs.sh

stop-dfs.sh

* yarn

start-yarn.sh

stop-yarn.sh

* 全部启动

start-all.sh

stop-all.sh

 

3.基准测试

 

Hdfs io测试:

TestDFSIO用来测试HDFS的I/O性能,

以下命令写了10个文件,每个1000MB:

Hadoop  jarshare/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.0.0-cdh4.5.0-tests.jarTestDFSIO -write -nrFiles 10 -fileSize 1000

结果被写入控制台并同时记录在一个本地文件。

cat TestDFSIO_results.log 

完成基准测试后,可通过参数-clean从HDFS上删除所有生成的文件:

Hadoop  jar share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.0.0-cdh4.5.0-tests.jar TestDFSIO-clean

 

Namenode负载测试:

nnbench用于测试NameNode的负载,它会生成很多与HDFS相关的请求,给NameNode施加较大的压力。这个测试能在HDFS上创建、读取、重命名和删除文件操作。

以下例子使用10个mapper和5个reducer来创建1000个文件

hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.0.0-cdh4.5.0-tests.jarnnbench -operation create_write -maps 10 -reduces 5 -numberOfFiles 1000-replicationFactorPerFile 3 -readFileAfterOpen true 

 

mrbench会多次重复执行一个小作业,用于检查在机群上小作业的运行是否可重复以及运行是否高效。

hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.0.0-cdh4.5.0-tests.jarmrbench -numRuns 50

hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.0.0-cdh4.5.0-tests.jarmrbench -numRuns 10 -inputLines 100000 -maps 100 -reduces 5

 

example测试:

其中最常用的是teragen/terasort/teravalidate,一个完整的terasort测试由三个步骤组成:1)teragen产生数据;2)terasort执行排序;3)teravalidate验证排序结果。其运行命令参数如下:

terasort产生数据:

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.0.0-cdh4.5.0.jar teragen10000000 /examples/terasort-input 

排序数据

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.0.0-cdh4.5.0.jar terasort  /examples/terasort-input /examples/terasort-output

验证是否有序:

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.0.0-cdh4.5.0.jarteravalidate   /examples/terasort-output  /examples/terasort-validate

teravalidate执行验证操作时会输出排序错误的key,当输出结果为空时,表示排序正确

 

wordcount:现将一个文本文件put到hdfs中,执行

hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-examples-2.0.0-cdh4.5.0.jarwordcount  /input  /output

 

 

HA架构

1.需要zookeeper实现自动切换

2.实现局域网内时间同步 ntp

安装ntp

编辑:/etc/ntp.conf

#restrict 192.168.1.0 mask 255.255.255.0nomodify notrap 去注释改成正确网络号

server 0.centos.pool.ntp.org iburst 此行及以下注释掉

server1.centos.pool.ntp.org iburst

server2.centos.pool.ntp.org iburst

编辑 :/etc/sysconfig/ntpd

#Drop root to id 'ntp:ntp' by default.

SYNC_HWCLOCK=yes

OPTIONS="-untp:ntp -p /var/run/ntpd.pid -g"

 

servicentpd status

servicentpd start

chkconfigntpd on

 

用crontab -e

定时执行Ntpdate master.cty.com

3.配置

<<core-site.xml>>

<<hdfs-site.xml>>

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值