1.部署所需软件介绍
1.1操作系统
版本号:CentOS-7-x86_64-DVD-1503-01.iso
下载地址:
http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1503-01.iso
选择一个64位的版本或者32位的版本
1.2 jdk
下载地址:
http://download.oracle.com/otn/java/jdk/7u80-b15/jre-7u80-linux-x64.tar.gz
注:需要注册oracle账号才能下载。
1.3 hadoop版本
版本号:hadoop-2.6.1.tar.gz
下载地址:http://apache.fayea.com/hadoop/common/hadoop-2.6.1/hadoop-2.6.1.tar.gz
镜像网站选择:http://www.apache.org/dyn/closer.cgi/hadoop/common
hadoop64位完整的安装包下载地址:
http://download.csdn.net/detail/colacat911/8290111
网盘地址链接:http://pan.baidu.com/s/1eQ5sNAE 密码: 1ihp
Hadoop版本选择2.x,比较稳定的。1.x与2.x在配置和处理方式上有些不同。
1.4 hadoop native库 64位编译包
Hadoop native 64位编译包是针对64位操作平台设定的。32位的操作系统无须下载。
下载地址:http://download.csdn.net/detail/tongyuehong/8524619
注:此包可以下载源代码自己进行编译。
1.5 Open ssh
ssh工具是用来linux系统之间免密钥通讯的工具。CentOS系统已经自带,可以另行安装。
版本:openssh-6.0p1.tar.gz
下载地址:http://marc.info/?l=openssh-unix-dev&r=1&w=2
下载镜像:http://download.chinaunix.net/download.php?id=39879&ResourceID=7713
如需安装,请参看:
1.6 SSH Secure ShellClient 远程连接工具
ssl远程连接工具主要是为了方便连接CentOS系统,上传文件到CentOS系统中。
下载连接:http://ultra.pr.erau.edu/~jaffem/classes/SSHSecureShellClient-3.2.9.exe
1.7 eclipse
版本号:Mars.1(4.5.1)
下载连接:http://www.eclipse.org/downloads/
根据自己的需要下载相应的版本,jdk,操作系统,eclipse位数要一致,否则无法使用。
2.部署hadoop1.x与hadoop 2.x区别
部署Hadoop1.x时,需要配置master和mapred.xml文件。而在hadoop2.x中则不需要配置master和maored.xml文件。但需要配置yarm.xml文件。
Hadoop2.x的文件分类更加详细,功能模块也比hadoop1.x多。
2.1Hadoop2.x集群网络拓扑:
一个master节点,即namenode节点
三个slave节点,即三个datanode节点
四台机器的所有配置都一样,出了hostname不一样外。
3.部署操作系统环境配置
3.1操作系统环境配置
配置hadoop用户
配置命令:
1. 填加用户:useraddHadoop //Hadoop为用户名
2. 随之输入相应的密码: passwdHadoop 123456 //折密码是不可见的。
3. 修改hadoop用户权限:chmod -v u+w /etc/sudoers//将hadoop用户赋予管理员权限。
4. 查看所有用户: ll /usr/sbin/ | grep user
可以参考博文,添加/删除用户和修改组的例子:
http://jingyan.baidu.com/album/9f63fb91a9a7a3c8400f0ecb.html?picindex=3
http://jingyan.baidu.com/article/19192ad81e2919e53f57074d.html
http://jingyan.baidu.com/article/19192ad81e2919e53f57074d.html
3.2网络环境配置(防火墙,selinux,网卡配置,hostname,hosts)
3.2.1.关闭所有Linux机器的防火墙,否则之间不能通信。
1.关闭selinux
3.2.2关闭firewalld
centos 7:
systemctl stop firewalld.service #停止
systemctl disable firewalld.service #禁用
之前的版本:
service iptables stop #停止
chkconfig iptables off #禁用
查看防火墙状态:
3.2.3统一将vmware内部系统的网络设置为192.168.184.1
3.2.4 windows网络设置
注意:在网络共享时,网络会改成192.168.137.1,这时要重新更改vmnet1的网络地址。
1.网络共享设置,保证vmware中的系统能连接上外网,使宿主机能够访问vmware中的linux系统。
2.网络ip设置
3.vmware网络设置
4.CentOS网卡类型配置:
1.3 CentOS网络设置
1.5.1命令模式
1.网络脚本文件夹
2.修改网卡属性
1.5.2界面模式
1.进入到网络管理界面
3.2.5配置网卡属性
3.2.6配置hostname,作用是修改主机名,便于集群管理
配置命令:vim/etc/hostname
点击字母i进入编辑模式,修改主机名为:hadoop
按esc退出编辑模式 ,然后按”:”输入”wq!“保存并退出
3.2.7配置hosts文件,用于设定访问的host
配置命令 vim /etc/hosts
点击字母i进入编辑模式,修改host文件
按esc退出编辑模式 ,然后按”:”输入”wq!“保存并退出
注:hosts文件中的域名hadoop001为主机名。
附:vim的使用,按i字母进入编辑模式
按esc退出编辑模式
按“shift+:”进入命名行(需要先按esc)
在命令行输入”wq!” 为保存退出,”q!”为退出。
3.3 文件及文件夹权限配置
涉及到的文件夹
/root/.ssh
/home/lucien/jdk
/home/lucien/Hadoop
/home/lucient/data/temp
/etc/selinx
/etc/network
/etc/hosts
/etc/hostname
权限配置命令:su chmod –R 775 文件夹路径
4.Open ssh配置
linux免密钥登录
1. 键入:ssh-keygen –t rsa ,然后一直按回车结束到命令行
2. 将生成的id_rsa.pub文件分别考到其他机器上
生成文件如下:
拷贝方式一:ssh-copy-id –i /root/.ssh/id_rsa.pub root@Hadoop001
拷贝方式二:cat id_rsa.pub>> .ssh/authorized_keys //将公钥放到authorized_keys文件中
chmod 600 .ssh/authorized_keys //修改文件夹权限
scp /root/.ssh/authorized_keys root@Hadoop001:/root/.ssh //拷贝到其他机器。
注:方式一是方式二的融合。
登录到其他机器: ssh root@Hadoop002 //进入到hadoop002机器,表成功。
2. linux互相免密钥登录
将自己的公钥和其他机器的公钥都追加到authorized_keys文件中,即可以实现互
3.免密钥通信。
linux ssh localhost 登录需要密码问题解决
问题一:.ssh文件夹及文件权限不够,修改文件夹与文件权限
chmod –R 775 /root/.shh
问题二:authorized_keys中密钥不对,重新生成密钥。
5.JDK安装
1.将jdk安装包在宿主机中解压然后上传至centOS中,也可以上传压缩包到CentOS中解压。本教程采用解压后,用ssh工具上传
2.上传解压命令:tarxzvf /压缩包地址–C /解压到的位置。
3. 配置jdk环境
配置命令: vim /etc/profile
配置参数: exportJAVA_HOME=/usr/java/jdk1.6.0_27
export JAVA_BIN=/usr/java/jdk1.6.0_27/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
配置生效:./etc/profile
验证jdk是否安装成功命令: java–version
注:jdk环境配置的路径要是jdk所在的路径,一定要仔细。注意标红路径配置。
6. Hadoop 2.x安装
6.1.hadoop的文件结构
6.2Hadoop配置
配置涉及文件有8个
/hadoop/etc/hadoop/hadoop-env.sh
/hadoop/etc/hadoop/yarn-env.sh
/hadoop/etc/hadoop/slaves
/hadoop/etc/hadoop/core-site.xml
/hadoop/etc/hadoop/hdfs-site.xml
/hadoop/etc/hadoop/mapred-site.xml
/hadoop/etc/hadoop/yarn-site.xml
/etc/profile
6.2.1配置hadoop-env.sh文件,修改jdk路径
配置参数:exportJAVA_HOME=/usr/lib/jvm/java-1.7.0
exportHADOOP_INSTALL=/home/lucien/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
exportHADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
exportHADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
6.2.2配置yarn-env.sh文件,修改jdk路径
配置参数:exportJAVA_HOME=/usr/lib/jvm/java-1.7.0
6.2.3配置slaves文件
配置参数:即为主机名
6.2.4配置core-site.xml文件
配置参数:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<!—临时文件存放地址,自己定义-->
<value>/data/hadoop-${user.name}</value>
</property>
<property>
<name>fs.default.name</name>
<!—hdfs文件系统访问地址,为namenode节点的主机名加9000
也可以写对应机器的ip地址-->
<value>hdfs://Hadoop001:9000</value>
</property>
</configuration>
注:临时数据存放文件夹的权限要设置读写权限,否则初始hadoop会报错。
6.2.5配置hdfs-site.xml
<configuration>
<property>
<name>dfs.http.address</name>
<!—文件系统访问地址-->
<value>hadoop001:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop001:50090</value>
</property>
<property>
<!—文件系统备份数量,要小于节点数-->
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
6.2.6配置mapred-site.xml
mapred-site.xml文件在hadoop中由mapred-site.xml.template替代,将后缀去掉即可。
配置参数:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop001:9001</value>
</property>
<property>
<name>mapred.map.tasks</name>
<value>20</value>
</property>
<property>
<name>mapred.reduce.tasks</name>
<value>4</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop001:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop001 :19888</value>
</property>
</configuration>
6.2.7配置yarn-site.xml,这个是与hadoop 1.x不同的地方
<configuration>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop001:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value> hadoop001:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value> hadoop001:8088</value>
</property>
<property>
<name>yarn.resourcemanager.resourcetracker.address</name>
<value> hadoop001:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value> hadoop001:8033</value>
</property>
<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>
</configuration>
6.2.8配置profile,加入hadoop环境
export HADOOP_HOME=/home/lucien/Hadoop
6.3拷贝到其他节点
scp –r home/lucien/hadoop root@hadoop002:/home/lucien
scp –r home/lucien/hadoop root@hadoop003:/home/lucien
scp –r home/lucien/hadoop root@hadoop004:/home/lucien
6.4格式化namenode
格式化命令:./bin/hdfs namenode –format
6.5启动hadoop
启动hdfs: ./sbin/start-dfs.sh
启动yarn: ./sbin/start-yarn.sh
全部启动 ./sbin/start-all.sh 启动成功后jps看进程,会有五个,表成功
7.检查启动结果
查看集群状态:./bin/hdfsdfsadmin –report
查看文件块组成:./bin/hdfsfsck / -files -blocks
查看HDFS: http://Hadoop001:50070(主机IP) //可用ip访问
查看RM: http://Hadoop001:8088(主机IP) //可用ip访问
HDFS:
RM:
8. 网络不通问题解决
9. 权限问题
10. Hadoop运行问题
10.1 hadoop运行报找不到文件
10.2 hadoop运行报找不到hostname
10.3 namenode无法启动
10.4 无法打开50070页面
10.5 版本与系统不兼容
11.搭建集群技巧
12.eclipse发布程序到hadoop集群
部分内容请等待……