1、安装Ubuntu 14.04 Desktop LTS
- 下载ISO文件,ubuntu-14.04.1-desktop-amd64.iso。
- 在VirtualBox或者VMware中新建虚拟机,将ISO文件设置为启动光盘。
- Windows 7下用VMware Workstation 10虚拟机安装 Ubuntu 14.04 http://www.linuxidc.com/Linux/2014-04/100473.htm
- 一路下一步,在需要输入用户的地方,输入用户名linuxidc,直到系统安装完成。
- 重启虚拟机,使用linuxidc登录系统。设置root的密码,输入sudo passwd命令:
- linuxidc@hduser-VirtualBox:~$ sudo passwd
- [sudo] password for linuxidc: (输入自己的密码)
- 输入新的 UNIX 密码: (设置root密码)
- 重新输入新的 UNIX 密码:(再次设置root密码)
- passwd:已成功更新密码
- 为了便于后面操作,在ubuntu内安装增强功能(virtualbox增强功能或者vmtools)
- 添加用户到sudo组:
- 命令:sudo adduser linuxidc sudo。如果用户已经在此组内会提示。
- 添加组Hadoop,并将linuxidc添加至组hadoop(groups命令可以查看用户所在的组):
- su
- addgroup hadoop
- usermod -a -G hadoop linuxidc
2、配置ssh免密码登录
- 安装ssh server:sudo apt-get install openssh-server
-
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhostssh-keygen -t rsa # 会有提示,都按回车就可以cat id_rsa.pub >> authorized_keys # 加入授权
- 使用ssh localhost试试能否直接登录
3、配置JDK
- 到Oracle官网下载JDK1.7,http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html。下载jdk-7u79-linux-x64.tar.gz。
- 由于准备将JDK安装至/usr/lib/jvm下,所以先到/usr/lib/目录下建立jvm文件夹
- cd /usr/lib/
- sudo mkdir jvm
- 解压下载的安装包至jvm文件夹(jdk1.7.0_79)
- sudo tar zxvf /home/linuxidc/桌面/jdk-7u79-linux-x64.tar.gz -C /usr/lib/jvm
- 设置JAVA_HOME:
- nano ~/.bashrc
- 在第一行前面增加:export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79,保存退出。
- 使设置立即生效:source ~/.bashrc
- 测试JAVA_HOME是否设置成功,输出了上面设置的路径表示成功:
- echo $JAVA_HOME
4、安装Hadoop2.7.1
- 下载文件,http://hadoop.apache.org/releases.html,选择2.7.1的binary格式下载。文件名为:hadoop-2.7.1.tar.gz。
- 我们选择将 Hadoop 安装至/usr/local/
- sudo tar -zxvf /home/linuxidc/桌面/hadoop-2.7.1.tar.gz -C /usr/local
-
cd /usr/local/sudo mv ./hadoop-2.7.1/ ./hadoop # 将文件夹名改为hadoopsudo chown -R linuxidc ./hadoop # 修改文件权限测试安装是否成功,如果出现命令帮助表示成功:/usr/local/hadoop/bin/hadoop
- 配置环境变量
- nano ~/.bashrc
- 打开界面后,在之前配置的JAVA_HOME后面输入:
export HADOOP_INSTALL=/usr/local/hadoopexport PATH=$PATH:$HADOOP_INSTALL/binexport PATH=$PATH:$HADOOP_INSTALL/sbinexport HADOOP_MAPRED_HOME=$HADOOP_INSTALLexport HADOOP_COMMON_HOME=$HADOOP_INSTALLexport HADOOP_HDFS_HOME=$HADOOP_INSTALLexport YARN_HOME=$HADOOP_INSTALL
- 备注:配置export HADOOP_HOME=/usr/local/hadoop
- 开启Hadoop2.6.0出现ssh无法解析主机名等错误提示的解决办法!(http://shisiyou.blog.51cto.com/9864147/1608060)
-
在~/.bash_profile或者/etc/profile中加入以下语句就没问题了。
#vi /etc/profile或者vi ~/.bash_profile
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"然后用source重新编译使之生效即可!
#source /etc/profile或者source ~/.bash_profile - 使设置立即生效:source ~/.bashrc
- 检查是否安装成功,执行命令,如果出现命令帮助表示成功:hdfs
5、配置伪分布式
- 切换至配置文件目录: cd /usr/local/hadoop/etc/hadoop
- 配置 core-site.xml,执行命令:nano core-site.xml。将文件中的<configuration></configuration>替换为:
-
<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>
- 配置 hdfs-site.xml,执行命令:nano 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>
关于Hadoop配置项的一点说明:
虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。
- 配置yarn-site.xml,执行命令:nano yarn-site.xml,修改为:
-
<configuration><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>
- 配置mapred-site.xml
- 从模板文件复制一个xml,执行命令:mv mapred-site.xml.template mapred-site.xml
- 执行命令:nano mapred-site.xml
- 将文件修改为
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>
- 配置完成后,执行格式化:hdfs namenode -format。倒数第五行出现Exitting with status 0 表示成功,若为 Exitting with status 1 则是出错。
-
启动hadoop所有的进程:start-all.sh
- 查看各个进程是否正常启动,执行:jps。如果一切正常,将看到下列结果:
2583 DataNode2970 ResourceManager3461 Jps3177 NodeManager2361 NameNode2840 SecondaryNam
- 【注意】若执行jps后提示:
程序 'jps' 已包含在下列软件包中:* default-jdk* ecj* gcj-4.6-jdk* openjdk-6-jdk* gcj-4.5-jdk* openjdk-7-jdk请尝试:sudo apt-get install <选定的软件包>
那么请执行下面命令,手动设置系统默认JDK:
sudo update-alternatives --install /usr/bin/jps jps /usr/lib/jvm/jdk1.7.0_79/bin/jps 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_79/bin/javac 300
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_79/bin/java 300