hadoop基本环境搭建
linux配置
本地模式
伪分部模式
完全分布式
HA架构
启动方式
基准测试
clouder版本说明
由于配置限制 没有用 CDH 加CM (配置足够的话这两个更方便)直接下载的各个模块 地址:http://archive.cloudera.com/cdh5/cdh/5/
推荐 jdk 8u144 , jdk 8u40 8u45 and 8u60 8u75 有问题不要用
建议用cdh 5.13.0 以下的版本
1. 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源配置
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
2. 本地模式
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
3. 伪分部模式
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信息
4. 完全分布式
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 - historyserver
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-cleanNamenode负载测试:
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 50hadoop 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
5. 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>>
缺失的配置文件真的需要的话 可以查找我的onenote笔记
地址:github.com/cccccttttyyy/Mynote