hadoop单机搭建
1、源码包准备:
首先到官网下载jdk1.8到主目录
或在一下地址下载
2、解压源码包
通过终端在/usr目录下新建java文件夹,命令行:
[root@dajiangtai ~]#mkdir /usr/java
进入jdk源码包所在目录,然后将下载到压缩包拷贝到java文件夹中,命令行:
[root@dajiangtai ~]# cp jdk-8u51-linux-x64.tar.gz /usr/java
然后进入java目录,命令行:
[root@dajiangtai ~]# cd /usr/java
解压压缩包,命令行:
[root@dajiangtai java]# tar zxvf jdk-8u51-linux-x64.tar.gz
然后可以把压缩包删除,命令行:
[root@dajiangtai java]# rm jdk-8u51-linux-x64.tar.gz
3、设置jdk环境变量
首先使用root用户切换到/etc/profile.d/目录下
[root@dajiangtai ~]# cd /etc/profile.d/
然后使用命令[root@dajiangtai profile.d]# vi java.sh,添加如下类容:
JAVA_HOME=/usr/java/jdk1.8.0_51
CLASSPATH=$JAVA_HOME/lib:$CLASSPATH
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
接着修改java.sh文件权限
[root@dajiangtai profile.d]# chmod 755 java.sh
4、运行测试
在控制台输入javac命令测试 ,如果安装完成,显示java命令列表;否则失败,重新再试。
[root@dajiangtai ~]# javac
Usage: javac
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath Specify where to find user class files and annotation processors
-cp Specify where to find user class files and annotati
1、配置hosts,假设你linux的地址是192.168.1.123,且在windows中能够正常访问.用root用户修改/etc/hosts文件,添加如下解析
192.168.1.123 dajiangtai
因Hadoop使用端口比较多,建议关闭防火墙避免出现不必要的问题,生产环境中可以对相应端口做安全控制
[root@dajiangtai ~]# service iptables stop
[root@dajiangtai ~]# chkconfig iptables off
2、准备Hadoop专用用户和组
[root@dajiangtai ~]# groupadd hadoop //创建用户组
[root@dajiangtai ~]# useradd -g hadoop hadoop //新建hadoop用户并增加到hadoop工作组
[root@dajiangtai ~]# passwd hadoop //设置密码
//为hadoop设置密码:dajiangtai
3、下载并解压Hadoop2.2.0,小讲是把文件放到/usr/java/目录下,注意:下载前确认一下你的Linux系统是64位系统还是32位系统,分别下载对应的版本,如果下载错了,后面会有很多问题
32位系统:
[root@dajiangtai ~]$ cd /usr/java/ //root用户下,将 hadoop 下载到/usr/java目录下
[root@dajiangtai java]$ wget http://hadoop.f.dajiangtai.com/hadoop2.2/hadoop-2.2.0.tar.gz //在线下载 hadoop-2.2.0.tar.gz
[root@dajiangtai java]$ tar zxvf hadoop-2.2.0.tar.gz //解压
[root@dajiangtai java]$ chown -R hadoop:hadoop hadoop-2.2.0 //将hadoop-2.2.0操作权限赋给hadoop用户
[root@dajiangtai java]$ rm hadoop-2.2.0.tar.gz //删除hadoop安装包
64位系统:
[root@dajiangtai ~]$ cd /usr/java/
[root@dajiangtai java]$ wget http://hadoop.f.dajiangtai.com/hadoop2.2/hadoop-2.2.0-x64.tar.gz //在线下载 hadoop-2.2.0-x64.tar.gz
[root@dajiangtai java]$ tar zxvf hadoop-2.2.0-x64.tar.gz //解压
[root@dajiangtai java]$ chown -R hadoop:hadoop hadoop-2.2.0-x64 //将hadoop-2.2.0-x64操作权限赋给hadoop用户
[root@dajiangtai java]$ rm hadoop-2.2.0-x64.tar.gz //删除hadoop安装包
4、创建Hadoop数据目录。
[root@dajiangtai hadoop-2.2.0-x64]$ mkdir -p /data/dfs/name
[root@dajiangtai hadoop-2.2.0-x64]$ mkdir -p /data/dfs/data
[root@dajiangtai hadoop-2.2.0-x64]$ mkdir -p /data/tmp
[root@dajiangtai hadoop-2.2.0-x64]$ chown -R hadoop:hadoop /data //将/data文件权限赋给hadoop
5、修改etc/hadoop/core-site.xml配置文件,添加如下信息。
[hadoop@dajiangtai hadoop-2.2.0-x64]$ vi etc/hadoop/core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://dajiangtai:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/data/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
</configuration>
6、修改etc/hadoop/hdfs-site.xml配置文件,添加如下信息。
[hadoop@dajiangtai hadoop-2.2.0-x64]$ vi etc/hadoop/hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/dfs/name</value>
<description>Determineswhere on the local filesystem the DFS name node should store the name table. Ifthis is a comma-delimited list of directories then the name table is replicatedin all of the directories, for redundancy. </description>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/dfs/data</value>
<description>Determineswhere on the local filesystem an DFS data node should store its blocks. If thisis a comma-delimited list of directories, then data will be stored in all nameddirectories, typically on different devices.Directories that do not exist areignored.
</description>
<final>true</final>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
7、修改etc/hadoop/mapred-site.xml配置文件,添加如下信息。
[hadoop@dajiangtai hadoop-2.2.0-x64]$ vi etc/hadoop/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
8、修改etc/hadoop/yarn-site.xml配置文件,添加如下信息。
[hadoop@dajiangtai hadoop-2.2.0-x64]$ vi etc/hadoop/yarn-site.xml
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
9、设置etc/hadoop/slaves,添加如下信息。
[hadoop@dajiangtai hadoop-2.2.0-x64]$ vi etc/hadoop/slaves
dajiangtaiangtai.com
10、设置Hadoop环境变量,使用root账户创建/etc/profile.d/hadoop.sh 文件,并输入如下内容
[root@dajiangtai hadoop-2.2.0-x64]# vi /etc/profile.d/hadoop.sh
32位系统
HADOOP_HOME=/usr/java/hadoop-2.2.0
PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_HOME PATH
64位系统
HADOOP_HOME=/usr/java/hadoop-2.2.0-x64
PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_HOME PATH
SSH无密码验证配置
由于hadoop需要无密码登录作为datanode的节点,而由于部署单节点的时候,当前节点既是namenode又是datanode,所以此时需要生成无密码登录的ssh。方法如下:
[root@dajiangtai ~]# su hadoop //切换到 hadoop用户下
[hadoop@dajiangtai root]$ cd //直接输入cd会自动切换到/home/hadoop根目录下
[hadoop@dajiangtai ~]$ mkdir .ssh //创建‘.ssh’目录
[hadoop@dajiangtai ~]$ ssh-keygen -t rsa //输入此命令后,一直按 Enter 键
[hadoop@dajiangtai ~]$ cd .ssh //切换到 .ssh 目录下
[hadoop@dajiangtai .ssh]$ cp id_rsa.pub authorized_keys //把生成的 id_rsa.pub 复制一份,命名为authorized_keys
[hadoop@dajiangtai .ssh]$ cd .. //后退到根目录下
[hadoop@dajiangtai ~]$ chmod 700 .ssh //.ssh 文件夹权限必须是 700
[hadoop@dajiangtai ~]$ chmod 600 .ssh/* //“.ssh” 里面的文件
[hadoop@dajiangtai ~]$ ssh dajiangtaiangtai.com //第一次登陆需要密码,第二次以后登录就不需要密码,此时表明设置成功
测试运行
1、格式化文件系统,并启动Hadoop
[hadoop@dajiangtai hadoop-2.2.0-x64]$ bin/hadoop namenode -format
[hadoop@dajiangtai hadoop-2.2.0-x64]$ sbin/start-all.sh
2、检查一个各个守护进程是否已经启动,在linux命令行中执行jps命令,如果成功会看到以下几个进程
[hadoop@dajiangtai hadoop-2.2.0-x64]$ jps
2336 Jps
1819 SecondaryNameNode
1561 NameNode
2052 NodeManager
1951 ResourceManager
1653 DataNode