Hadoop集群搭建
来源:互联网 发布:微信扫码抽奖软件 编辑:程序博客网 时间:2024/05/17 20:08
Hadoop分布式安装集群
一、安装虚拟机
如果安装完整版的需要执行下面操作。该步骤是安装mini版本和完整版的区别。mini版的可以完全不用做该操作。
1、安装时配置网络
里面所有的参数按照下面的方式查找。
按照系统提示操作。
进入centos7系统。
2、使该用户具有root的临时权限,这个是做不做都可以。
大概在92行加入红色线框的内容,中间用一个Tab键隔开。
保存并退出。
3、在centos7里面修改用户名
命令:hostname:查看当前主机名
用命令:reboot重启
第二种方法:
reboot重新启动
以上两种方法不管是在root用户还是具有root临时权限的用户下,进行创建hostname还是修改network文件,hostname的执行力度会比network的强。比如:如果同时修改两个文件并且两个修改的名字不一样,会按照hostname的名字显示。
4、配置静态IP(这里不展示root用户的操作)
这是转载网络配置的的详解:
Linux网卡配置文件详解:
DEVICE=eth0 #指出设备名称
NM_CONTROLLED=yes #network mamager的参数,实时生效,不需要重启
ONBOOT=yes #设置为yes,开机自动启用网络连接
IPADDR=192.168.21.129 #IP地址
BOOTPROTO=none #设置为none禁止DHCP,设置为static启用静态IP地址,设置为dhcp开启DHCP服务
NETMASK=255.255.255.0 #子网掩码
DNS1=8.8.8.8 #第一个dns服务器
TYPE=Ethernet #网络类型为:Ethernet
GATEWAY=192.168.21.2 #设置网关
DNS2=8.8.4.4 #第二个dns服务器
IPV6INIT=no #禁止IPV6
USERCTL=no #是否允许非root用户控制该设备,设置为no,只能用root用户更改
HWADDR=00:0C:29:2C:E1:0F #网卡的Mac地址
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
NAME=”System eth0” #定义设备名称
Linux网卡配置文件详解:
DEVICE=eth0 #指出设备名称
NM_CONTROLLED=yes #network mamager的参数,实时生效,不需要重启
ONBOOT=yes #设置为yes,开机自动启用网络连接
IPADDR=192.168.21.129 #IP地址
BOOTPROTO=none #设置为none禁止DHCP,设置为static启用静态IP地址,设置为dhcp开启DHCP服务
NETMASK=255.255.255.0 #子网掩码
DNS1=8.8.8.8 #第一个dns服务器
TYPE=Ethernet #网络类型为:Ethernet
GATEWAY=192.168.21.2 #设置网关
DNS2=8.8.4.4 #第二个dns服务器
IPV6INIT=no #禁止IPV6
USERCTL=no #是否允许非root用户控制该设备,设置为no,只能用root用户更改
HWADDR=00:0C:29:2C:E1:0F #网卡的Mac地址
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
NAME=”System eth0” #定义设备名称
也可以只留下下面的部分:
修改主机名和ip的键值关系
保存并退出。
重启虚拟机reboot或者重启网络systemctl restart network
重启时有时会遇到下面的错误(这个解决方案是对于个人来说),查看本机只是将NM_CONTROLLED (#network mamager的参数,实时生效,不需要重启,同时也是控制uuid 等的地方)的值是否是yes,或者直接删除;
具体解决方法请参考博客。
http://www.myexception.cn/ai/1952747.html
http://blog.csdn.net/u201017971/article/details/45841659/
5、验证是否网络设置成功。ping连接
ping -c [连接次数] -i [每次之间的间隔]o
拼接主机和ip
ping外网是否ping通。
6、创建hadoop用户,所有关于hadoop的操作都在这里面运行。
创建用户和密码
查看所有的用户:
安装JDK1.8
查看电脑里面安装的jdk版本:
rpm -qa |grep jdk
将jdk1.8和hadoop安装包传到hadoop当前用户的home目录。
安装jdk
让hadoop用户具有root临时权限。按照上面的方法,这里就不介绍了。
解压hadoop安装包
tar -xzvf 压缩文件的相对路径
解压后安装包里的比较重要文件中的作用
下面是解压后文件目录的作用:
sbin:hadoop的启动或者停止相关服务的脚本,比如start-dfs.sh start.all.sh(已过时),stop-dfs.sh stop-all.sh(deprecated) start-yarn.sh 等
bin :对hadoop相关服务(HDFS YARN)进行的脚本操作
etc :hadoop的配置文件
share:hadoop 依赖的jar包和文档,文档可进行删除
lib:hadoop的本地仓库(对文件进行压缩解压缩)修改配置文件
4)、配置环境变量:在用户根目录下 vi .bashrc
Java Environment Varieble
export JAVA_HOME=/usr/java/jdk1.8.0_121 jdk安装目录
Hadoop Environment Varieble
export HADOOP_HOME=/home/hadoop/hadoop-2.7.3 这是hadoop的解压后的路径
export HADOOP_INSTALL=
export HADOOP_COMMON_HOME=
export YARN_HOME=
Path
export PATH=
5)、加载文件:source .bashrc
6)、验证环境变量是否安装成功:echo
二、克隆多个虚拟机每个虚拟机的名字及IP地址如下,名字和ip按照下面分配,具体的ip根据实际情况来说。
主机名 IP地址
Master 192.168.133.100
Slaver1 192.168.133.101
Slaver2 192.168.133.102
Slaver3 192.168.133.103
保证各个节点的网络畅通:配置主机名和IP地址的映射关系
虚拟机内:vi /etc/hosts 将本机的名字写到127.0.0.1的后面,将静态IP和各个节点的机子的名字一一对应各起一行
外部计算机:找到C:\Windows\System32\drivers\etc下面的hosts文件,在里面加上静态IP和各个节点的机子的名字一一对应各起一行,前面不加“#”
分别在外部计算机和各个虚拟机里面命令行窗口分别ping 主机名和ip地址看是否畅通,必须畅通,不行再分别查看ip和主机名是否正确。
并且修改根目录下的/etc/hostname 使其每个虚拟机的主机按照上面来写。
将ip和主机名都写到/etc/hosts里面
以及/etc/sysconfig/network-scripts/ifcfg-ens33里面的ip地址
三、SSH配置,使其个主节点可以无条件访问子节点
一般情况下,主节点可以无密码访问从节点,则要把主节点产生的公共密匙放到从节点里面;如果要是相互访问则密匙要分别写入各个节点。
分别在各个节点的hadoop用户下
1)、各个节点产生.ssh文件:ssh localhost ll -a 查看是否产生文件,注意:一定要在hadoop用户下
2)、主节点生成密匙文件:进入.ssh文件夹下,ssh-keygen -t rsa 会产生id_rsa(私匙) id_rsa.pul (公匙)等文件
3)、将id_rsa.pul内容复制到authorized_keys文件里面:
cat id_rsa.pub>> authorized_keys
4)、将authorized_keys的权限设置成600 :chmod 600 authorized_keys
5)、验证是否能够无需密码登陆成功:ssh localhost
6)、将主节点authorized_keys远程复制到从节点的.ssh文件夹下,方法同1) (注意:从节点一定要按照上述方法生成.ssh文件夹。) :
scp authorized_keys hadoop@从节点主机名 : ~/.ssh
注意:这里一定要保证网络的畅通,即可以用主机和ip相互ping通
7)、验证主节点是否可以无密码访问从节点:ssh 从节点主机名
扩展:
直接在你要无密码登录到别的机子上的主机上运行:
ssh-copy-id 主机名
这一种方法也OK
四、修改配置文件
可以直接在虚拟机里面改,也可以移出来改完之后再放回去
子节点和从节点的配置文件都要修改。
Master绝对路径: /home/hadoop/hadoop2.7./etc/hadoop/
修改文件hadoop-env.sh
这里面有时候找不到JAVA_HOME所以最好还是固定JAVA_HOME的路径,即jdk的文件目录
文件core-site.xml修改成:
<configuration> <property> <!--这是hdfs的namenode默认的地址--> <name>fs.defaultFS</name> <!--这里主节点的主机名一定要正确,hdfs://协议,ip地址 在:端口好--> <value>hdfs://Master:9000</value> </property> <!--这是hadoop运行时产生数据的存储目录,不是临时目录--> <property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/hadoop-2.7.3/tmp</value><!--hadoop的路径一定要正确--> </property></configuration>
文件hdfs.xml修改成:
<property> <name>dfs.namenode.secondary.http-address</name> <value>Master:50090</value><!--这里主节点的主机名一定要正确--> </property> <property> <!--指定hdfs存储的副本的默认数量,本机不产生副本--> <name>dfs.replication</name><!--这是默认从节点主机的个数——> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <!--这是默认namenode的文件夹的存储目录——> <value>file:/home/hadoop/hadoop-2.7.3/tmp/dfs/name</value><!--hadoop的路径一定要正确--> </property> <property> <name>dfs.datanode.data.dir</name><!--这是datanode下的数据的存储目录--> <value>file:/home/hadoop/hadoop-2.7.3/tmp/dfs/data</value><!--hadoop的路径一定要正确--> </property>
文件mapred.xml修改成
这里在原文件夹下它的名字是mapred.xml.template,要把.template去掉,即mv mapred.xml.template mapred.xml
<configuration> <property> <!--指定mapreduce编程模型运行在yarn上--> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name><!--mapreduce的本地工作记录的地址--> <value>Master:10020</value><!--这里主节点的主机名一定要正确--> </property> <property> <name>mapreduce.jobhistory.webapp.address</name><!--mapreduce的网页工作记录的地址--> <value>Master:19888</value><!--这里主节点的主机名一定要正确--> </property></configuration>
文件yarn.xml设置成:
<configuration><!-- Site specific YARN configuration properties --> <property> <!--指定yarn的老大ResourceManager的地址--> <name>yarn.resourcemanager.hostname</name> <value>Master</value><!--这里主节点的主机名一定要正确--> </property> <property> <!--mapreduce执行shuffle时获取数据的方式--> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value><!--mapreduce里面每次要清洗--> </property></configuration>
slaves :这里面是Slaver的主机名,即所有的从节点的主机名字
五、关闭防火墙在(至少关闭从节点的):
查看防火墙的状态:systemctl status firewalld 如果前面原点不亮就是关闭了 或者 service iptable status
查看执行状态:getenforce 是否是permission
关闭防火墙;systemctl stop firewalld 开启防火墙 systemctl start firewalld 或者service iptable stop
设置状态为自由的: sudo setenforce 0
0是指permission
1是指enforcing
六、格式化namenode(HDFS)
第一次启动前必须格式化,即删除所有节点 hdfs namenode -format
注意:
从分布式切换到伪分布式时,不要忘记修改 slaves 配置文件;
在两者之间切换时,若遇到无法正常启动的情况,可以删除所涉及节点的临时文件夹,这样虽然之前的数据会被删掉,但能保证集群正确启动。所以如果集群以前能启动,但后来启动不了,特别是 DataNode 无法启动,不妨试着删除所有节点(包括 Slave 节点)上的 /usr/local/hadoop/tmp 文件夹,再重新执行一次hdfs namenode -format,再次启动试试。
七、启动hadoop
按照顺序启动
jps查看启动的进程
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
从节点的线程有:
八、外部网络查看日志
查看本机的端口状态:netstat -an
网址:主机名:50070
主机名:8088
九、关闭Hadoop
注意关闭的顺序。
stop-yarn.sh
stop-dfs.sh
mr-jobhistory-daemon.sh stop historyserver
十、错误排查:
在日志文件.log查看最后几行的内容:
tail -n 50 hadoop-hadoop-namenode.log 查看最后50行的内容
CentOS 6:
1) 永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
CentOS 7:
systemctl start firewalld.service#启动firewall
systemctl stop firewalld.service#停止firewall
systemctl disable firewalld.service#禁止firewall开机启动
查询TCP连接情况:
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
查询端口占用情况:
netstat -anp | grep portno(例如:netstat –apn | grep 80)
- hadoop集群搭建(hadoop)
- HADOOP: 搭建hadoop集群
- hadoop集群搭建
- Hadoop集群的搭建
- Hadoop集群搭建
- Hadoop集群搭建
- 搭建hadoop集群
- Nutch+Hadoop集群搭建
- Hadoop集群搭建
- Hadoop集群搭建
- Hadoop环境搭建-集群
- 搭建hadoop集群
- 搭建hadoop集群
- Hadoop集群搭建
- Nutch+Hadoop集群搭建
- 如何搭建hadoop集群
- hadoop分布式集群搭建
- Hadoop集群搭建
- spring的优点
- 自定义类加载器,利用反射加载任意路径下的class文件
- Install DirectX SDK (June 2010) failed with error code S1023
- python 模拟知乎登陆
- 【易初电商】人才孵化基地
- Hadoop集群搭建
- 指定位置输出字符串
- 【转载】Jforum环境安装
- 遍历Map的四种方式与sql优化
- 新款安卓架构设计-Architecture Components介绍
- 对象克隆
- GIC-400寄存器 之CPU接口
- Android7.0中文文档(API)-- ShareActionProvider
- Solr单集代码调用案例