Hadoop安装教程_单机及伪分布式
2015-08-10 01:11
405 查看
安装前的准备
准备的硬件与软件
安装概述
安装流程
hadoop安装前的设置
创建hadoop用户
配置网络
配置apache环境
配置java环境
配置ssh无密码登陆
hadoop的安装
放置文件
解压缩
设置J***A环境
单机及伪分布式配置
单机配置
伪分布式配置
配置文件
运行
yarn的运行
配置文件
运行
PATH环境变量
centos7镜像:CentOS-7-x86_64-DVD-1503-01.iso
java的开发环境:jdk-8u51-linux-x64
hadoop安装包:hadoop-2.7.1.tar.gz
软件ssh
软件rsync
软件httpd
配置网络
配置apache环境
配置java环境
配置ssh无密码登陆
安装hadoop
配置新的hadoop用户
查看是否配置成功
为hadoop用户增加管理员权限
退出重新登陆
1. 进入GUI界面网络设置,打开有线连接
2. 进入网络配置文件目录,修改如下内容
修改为
其中,ip地址(一般和路由在一个区段)、网关(一般是路由的地址)、DNS服务器的设置至关重要。
然后,
这里配置apache环境的目的是可以在远端机器访问终端的Web界面。
关闭firewall
安装iptables防火墙
关闭selinux
安装apache
测试apache
在客户端浏览器中打开服务器IP地址,会出现TEST123的页面,说明apache安装成功
注意事项
在后面的设置中,很多情况下会因为iptables防火墙的设置导致端口无法通讯,此处可以使用
检验系统原版本
进一步查看JDK信息:
卸载OpenJDK,执行以下操作:
安装JDK:
验证安装:
最后,配置环境变量,以备不时之需:
a要连接b,a先生成自己的公钥和私钥。然后把公钥派发给b。当a与b建立连接的时候,b会生成一个随机数并且用a的公钥对其进行加密返回a,然后a用私钥对其进行解密再返回b,如果和原来的随机数相等,则连接建立。
安装ssh,rsync
配置无密码登陆
进入/usr/local目录。
目前,hadoop安装完成。
status 0表明格式化成功。
开启NameNode和DataNode的守护进程
浏览NameNode对应的网页
使HDFS文件夹做好准备,需要先创建好用户目录
将输入拷贝到HDFS文件系统
运行一些实例
伪分布式运行 MapReduce 作业的方式跟单机模式相同,区别在于伪分布式读取的是HDFS中的文件(可以将单机步骤中创建的本地 input 文件夹删掉以及运行结果来验证这一点)。
查看结果
关闭NameNode和DataNode的守护进程
接着,开启NodeManager,ResourceManager
可以通过web浏览ResourceManager
运行mapreduce的程序
结束yarn
上面的教程中,我们都是先进入到
同样我们选择在’ ~/.bashrc ‘中进行设置(’vim ~/.bashrc’,与 J***A_HOME 的设置相似),在文件最前面加入如下单独一行:
准备的硬件与软件
安装概述
安装流程
hadoop安装前的设置
创建hadoop用户
配置网络
配置apache环境
配置java环境
配置ssh无密码登陆
hadoop的安装
放置文件
解压缩
设置J***A环境
单机及伪分布式配置
单机配置
伪分布式配置
配置文件
运行
yarn的运行
配置文件
运行
PATH环境变量
安装前的准备
准备的硬件与软件
虚拟机软件:VirtualBoxcentos7镜像:CentOS-7-x86_64-DVD-1503-01.iso
java的开发环境:jdk-8u51-linux-x64
hadoop安装包:hadoop-2.7.1.tar.gz
软件ssh
软件rsync
软件httpd
安装概述
创建hadoop用户配置网络
配置apache环境
配置java环境
配置ssh无密码登陆
安装hadoop
安装流程
hadoop安装前的设置
创建hadoop用户
[code]$ useradd hadoop $ passwd hadoop $ cat /etc/passwd | grep bin/bash $ adduser hadoop sudo $ exit
配置新的hadoop用户
查看是否配置成功
为hadoop用户增加管理员权限
退出重新登陆
配置网络
虚拟机设置为桥接,有两种方法配置网络:1. 进入GUI界面网络设置,打开有线连接
2. 进入网络配置文件目录,修改如下内容
[code]$ cd /etc/sysconfig/network-scripts/ $ vi ifcfg-enp0s3
修改为
[code]HWADDR=00:0C:29:8D:24:73 TYPE=Ethernet BOOTPROTO=static #启用静态IP地址 DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eno16777736 UUID=ae0965e7-22b9-45aa-8ec9-3f0a20a85d11 ONBOOT=yes #开启自动启用网络连接 IPADDR0=192.168.21.128 #设置IP地址 PREFIXO0=24 #设置子网掩码 GATEWAY0=192.168.21.2 #设置网关 DNS1=8.8.8.8 #设置主DNS DNS2=8.8.4.4 #设置备DNS
其中,ip地址(一般和路由在一个区段)、网关(一般是路由的地址)、DNS服务器的设置至关重要。
然后,
[code]$ service network restart #重启网络 $ ping www.baidu.com #测试网络是否正常
配置apache环境
Centos7默认使用firewall作为防火墙,这里改为iptables防火墙。这里配置apache环境的目的是可以在远端机器访问终端的Web界面。
关闭firewall
[code]$ systemctl stop firewalld.service #停止firewall $ systemctl disable firewalld.service #禁止firewall开机启动
安装iptables防火墙
[code]$ yum install iptables-services #安装 $ vi /etc/sysconfig/iptables #编辑防火墙配置文件 # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT :wq! #保存退出 $ systemctl restart iptables.service #最后重启防火墙使配置生效 $ systemctl enable iptables.service #设置防火墙开机启动
关闭selinux
[code]$ vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq! #保存退出 $ setenforce 0 #使配置立即生效
安装apache
[code]$ yum install httpd #根据提示,输入Y安装即可成功安装 $ systemctl start httpd.service #启动apache $ systemctl stop httpd.service #停止apache $ systemctl restart httpd.service #重启apache $ systemctl enable httpd.service #设置apache开机启动
测试apache
在客户端浏览器中打开服务器IP地址,会出现TEST123的页面,说明apache安装成功
注意事项
在后面的设置中,很多情况下会因为iptables防火墙的设置导致端口无法通讯,此处可以使用
[code]$ service iptables status $ service iptables stop
配置java环境
hadoop的安装需要配置Java环境。检验系统原版本
[code]$ java -version
进一步查看JDK信息:
[code]$ rpm -qa | grep java
卸载OpenJDK,执行以下操作:
[code]$ rpm -e --nodeps tzdata-java-2014i-1.el7.noarch $ rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.71-2.5.3.1 $ rpm -e --nodeps java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el7_0.x86
安装JDK:
[code] rpm -ivh jdk-8u25-linux-x64.rpm
验证安装:
[code]$ java $ javac $ java -version
最后,配置环境变量,以备不时之需:
[code]$ vi + /etc/profile J***A_HOME=/usr/java/jdk1.8.0_25 JRE_HOME=/usr/java/jdk1.8.0_25/jre PATH=$PATH:$J***A_HOME/bin:$JRE_HOME/bin CLASSPATH=.:$J***A_HOME/lib/dt.jar:$J***A_HOME/lib/tools.jar:$JRE_HOME/lib $ source /etc/profile $ echo $PATH $ echo $J***A_HOME
配置ssh无密码登陆
首先,简单介绍下ssh的原理:a要连接b,a先生成自己的公钥和私钥。然后把公钥派发给b。当a与b建立连接的时候,b会生成一个随机数并且用a的公钥对其进行加密返回a,然后a用私钥对其进行解密再返回b,如果和原来的随机数相等,则连接建立。
安装ssh,rsync
[code]$ yum install openssh-server $ yum install rsync $ rpm -qa | grep ssh #验证安装成功 $ rpm -qa | grep rsync #验证安装成功
配置无密码登陆
[code]$ cd ~/.ssh/ # 创建存放密匙的目录 $ ssh-keygen -t rsa # 生成公匙 $ cat id_rsa.pub >> authorized_keys # 加入授权 $ chmod 700 ~/.ssh # 设置相应权限,否则无法登陆 $ chmod 600 ~/.ssh/authorized_keys $ ssh localhost #验证
hadoop的安装
放置文件
通过WinScp程序,将下载好的hadoop文件放于/usr/local目录下,该目录一般用于存放用户的应用程序。进入/usr/local目录。
解压缩
[code]$ tar -zxf hadoop-2.7.1.tar.gz $ mv ./hadoop-2.7.1/ ./hadoop $ cd hadoop $ ./bin/hadoop
目前,hadoop安装完成。
设置J***A环境
[code]$ vim etc/hadoop/hadoop-env.sh # set to the root of your Java installation export J***A_HOME=/usr/java/jdk1.8.0_51
单机及伪分布式配置
单机配置
单机模式,hadoop作为一个java进程,通常用于debug。[code] $ mkdir input $ cp etc/hadoop/*.xml input $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[a-z.]+' $ cat output/* 1 dfsadmin
伪分布式配置
配置文件
[code]$ vim etc/hadoop/core-site.xml <configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> $ vim etc/hadoop/hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property> </configuration>
运行
格式化hdfs的文件系统[code]$ bin/hdfs namenode -format
status 0表明格式化成功。
开启NameNode和DataNode的守护进程
[code] $ sbin/start-dfs.sh $ jps #确认开启 20752 SecondaryNameNode 20497 DataNode 20344 NameNode 21432 Jps
浏览NameNode对应的网页
[code]NameNode - http://localhost:50070/
使HDFS文件夹做好准备,需要先创建好用户目录
[code] $ bin/hdfs dfs -mkdir -p /user/hadoop
将输入拷贝到HDFS文件系统
[code] $ bin/hdfs dfs -mkdir input #在用户目录即hadoop目录下创建input文件夹,采用相对地址 $ bin/hdfs dfs -put etc/hadoop/*.xml input $ bin/hdfs dfs -ls input #查看hdfs下面的输入文件夹 $ bin/hdfs dfs -ls / #查看hdfs下面的根目录
运行一些实例
[code]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
伪分布式运行 MapReduce 作业的方式跟单机模式相同,区别在于伪分布式读取的是HDFS中的文件(可以将单机步骤中创建的本地 input 文件夹删掉以及运行结果来验证这一点)。
查看结果
[code] $ bin/hdfs dfs -get output output $ cat output/* #取回本地查看结果 $ rm -r ./output #运行时输出目录不能存在否则报错 $ bin/hdfs dfs -cat output/* #在hdfs上查看结果 $ bin/hdfs dfs -rm -r /user/hadoop/output #运行时输出目录不能存在否则报错
关闭NameNode和DataNode的守护进程
[code]$ sbin/stop-dfs.sh $ jps #确认关闭
yarn的运行
配置文件
[code]$ vim etc/hadoop/yarn-env.sh # some Java parameters export J***A_HOME=/opt/jdk1.8.0_51 $ vim etc/hadoop/mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> $ vim etc/hadoop/yarn-site.xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
运行
首先,进行到伪分布配置,开启NameNode,DataNode,SeconaryNameNode[code]$ sbin/start-dfs.sh
接着,开启NodeManager,ResourceManager
[code]$ sbin/start-yarn.sh $ jps 22753 NameNode 22914 DataNode 24436 NodeManager 24312 ResourceManager 24600 Jps 23178 SecondaryNameNode
可以通过web浏览ResourceManager
[code]ResourceManager - http://localhost:8088/
运行mapreduce的程序
结束yarn
[code]$ sbin/stop-yarn.sh
PATH环境变量
在这里额外讲一下 PATH 这个环境变量(可执行echo $PATH查看,当中包含了多个目录)。例如我们在执行
ls这个命令时,实际执行的是
/bin/ls这个程序,而不是
~/ls这个程序(假如存在)。系统是根据 PATH 这个环境变量中包含的目录位置,逐一进行查找,直至在这些目录位置下找到匹配的程序(若没有匹配的则提示该命令不存在)。
上面的教程中,我们都是先进入到
/usr/local/hadoop目录中,再执行
sbin/hadoop,实际上等同于运行
/usr/local/hadoop/sbin/hadoop。我们可以将 Hadoop 命令的相关目录加入到 PATH 环境变量中,这样就可以直接通过
start-dfs.sh开启 Hadoop,也可以直接通过 hdfs 访问 HDFS 的内容,方便平时的操作。
同样我们选择在’ ~/.bashrc ‘中进行设置(’vim ~/.bashrc’,与 J***A_HOME 的设置相似),在文件最前面加入如下单独一行:
[code]$ export PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin $ source ~/.bashrc $ hdfs dfs -ls input
相关文章推荐
- Chromium多进程架构简要介绍和学习计划
- Nginx 笔记与总结(10)Nginx 与 PHP 整合
- 产品健康度模型(6) 指标结构管理
- Git Shell命令大全
- linux系统忘root密码怎么办
- linux系统启动
- 如何在防火墙或路由器中禁止访问一些公司不相关网站
- CentOS增加swap分区
- Windows/Linux远程桌面
- centos安装单机zookeeper
- bash学习备忘录
- Linux :service network restart :bringing up interface eth0:unknown connection
- linux下启动tomcat,“Cannot find setclasspath.sh”
- maven部署项目到tomcat
- linux用dd测试磁盘速度 读、写、读/写
- OpenCV学习笔记(1)—— 摄像机模型与标定2
- 手游linux服务器时间同步问题
- centos下mysql的安装,
- 网站和短信设备相结合如何办到
- linux install gcc 4.8