上一章我们讲了关于hadoop的一些基本的概念,这一章我们开始着手搭建hadoop的开发环境。
首先你要有linux虚拟机,关于VMware和linux虚拟机的安装这里就不多说了。可以自行百度,很简单。
假定我们已经有了linux虚拟机,接下来我们就开始进行hadoop环境的安装。
1.使用useradd创建一个用户,这里我们取名为hadoop
[root@localhost ~]# useradd hadoop
2.用passwd为hadoop设置密码
[root@localhost ~]# passwd hadoop
Changing password for user hadoop.
New password: //输入密码
BAD PASSWORD: The password is shorter than 8 characters//这句话是提示我的密码过于简单,忽略
Retype new password: //确认密码
passwd: all authentication tokens updated successfully.
3.给hadoop用户赋予使用sudo命令的权限
查看/etc/sudoers的权限信息:
[root@localhost ~]# ll /etc/sudoers
-r--r-----. 1 root root 3907 Nov 4 2016 /etc/sudoers
发现当前root用户对该文件没有写的权限。我们首先要做的就是给root用户增加写该文件的权限:
[root@localhost ~]# chmod u+w /etc/sudoers
然后再次查看root对该文件的权限:
[root@localhost ~]# ll /etc/sudoers
-rw-r-----. 1 root root 3907 Nov 4 2016 /etc/sudoers
此时root拥有了修改该文件的权限。
然后修改该文件:
vim /etc/sudoers
找到下面这这一行:
root ALL=(ALL) ALL//中间的空格是Tab键
在这一行的下面加上一行:
hadoop ALL=(ALL) ALL
然后保存退出。
4.撤销刚才root对/etc/sudoers的权限,防止误修改
[root@localhost ~]# chmod u-w /etc/sudoers
[root@localhost ~]# ll /etc/sudoers
-r--r-----. 1 root root 3927 Oct 28 18:07 /etc/sudoers
5.修改主机名
为了方便以后做测试,我们将主机名修改为hadoop.
[root@localhost ~]# vim /etc/hostname
然后将里面的内容修改为hadoop。
修改etc/hosts文件,在里面添加
主机名 hadoop
然后重启linux生效。
[root@localhost ~]# reboot
重启linux后,我们发现hostname已经变成了hadoop。
6.设置本地ssh免密登陆
[root@hadoop ~]# ssh-keygen -t rsa
一直敲回车,直到结束。
这个时候,在~/.ssh文件夹下会生成两个文件:
-rw-------. 1 root root 1679 Oct 28 18:15 id_rsa
-rw-r--r--. 1 root root 393 Oct 28 18:15 id_rsa.pub
我们需要在这个文件夹下面创建authorized_keys文件,并且将id_rsa.pub的内容添加到authorized_keys中去,命令如下:
[root@hadoop .ssh]# cat id_rsa.pub >>authorized_keys
然后需要更改authorized_keys文件的权限为600(这一步必须,否则ssh免密登陆将会不成功),命令如下:
[root@hadoop .ssh]# chmod 600 authorized_keys
7.安装JDK
hadoop需要JDK的运行环境。
首先从官网上下载JDK安装包,链接地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
现在完成后放到linux的文件夹中,这里我是在/home/hadoop下新建了一个softs的文件夹。
然后执行解压缩命令:
[root@hadoop softs]# tar -zxvf jdk-8u151-linux-x64.tar.gz
如果解压提示permission deny等问题,可以再命令前面加上sudo。
解压完成后,创建jdk目录的软连接(方便以后使用):
[root@hadoop softs]# sudo ln -s /home/hadoop/softs/jdk1.8.0_151 /usr/local/jdk
然后设置java的环境变量:
[root@hadoop softs]# vim ~/.bash_profile
在该文件中加入下面三行:
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
然后使用命令使配置生效。
[root@hadoop softs]# source ~/.bash_profile
检测java环境:
[root@hadoop softs]# java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
可以看到java版本信息,说明jdk环境已经安装成功。
8.安装hadoop环境
下载hadoop的安装包并复制到softs文件夹中。hadoop链接地址:http://archive.cloudera.com/cdh5/cdh/5/
解压该安装包。
[root@hadoop softs]# tar -zxvf hadoop-2.5.0-cdh5.3.6.tar.gz
解压完成后,在/home/hadoop/下创建bigdata文件夹。
创建hadoop文件夹的软连接:
[root@hadoop softs]# sudo ln -s /home/hadoop/softs/hadoop-2.5.0-cdh5.3.6 /home/hadoop/bigdata/hadoop5.3.6
在/home/hadoop/bigdata/hadoop5.3.6文件夹下面创建hdfs文件夹。
进入/home/hadoop/bigdata/hadoop5.3.6/etc/hadoop 文件夹下面
配置/home/hadoop/bigdata/hadoop5.3.6/etc/hadoop/hadoop-env.sh环境文件。
export JAVA_HOME=/usr/local/jdk
export HADOOP_PID_DIR=/home/hadoop/bigdata/hadoop5.3.6/hdfs/tmp
配置mapred-env.sh
export HADOOP_MAPRED_PID_DIR=/home/hadoop/bigdata/hadoop5.3.6/hdfs/tmp
配置基本环境变量core-site.xml文件
<property>
<name>fs.defaultFS</name>
<value>hdfs://hh:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/bigdata/hadoop5.3.6/hdfs/tmp</value>
</property>
配置hdfs相关变量hdfs-site.xml文件
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/bigdata/hadoop5.3.6/hdfs/name</value>
</property>
<property>
<name>dfs.namenode.data.dir</name>
<value>/home/hadoop/bigdata/hadoop5.3.6/hdfs/data</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
配置mapre相关环境变量mapred-site.xml文件
执行命令:
cp mapred-site.xml.templete mapred-site.xml
配置mapred-site.xml文件
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
配置yarn相关环境变量
yarn-site.xml文件
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
yarn-env.sh文件
export YARN_PID_DIR=/home/hadoop/bigdata/hadoop5.3.6/hdfs/tmp
配置datanode相关变量slaves文件
将salves文件中的内容改为主机名
配置hadoop相关环境变量
export HADOOP_HOME=/home/hadoop/bigdata/hadoo5.3.6/
export HADOOP_PREFIX=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_PREFIX
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
export HADOOP_HDFS_HOME=$HADOOP_PREFIX
export HADOOP_MAPRED_HOME=$HADOOP_PREFIX
export HADOOP_YARN_HOME=$HADOOP_PREFIX
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
最后执行命令使配置生效:
source ~/.bash_profile
9.启动hadoop
第一次启动hadoop需要执行一个命令:hadoop namenode - format
然后执行命令:start-all.sh
10.验证是否启动成功
输入命令jps,如果你能看到下面几个进程在运行,那么恭喜你,你的hadoop环境已经成功运行。
[root@hadoop ~]# jps
5472 DataNode
6083 NodeManager
6469 Jps
5798 ResourceManager
5640 SecondaryNameNode