简介
Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统HDFS(Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。
对于Hadoop的集群来说,能够分红两大类角色:Master和Salve。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode做为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操做;集群中的DataNode管理存储的数据。MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每一个从节点的TaskTracker共同组成的。主节点负责调度构成一个做业的全部任 务,这些任务分布在不一样的从节点上。主节点监控它们的执行状况,而且从新执行以前的失败任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交做业和配置信息以后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。
从上面的介绍能够看出,HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过程当中提供了文件操做和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工做,并收集结果,两者相互做用,完成了Hadoop分布式集群的主要任务。html
安装包:http://hadoop.apache.org/releases.html#Release+Notesjava
1:环境准备
3台机器,系统自定
>1. 下载jdk包,配置环境变量 http://www.Oracle.com/technetwork/java/javase/index.html
>2. 配置虚拟环境
dns解析
vim /etc/resolv.conf
nameserver 223.5.5.5
主机路由
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain
10.68.4.49 master
10.68.4.55 slave1
10.68.4.56 slave2
更改主机名
hostname master ###退出从新登陆 或者 [root@master ~]# 经过这个能够看到主机名是否已经变成你须要的
####上述很重要,若是仍是localhost的,后续启动端口时,会以127.0.0.1启动,主从不能相互通讯
>3. 测试
互ping ping master;ping slave1 成功说明环境OKnode
2:ssh无秘钥认证
Hadoop运行过程当中须要管理远端Hadoop守护进程,在Hadoop启动之后,NameNode是经过SSH(Secure Shell)来启动和中止各个DataNode上的各类守护进程的。这就必须在节点之间执行指令的时候是不须要输入密码的形式,故咱们须要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登陆并启动DataName进程,一样原理,DataNode上也能使用SSH无密码登陆到 NameNode。
注意:若是你的Linux没有安装SSH,请首先安装SSH
Ubuntu下安装ssh:sudo apt-get install openssh-server
Fedora下安装ssh:yum install openssh-server
>1. 建立无密码秘钥对
ssh-keygen -t rsa
三回车便可
根据回车以后的内容能够判断在当前用户的家目录下产生了id_rsa id_rsa.pub
查验当前用户家目录下是否有.ssh 目录,若无建立此目录
ls -al /home/user/
mkdir /home/user/.ssh
cd /home/user/.ssh
cat id_rsa.pub >>authorized_keys ####把上述建立的文件追到到此文件中
chmod 700 -R /home/user
chmod 755 /home/user/.ssh
chmod 600 /home/user/.ssh/authorized_keys
>2. 开启秘钥认证
vim /etc/ssh/sshd_config
PermitRootLogin yes ####避免不能登陆,能够先放开root登陆权限
RSAAuthentication yes ###注释掉这三行即为开启秘钥认证
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keysweb
>3. 重启ssh服务
/etc/init.d/sshd restart or service sshd restart or centos7:systemctl restart sshd.service
>4. 把公钥拷贝到其它机器上,并追加到authorized_keys此文件中apache
>5. 全部机器重复上述操做vim
>6. 校验
ssh slave ####第一次认证须要输入yes,再次测试不须要输入任何东西登陆成功即为OKcentos
3:hadoop 安装,先安装一台,其他的直接scp过去便可
>1. 解压包至你想要的目录
个人是/usr/local/hadoop
mkdir /usr/local/hadoop/tmp
设置Hadoop环境变量
export HADOOP_HOME=/usr/hadoop
export PATH=$PATH :$HADOOP_HOME/bin
>2. 配置文件
cd /usr/local/hadoop/etc/hadoop
vim core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
<!--临时目录得提早建立才行-->
<description>A base for other temporary directories.</description>
</property>
<!-- file system properties -->
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
vim hadoop-env.sh ####指定jdk路径
export JAVA_HOME=/data/java/jdk安全
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<!--property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/dfs/name</value>
</property-->
<!--property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/dfs/data</value>
</property-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>服务器
vim mapred-site.xml
<configuration>
<!--property>
<name>mapred.job.tracker</name>
<value>http://10.68.4.49:9001</value>
</property-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>架构
vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
vim slaves
slave1
slave2
>3. 拷贝至其余机器
scp -r /usr/local/hadoop user@IP:/usr/local
>4. server 格式化hdfs文件系统
Hadoop namenode -format ###初次启动才须要
cd /usr/local/hadoop/sbin
主从依次启动
./start-all.sh
>5. 校验
hadoop dfsadmin -report 查看Hadoop集群的状态
也能够经过jps查看
网页校验
http://10.68.4.49:8088
http://10.68.4.49:50070
若是不行的话就看日志吧
日志默认目录:/usr/local/hadoop/logs
能够自定义,修改此文件:vim /usr/local/hadoop/etc/hadoop/log4j.properties
hadoop dfsadmin -safemode leave 关闭安全模式
各文件参数详解见:
http://www.cnblogs.com/yinghun/p/6230436.html