标签:打开 没有 hosts dfs pad ping 子节点 日常 虚拟机
Hadoop的搭建分为三种形式:单机模式、伪分布模式、完全分布模式,只要掌握了完全分布模式,也就是集群模式的搭建,剩下的两种模式自然而然就会用了,一般前两种模式一般用在开发或测试环境下,Hadoop最大的优势就是分布式集群计算,所以在生产环境下都是搭建的最后一种模式:完全分布模式。
须知:

关于Hadoop集群环境软件的选择,无非就是围绕这个几个软件产品去选择:OS操作系统,Hadoop版本,JDK版本,Hive版本、MySQL版本等。
提前规划出四台服务器用来搭建Hadoop集群,然后分别为其分配了机器名称、IP,IP需要设置为统一网段,可根据使用的情况,进行动态调整的。
另外说明:搭建了两台Ubuntu的服务器来单独安装MySQLServer,搭建了一个主从模式,Ubuntu是一个界面友好的操作系统,这里和Hadoop集群分离的目的是因为Mysql数据库是比较占内存资源的,所以我们单独机器来安装,当然,MySQL并不是Hadoop集群所需要的,两者没有必然的关系,这里搭建它的目的就为了后续安装Hive来分析数据应用的,并且我们可以在这个机器里进行开发调试,当然Window平台也可以,毕竟我们使用Windows平台是最熟练的。(hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。)
安装前需明了:
mkdir /usr/java, chown hadoop:hadoop /usr/java/, ll /usr vim /etc/profile # set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_121
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin cp -r jdk1.8.0_121 /usr/java/ java -version --/usr目录下,创建hadoop目录
mkdir /usr/hadoop
--拷贝解压后的hadoop安装包
cp -r hadoop-2.6.4 /usr/hadoop
--赋权给Hadoop用户
chown hadoop:hadoop /usr/hadoop/
--查看确认
ll /usr/ cd /usr/hadoop/hadoop-2.6.4/ vim etc/hadoop/core-site.xmlxxxxxxxxxx<configuration><!– HDFS file path –><!– HDFS默认的连接地址 –><property> <name>fs.defaultFS</name> <value>hdfs://192.168.1.50:9000</value> </property><!– 流文件的配置大小,默认是4K太小了,这里将这个值改的大 –> <property> <name>io.file.buffer.size</name> <value>131072</value> </property><!–生成临时结果的配置路径,需要创建目录tmp–> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/hadoop/hadoop-2.6.4/tmp</value> <description>Abasefor other temporary directories.</description> </property></configuration>创建目录mkdir tmp
配置第二个文件vim etc/hadoop/hdfs-site.xml
<property> <name>dfs.namenode.secondary.http-address</name> <value>192.168.1.50:9001</value> </property>? <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/hadoop/hadoop-2.6.4/dfs/name</value> </property>? <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/hadoop/hadoop-2.6.4/dfs/data</value> </property>? <property> <name>dfs.replication</name> <value>1</value> </property>? <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property>文件解释:
创建目录:mkdir dfs
mkdir dfs/name
mkdir dfs/data
配置第三个文件:cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml因为在这里Hadoop已经提供了一个模板,直复制创建,然后修改此文件:vim etc/hadoop/mapred-site.xml
xxxxxxxxxx<!– 第一个就是制定当前Hadoop的并行运行计算架构,这里为yarn,第二个就是Job运行的历史记录Server,第三个就是历史运行记录的Web服务器。 –><configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>192.168.1.50:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>192.168.1.50:19888</value> </property></configuration>配置第四个文件:vim etc/hadoop/yarn-site.xml
<!–后续的调优会一直围绕这个文件进行–><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>192.168.1.50:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>192.168.1.50:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>192.168.1.50:8035</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>192.168.1.50:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>192.168.1.50:8088</value> </property>配置Hadoop的jdk路径,不指定是不能运行的,hadoop-env.sh 和 yarn-env.sh 在开头添加如下java环境变量:export JAVA_HOME=/usr/java/jdk1.8.0_73
vim etc/hadoop/hadoop-env.sh
vim etc/hadoop/yarn-env.sh
因为所有Hadoop用户都有执行权限,所以:
chown -R hadoop:hadoop /usr/hadoop/hadoop-2.6.4/
bin/hadoop namenode -format运行结果:
sbin/start-dfs.sh然后查看jps进程:
bin/hadoop dfsadmin -report 
sbin/start-yarn.sh 
上一部分是单节点的安装,工作已经完成了一半,下面进行的是完全分布式的环境搭建。
为了减少配置时间,我直接对上一节点进行克隆
节点基本信息:
总共需要5台服务器来使用,四台用来搭建Hadoop集群使用,另外一台(可选)作为MySQL等外围管理Hadoop集群来使用。在开发的时候一般也是直接通过连接外围的这台机器来管理Hadoop整个集群
工作大概流程:

vim /etc/sysconfig/network
vim /etc/hosts
vim /etc/ssh/sshd_config
/sbin/service sshd restart ssh localhost这个时候会让你输入密码,是因为没有生成密钥,下面进行设置 ssh-keygen -t rsa -P ‘‘
红框勾出的路径就是公钥和私钥生成的默认路径 scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/复制的公钥文件存在默认的路径“/home/hadoop/.ssh”scp ~/.ssh/id_rsa.pub hadoop@192.168.1.51:~/
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
SSH <远程IP && 域名>在master机器上登录slave01机器上实验下,看是否还需要进行密码输入ssh slave01.hadoop从Master机器上面无密码的登录到Slave01机器上面,那么说明刚才的配置生效了。 vim /usr/hadoop/hadoop-2.6.4/etc/hadoop/slaves将各个Slave的IP或者机器名写入
vim /usr/hadoop/hadoop-2.6.4/etc/hadoop/hdfs-site.xml
(这里需要注意的是,所有的机器都要这样配置。) bin/hadoop namenode -format start-dfs.sh
start-yarn.sh
通过浏览器来查看整个集群的Hadoop集群状态,地址为:http://192.168.1.50:8088/
可见当前的Hadoop集群已经存在四个正在运行的节点。标签:打开 没有 hosts dfs pad ping 子节点 日常 虚拟机
原文地址:http://www.cnblogs.com/jichui/p/7137804.html