1.集群环境的安装
1.1工具软件版本说明(软件尽量去官网下载):
VMware Workstation : 10.0.7 build-2844087
Ubuntn: ubuntu-gnome-15.04-desktop-i386.iso
JDK:jdk-8u60-linux-x64.tar.gz(可以采用联网下载)
Hadoop:hadoop-2.6.0.tar.gz
SecureCRT:Version 6.2.3 (build 313)
VM和ubuntu可以在网上搜下,自行安装。
1.2 虚拟机的一般配置
1.2.1修改主机名称:运行命令vi /etc/hostname 将原先的主机名称改成master,保存并退出,然后重启虚拟机即可;可以用命令hostname验证一下;
1.2.2 设置静态ip:可参考:http://kevin12.iteye.com/blog/2273491
1.2.3 绑定主机名和IP
运行
hadoop@master:~/Downloads$ sudo gedit /etc/hosts
绑定主机和从机(后面克隆后需要关注一下slaver的ip)
1.2.4创建hadoop用户组
sudo addgroup h
sudo adduser -ingroup hadoop hadoop
回车后会提示输入新的UNIX密码,这是新建用户hadoop的密码,输入回车即可。
如果不输入密码,回车后会重新提示输入密码,即密码不能为空。
最后确认信息是否正确,如果没问题,输入 Y,回车即可。
( 增加hadoop用户组,同时在该组里增加hadoop用户,后续在涉及到hadoop操作时,我们使用该用户。)
为hadoop用户添加权限
输入:sudo gedit /etc/sudoers
回车,打开sudoers文件
给hadoop用户赋予和root用户同样的权限
用新增加的hadoop用户登录Ubuntu系统
1.2.5 关闭防火墙
ubuntu防火墙用的是ufw
查看防火墙状态:sudo ufw status
关闭防火墙:sudo ufw disable
1.2.6 设置免密码登陆
Ubuntu默认安装openssh-client,但是没有安装server,如果运行sshlocalhost会报错误:ssh: connect to host localhost port 22: Connectionrefused
通过命令 sudo apt-get install openssh-server 进行安装。
安装完成后,启动服务
sudo /etc/init.d/sshstart
设置免密码登录,生成私钥和公钥
ssh-keygen -t rsa -P""
此时会在/home/hadoop/.ssh下生成两个文件:id_rsa和id_rsa.pub,前者为私钥,后者为公钥。
下面我们将公钥追加到authorized_keys中,它用户保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容。
cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys #将公钥追加到authorized_keys中,该文件保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容
测试是否可以免密码登录localhost:
ssh localhost 成功login,exit退出!
2.安装jdk
2.1 将jdk-8u60-linux-x64.tar.gz拷贝到虚拟机中,用命令tar -zxvf jdk-8u60-linux-x64.tar.gz 解压,并将解压包移动到/usr/local/jdk下2.安装JDK
或者在线安装:(我是采用在线安装的)
安装Oracle官方的
sudo add-apt-repository ppa:webupd8team/Java(根据实际情况安装不同版本)
sudo apt-get update
sudoapt-get install oracle-java8-installer
管理
sudo update-alternatives --config java
2.2配置Java环境
sudo gedit /etc/profile #编辑/etc/profile文件
在最后添加:
exportJAVA_HOME=/usr/lib/jvm/java-8-oracle
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
exportCLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
2.3 验证命令:java -version,出现下面的代码说明jdk安装成功;
hadoop@master:~/Downloads$ java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) Client VM (build 25.121-b13, mixed mode)
hadoop@master:~/Downloads$
3. 安装hadoop
3.1官网下载hadoop-2.6.0.tar.gz,复制到ubuntu虚拟机/usr/local/中,运行命令tar-zxvf hadoop-2.6.0.tar.gz ./hadoop 命令解压。 (不要下载错误了)
或者直接在Linux下
sudo wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
然后解压到/usr/local/hadoop目录下面
配置相关文件:
配置hadoop的环境变量 ~/.bashrc
exportJAVA_HOME=/usr/lib/jvm/java-8-oracle
export JRE_HOME=${JAVA_HOME}/jre
export CLASS_PATH=.:{JAVA_HOME}/lib:{JRE_HOME}/lib
export HADOOP_HOME=/usr/local/hadoop
exportHADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
exportHADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
exportHADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib"
exportPATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
执行命令source ~/.bashrc,使之生效。
说明:
HADOOP_CONF_DIR配置是为了更好的支持yarn的运行,包括spark运行yarn;
下面两项可选
exportHADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib"
修改hadoop相关配置文件:
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml配置:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
<property>
<name>hadoop.native.lib</name>
<value>true</value>
</property>
</configuration>
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml配置:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:500090</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>flie:///usr/local/hadoop/dfs/namesecondary</value>
</property>
</configuration>
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml配置:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-env.sh配置:
sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh配置:
sudo gedit /usr/local/hadoop/etc/hadoop/slaves配置:
slaver1
slaver2
slaver3
3.2.将master克隆出来三台节点,分别命名为slaver1, slaver2, slaver3
修改slaver1的主机名 sudo gedit /etc/hostname ,其他几个节点都如此修改。
3.3 在master上格式化namenode
hadoop@master:/usr/local/hadoop/bin$hdfs namenode -format
通过start-dfs.sh 启动hadoop的start-dfs.sh andstart-yarn.sh
通过执行stop-all.sh脚本调用stop-dfs.sh andstop-yarn.sh关闭hadoop
也可以单独执行相对应的shell脚本
关闭hdfs用命令./sbin/stop-dfs.sh
关闭yarn用命令./sbin/stop-yarn.sh
查看集群状态用命令./bin/hdfs dfsadmin -report
查看文件块组成: ./bin/hdf sfsck / -files -blocks
3.4用浏览器访问集群
本机PC访问 http://192.168.189.128:50070(master IP:192.168.189.128)
本机PC访问http://192.168.189.128:8088
4.防火墙设置,方便局域网访问
4.1 查看电脑的端口号,先进入命令行,然后执行netstat -a 查看端口号,找到电脑没有使用的端口号 本机选择TCP类型的4012和4013 端口
4.2设置虚拟机网络
编辑-->虚拟机网络编辑-->NAT设置-->添加 增加相关映射关系
http://192.168.189.128:50070-->http://10.1.50.34:4013
http://192.168.189.128:8088-->http://10.1.50.34:4012
4.3 记得关闭掉PC的防火墙
5.SSH 远程
通过SecureCRT工具在PC上面建立与虚拟机的链接,当然你也可以采用其他工具链接。
如下输入你要链接的IP地址 链接的时候需要输入用户名和密码,登录成功后就可以进入终端操作界面了。
备注:
不同的ubuntu版本,不同的jdk版本,不同的Hadoop版本其中的配置有一定的差异,但是整体的配置基本一样。
差异性:
Ubuntn: 有些版本有iptable等设置防火墙,有些版本设置网络的地方不一样
JDK:不同的版本安装后的作用可能有差异,jdk1.8.0对新的lib支持存在问题
Hadoop:有些版本需要配置masters,但是本文中的版本没有这样的配置。