Hadoop HA集群搭建请戳这
今天终于把老师布置的项目做完了,闲来无事在机房的电脑上装了Ubuntu(用EasyBCD步骤非常简单,请自行百度),上学期在虚拟机上装了Hadoop
无奈自己笔记本硬盘容量太小,完全分布模式放不下被我删了,可还是不敢在里面下软件!!!现在终于可以不在虚拟机用了!下面我就一边搭建一边写怎么搭建Hadoop伪分布模式。
1.下载jdk并安装
去官网下就可以了,下完之后把文件移到/opt/Java下
guo@guo:~/下载$ mv ./hadoop-2.7.2-src.tar.gz /opt/Hadoop/ mv: 无法创建普通文件"/opt/Hadoop/hadoop-2.7.2.tar.gz": 权限不够 guo@guo:~/下载$ su root #你用sudo也可以,我是直接换到root用户了,写顺手了 密码: root@guo:/home/guo/下载# mv ./hadoop-2.7.2.tar.gz /opt/Hadoop/ root@guo:/home/guo/下载# mv ./jdk-8u73-linux-x64.tar.gz /opt/Java/解压
root@guo:/opt# cd Java/ root@guo:/opt/Java# ll 总用量 177072 drwxr-xr-x 2 root root 4096 3月 14 15:54 ./ drwxr-xr-x 4 root root 4096 3月 14 15:51 ../ -rw-rw-r-- 1 guo guo 181310701 3月 14 15:47 jdk-8u73-linux-x64.tar.gz root@guo:/opt/Java# tar -zxvf jdk-8u73-linux-x64.tar.gz
修改文件所有者(用户:用户组)
root@guo:/home/guo# chown -R guo:guo /opt/Java/jdk1.8.0_73/ root@guo:/home/guo# cd /opt/Java/ root@guo:/opt/Java# ll 总用量 177076 drwxr-xr-x 3 root root 4096 3月 14 15:59 ./ drwxr-xr-x 4 root root 4096 3月 14 15:51 ../ drwxr-xr-x 8 guo guo 4096 1月 30 09:53 jdk1.8.0_73/ -rw-rw-r-- 1 guo guo 181310701 3月 14 15:47 jdk-8u73-linux-x64.tar.gz
设置java环境变量
sudo gedit /etc/profile在文件最后加上
#java export JAVA_HOME=/opt/Java/jdk1.8.0_73 export JRE_HOME=/opt/Java/jdk1.8.0_73/jre export CLASSPATH=$JAVA_HOME/lib export PATH=:$PATH:$JAVA_HOME/bin:$JRE_HOME/bin之后更新配置文件
source /etc/profile然后查看java是否配置成功
guo@guo:~$ java -version java version "1.8.0_73" Java(TM) SE Runtime Environment (build 1.8.0_73-b02) Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)恭喜你第一步已经完成了!
2.Hadoop单机模式配置
去官网下最新的Hadoop(http://apache.opencas.org/hadoop/common/stable/),目前最新的是2.7.2,下载完之后把它放到/opt/Hadoop下
guo@guo:~/下载$ mv ./hadoop-2.7.2.tar.gz /opt/Hadoop/ mv: 无法创建普通文件"/opt/Hadoop/hadoop-2.7.2.tar.gz": 权限不够 guo@guo:~/下载$ su root 密码: root@guo:/home/guo/下载# mv ./hadoop-2.7.2.tar.gz /opt/Hadoop/解压
guo@guo:/opt/Hadoop$ sudo tar -zxf hadoop-2.7.2.tar.gz [sudo] guo 的密码:解压jdk的时候我用的是tar -zxvf,其中的v呢就是看一下解压的过程,不想看你可以不写。
修改文件所有者(用户:用户组)
root@guo:/opt/Hadoop# chown -R guo:guo /opt/Hadoop/hadoop-2.7.2 root@guo:/opt/Hadoop# ll 总用量 224960 drwxr-xr-x 4 root root 4096 3月 14 18:14 ./ drwxr-xr-x 4 root root 4096 3月 14 15:51 ../ drwxr-xr-x 11 guo guo 4096 3月 14 21:16 hadoop-2.7.2/
设置环境变量
guo@guo:/opt/Hadoop$ sudo gedit /etc/profile在最后加上(这样设置在执行bin/sbin目录下的命令时就不用进入该目录用了)
#hadoop export HADOOP_HOME=/opt/Hadoop/hadoop-2.7.2 export PATH=$PATH:$HADOOP_HOME/sbin export PATH=$PATH:$HADOOP_HOME/bin然后更新配置
guo@guo:/opt/Hadoop$ source /etc/profile
修改/opt/Hadoop/hadoop-2.7.2/etc/hadoop下的hadoop-env.sh
guo@guo:/opt/Hadoop$ cd hadoop-2.7.2 guo@guo:/opt/Hadoop/hadoop-2.7.2$ cd etc/hadoop/ guo@guo:/opt/Hadoop/hadoop-2.7.2/etc/hadoop$ sudo gedit ./hadoop-env.sh进入文件后
export JAVA_HOME=${JAVA_HOME}#将这个改成JDK路径,如下 export JAVA_HOME=/opt/Java/jdk1.8.0_73然后更新文件配置
guo@guo:/opt/Hadoop/hadoop-2.7.2/etc/hadoop$ source ./hadoop-env.sh恭喜你单机模式已经配置好了!这时你就可以运行一下wordcount试试了。
3.Hadoop伪分布模式配置
修改core-site.xml
guo@guo:/opt/Hadoop/hadoop-2.7.2/etc/hadoop$ sudo gedit ./core-site.xml [sudo] guo 的密码:
进入文件后加入以下内容
<configuration>#这是原有的,下面是加的 <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/Hadoop/hadoop-2.7.2/tmp</value> </property> </configuration>修改hdfs-site.xml
<configuration>#这是原有的,下面是加的 <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
拷贝mapred-site.xml.template一份,修改为mapred-site.xml
sudo cp mapred-site.xml.template mapred-site.xml
并在里面加入
<property> <name>mapreduce.framework.name </name> <value>yarn</value> </property>
修改yarn-site.xml
<property> <name>yarn.nodemanager.aux-services </name> <value>mapreduce_shuffle</value> </property>格式化hdfs
guo@guo:/opt/Hadoop/hadoop-2.7.2# hdfs namenode -format
启动hdfs
guo@guo:/opt/Hadoop/hadoop-2.7.2# start-dfs.sh
启动yarn
guo@guo:/opt/Hadoop/hadoop-2.7.2# start-yarn.sh
查看是否成功启动
guo@guo:/opt/Hadoop/hadoop-2.7.2# jps 10144 NodeManager 9668 SecondaryNameNode 9833 ResourceManager 9469 DataNode 10285 Jps 9311 NameNode如果出现NodeManager DataNode Jps SecondaryNameNode ResourceManage NameNode则表示启动成功(缺一不可)
如果出现下面的情况
guo@guo:/opt/Hadoop/hadoop-2.7.2$ jps 程序 'jps' 已包含在下列软件包中: * openjdk-7-jdk (您必须启用main 组件) * openjdk-6-jdk (您必须启用universe 组件) * openjdk-8-jdk (您必须启用universe 组件) 请尝试:sudo apt-get install <选定的软件包>
则执行
root@guo:/etc# update-alternatives --install /usr/bin/jps jps /opt/Java/jdk1.8.0_73/bin/jps 1 update-alternatives: 使用 /opt/Java/jdk1.8.0_73/bin/jps 来在自动模式中提供 /usr/bin/jps (jps)
浏览器测试:
http://localhost:8088
测试hdfs端口是否正常
http://localhost:50070
恭喜你伪分布模式已经配置好了!
4.配置SSH无密码登录
从一台Linux主机登录到另一台Linux主机上(或发送一条指令到另外的机器上执行),如果集群达到几千台,你挨个输密码肯定不行,所以要配置SSH无密码登录。
安装ssh
guo@guo:~$ su root 密码: root@guo:/home/guo# apt-get install openssh-server创建ssh-key(用rsa这种加密算法)
root@guo:/home/guo# ssh-keygen -t rsa多次回车即可,然后进入~/.ssh目录(“.”表示这是一个隐藏文件)
root@guo:/home/guo# cd ~/.ssh root@guo:~/.ssh# ll 总用量 16 drwx------ 2 root root 4096 3月 14 16:20 ./ drwx------ 4 root root 4096 3月 14 16:20 ../ -rw------- 1 root root 1679 3月 14 16:20 id_rsa -rw-r--r-- 1 root root 390 3月 14 16:20 id_rsa.pub复制一份,改名为公钥
root@guo:~/.ssh# cp id_rsa.pub authorized_keys root@guo:~/.ssh# ll 总用量 20 drwx------ 2 root root 4096 3月 14 16:22 ./ drwx------ 4 root root 4096 3月 14 16:20 ../ -rw-r--r-- 1 root root 390 3月 14 16:22 authorized_keys -rw------- 1 root root 1679 3月 14 16:20 id_rsa -rw-r--r-- 1 root root 390 3月 14 16:20 id_rsa.pub
修改公钥权限
guo@guo:~/.ssh$ chmod 600 authorized_keys guo@guo:~/.ssh$ ll 总用量 56 drwx------ 2 guo guo 4096 3月 15 18:41 ./ drwx------ 20 guo guo 4096 3月 15 17:56 ../ -rw------- 1 guo guo 389 3月 15 18:41 authorized_keys -rw------- 1 guo guo 1679 3月 15 18:41 id_rsa -rw-r--r-- 1 guo guo 389 3月 15 18:41 id_rsa.pub -rw-r--r-- 1 guo guo 444 3月 15 18:37 known_hosts
然后测试是否成功
guo@guo:~/.ssh$ ssh guo Welcome to Ubuntu 15.10 (GNU/Linux 4.2.0-16-generic x86_64) * Documentation: https://help.ubuntu.com/ 0 packages can be updated. 0 updates are security updates. Last login: Tue Mar 15 18:39:56 2016 from 127.0.0.1 guo@guo:~$ exit 注销 Connection to guo closed. guo@guo:~/.ssh$
下一篇博客我会专门写一下如何运行wordcount小例子