1. 软件
zookeeper-3.4.5.tar.gz
hadoop-1.2.1.tar.gz
jdk-7u79-linux-x64.tar.gz
Centos5.6
2. 创建用户hdfsuser
[root@data1 ~]# useradd -r -m hdfsuser
[root@data1 ~]# pwsswd hdfsuser
3. 上传文件
zookeeper和hadoop文件到用户hdfsuser的存储数据目录上
即在
[hdfsuser@data1 ~]$ ls
查看上传的所有文件,然后开始安装.
注意:除了JDK安装用root以外。其余安装部分使用root权限
4. JDK安装
4.1 切换root用户
[hdfsuser@data1 ~]$ su root
4.2 解压
在/usr/目录下创建java目录,然后将jdk-7u79-linux-x64.tar.gz解压到/usr/java/目录下
####创建目录
[root@data1 hdfsuser]# mkdir /usr/java
####解压
[root@data1 hdfsuser]# tar -zxvf jdk-7u79-linux-x64.tar.gz -C /usr/java/
4.3 将解压的文件夹1.7_133改名为jdk1.7
[root@data1 hdfsuser]# cd /usr/java/
[root@data1 java]# mv jdk1.7_133/ jdk1.7
4.4 配置PATH路径
[root@data1 java]# vi /etc/profile
在倒数第二行开始增加以下代码:
export JAVA_HOME=/usr/java/jdk1.7
export PATH=$PATH:$JAVA_HOME/bin
然后保存退出
4.5 重新加载配置
系统配置需要重新加载才能生效
[root@data1 java]# source /etc/profile
4.6 验证
输入java -version
[root@data1 java]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
5 安装Hadoop
5.1 创建目录
创建/data目录存放数据(以root用户执行)并将/tmp的权限给hdfsuser
[root@data1 java]# mkdir /data
5.2 授权
将该文件夹的用户切换为hdfsuser(以root用户执行)
[root@data1 java]# chown -R hdfsuser /data
[root@data1 java]# chgrp -R hdfsuser /data
[root@data1 java]# chown -R hdfsuser /tmp
[root@data1 java]# chgrp -R hdfsuser /tmp
5.3 切换成hdfsuser用户
[root@data1 java]# su hdfsuser
5.4 创建文件夹
在hdfsuser存储数据的目录创建hadoop文件夹,
[hdfsuser@data1 ~]$ mkdir hadoop
5.5 解压
将hadoop-1.2.1.tar.gz解压
[hdfsuser@data1 ~]$ tar -zxvf hadoop-1.2.1.tar.gz -C /hadoop/
5.6 重命名
修改解压后文件夹的名字为hdfs
[hdfsuser@data1 ~]$ mv hadoop/hadoop-1.2.1/ hadoop/hdfs
5.7 配置PATH路径 (以root用户执行)
[hdfsuser@data1 hadoop]$ su root
[root@data1 hadoop]# vi /etc/profile
完整配置加上之前配置的JDK:
export JAVA_HOME=/usr/java/jdk1.7
export HADOOP_HOME=/home/hdfsuser/hadoop/hdfs
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
保存并退出
5.8 重新加载配置
系统配置需要重新加载才能生效
[root@data1 hadoop]# source /etc/profile
5.9 修改配置文件
5.9.1 进入到hdfs目录然后进入的/conf目录下
[hdfsuser@data1 hadoop-1.2.1]$ pwd
/home/hdfsuser/hadoop/hdfs
5.9.2 修改hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7
5.9.3 修改core-site.xml
<configuration>
<property>
<name>fs.defalut.name</name>
<value>hdfs://192.168.6.125:9000</value><!--这个ip为当前机器的ip-->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
</property>
</configuration>
5.9.4 修改hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/data/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.datanode.socket.write.timeout</name>
<value>3000000</value>
</property>
<property>
<name>dfs.socket.timeout</name>
<value>3000000</value>
</property>
</configuration>
5.9.5 修改mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.6.125:9001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/data/hadoop/mapred/local</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/tmp/hadoop/mapred/system</value>
</property>
</configuration>
5.10 设置免登录
5.10.1 生成密钥和公钥
[hdfsuser@data1 ~]$ssh-keygen -t rsa
一直回车即可。
5.10.2 设置本机免登录
[hdfsuser@data1 ~]$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
5.10.3 免登录依然需要输入密码
查看authorized_keys的权限,
[hdfsuser@data1 .ssh]$ ls -al
总计 48
drwx------ 2 hdfsuser hdfsuser 4096 07-18 03:41 .
drwx------ 4 hdfsuser hdfsuser 4096 07-18 03:36 ..
-rw-rw-r-- 1 hdfsuser hdfsuser 1584 07-18 03:48 authorized_keys
-rw------- 1 hdfsuser hdfsuser 1675 07-18 03:40 id_rsa
-rw-r--r-- 1 hdfsuser hdfsuser 396 07-18 03:40 id_rsa.pub
-rw-r--r-- 1 hdfsuser hdfsuser 792 07-18 03:36 known_hosts
[hdfsuser@data1 .ssh]$ chmod 710 authorized_keys
需要将其authorized_keys修改为710权限
指令:
[hdfsuser@data1 .ssh]$ chmod 710 authorized_keys
[hdfsuser@data1 .ssh]$ ssh localhost
Last login: Tue Jul 18 03:48:52 2017 from data1
[hdfsuser@data1 ~]$ ssh data1
Last login: Tue Jul 18 03:54:15 2017 from data1
5.11 初始化namenode
###5.11.1 验证hadoop的安装路径 ###
[hdfsuser@data1 ~]$ echo $HADOOP_HOME
/home/hdfsuser/hadoop/hdfs
5.11.2 格式化HDFS
[hdfsuser@data1 ~]$ cd $HADOOP_HOME
[hdfsuser@data1 hadoop-1.2.1]$ bin/hadoop namenode -format
5.12 启动HDFS
[hdfsuser@data1 hadoop-1.2.1]$ cd bin/
[hdfsuser@data1 bin]$ ./start-all.sh
5.13 关闭防火墙(适用于cenOS5.7,用root账户)
查看防火墙状态:
指令:[hdfsuser@data1 bin]# service iptables status
关闭防火墙:
指令:[hdfsuser@data1 bin]# service iptables stop
关闭开机启动
指令: [hdfsuser@data1 bin]# chkconfig iptables off
5.14 验证是否开启成功
[root@data1 bin]$ jps
12782 DataNode
12901 SecondaryNameNode
15070 Jps
12983 JobTracker
12669 NameNode
13112 TaskTracker
登陆网址:
http://192.168.6.125:50030/ Hadoop管理界面
http://192.168.6.125:50060/ Hadoop Task Tracker状态
http://192.168.6.125:50070/ 这是Hadoop DFS状态
5.15 关闭HDFS
[hdfsuser@data1 bin]$ ./stop-all.sh
5.16 设置web1免登录于data1
5.16.1 配置映射关系(使用root用户)
[root@web1 bin]# vi /etc/hosts
添加IP映射
192.168.6.125 data1
192.168.6.127 web1
5.16.2 web1生成公钥和密钥
[hdfsuser@web1 ~]# ssh-genkey -t rsa
一直回车即可
[hdfsuser@web1 ~]# ssh-copy-id -i hdfsuser@data1
如果某台机器想要免登录于另一台机器,需要将自己的公钥发送给免登录的机器上,authorized_keys
web1要免登录data1,所以需要将自己的公钥发送给data1
6 安装Zookeeper
6.1 将zookeeper-3.4.5.tar.gz解压
[hdfsuser@data1 ~]$ tar -zxvf zookeeper-3.4.5.tar.gz -C /hadoop/
6.2 修改解压后文件夹的名字为zookeeper
[hdfsuser@data1 ~]$ mv hadoop/zookeeper-3.4.5/ zookeeper
6.3 进入conf目录 修改配置文件
[root@data1 conf]# mv zoo_sample.cfg zoo.cfg
[root@data1 conf]# vi zoo.cfg
修改:dataDir=/data/hadoop/zookeeper
新增:dataLogDir=/data/hadoop/zookeeper/logs
6.4 启动zookeeper
[root@data1 bin]# pwd
/home/hdfsuser/hadoop/zookeeper/bin
[hdfsuser@data1 bin]$ ./zkServer.sh start
JMX enabled by default
Using config: /home/hdfsuser/hadoop/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
6.5 查看启动进程
[hdfsuser@data1 bin]$ jps
15164 QuorumPeerMain
15212 Jps
6.6 查看状态
[hdfsuser@data1 bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /home/hdfsuser/hadoop/zookeeper/bin/../conf/zoo.cfg
Mode: standalone
6.7 注意
在进行开启zookeeper的时候,如果jps没有对应的进程,则可能出现问题,查看日志zookeeper.out日志进行排错,可能的错误是/data/hadoop/zookeeper/下没有创建logs文件
默认的日志路径在当前执行脚本目录下。
if [ "x${ZOO_LOG_DIR}" = "x" ]
then
ZOO_LOG_DIR="."
fi
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
ZOO_LOG4J_PROP="INFO,CONSOLE"
fi
需要修改日志存放位置,则编辑$ZOOKEEPER_HOME/bin下的zkEnv.sh文件
ZOO_LOG_DIR制定想要输出到哪个目录,
ZOO_LOG4J_PROP 指定INFO,
ROLLINGFILE的日志为APPENDER
参考:http://blog.csdn.net/huanggang028/article/details/17560731
7 安装Apache Tomcat(此步骤为web1机器)
7.1 安装JDK1.7
步骤如data1安装jdk一致
7.2 上传并安装Tomcat
7.2.1 将Tomcat复制到/opt下
[root@web1 ~]# cp apache-tomcat-7.0.42 /opt/
7.3 解压tomcat
[root@web1 opt]# tar -zxvf apache-tomcat-7.0.42
7.4 重命名
[root@web1 opt]# mv apache-tomcat-7.0.42 tomcat7.0.42-web
7.5 再次解压
[root@web1 opt]# tar -zxvf apache-tomcat-7.0.42
7.6 再次重命名
[root@web1 opt]# mv apache-tomcat-7.0.42 tomcat7.0.42-service
7.7 上传项目xxx到/opt上并解压
[root@web1 opt]# tar -zxvf xxx.tar.gz
7.8 修改配置文件
7.8.1 修改xxx项目里的core-site配置文件(里面的ip修改为对应的data1的ip)
[root@web1 classes]# pwd
/opt/xxx/WEB-INF/classes
[root@web1 classes]# vi core-site.xml
7.8.2 修改xxx项目里的jdbc.properties配置文件(后期修改对应的db1的ip)
`````
7.9 测试Tomcat能否正常开启
[root@web1 bin]# ./startup.sh
Using CATALINA_BASE: /opt/tomcat7.0.42-web
Using CATALINA_HOME: /opt/tomcat7.0.42-web
Using CATALINA_TMPDIR: /opt/tomcat7.0.42-web/temp
Using JRE_HOME: /usr/java/jdk1.7
Using CLASSPATH: /opt/tomcat7.0.42-web/bin/bootstrap.jar:/opt/tomcat7.0.42-web/bin/
Tomcat started.
页面访问:
http://192.168.6.127:8080/ 有问题, 该端口没开 需要修改配置
7.10 修改防火墙配置
[root@web1 bin]# /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
[root@web1 bin]# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
[root@web1 bin]# /etc/rc.d/init.d/iptables save
将当前规则保存到 /etc/sysconfig/iptables: [确定]
需要重启防火墙
[root@web1 bin]# service iptables restart
7.11 修改server.xml
7.11.1 将端口修改为80(配置文件的73行)
<Connector port="80" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000" enableLookups="false"
redirectPort="443" acceptCount="1000" />
7.11.2 修改默认访问项目
在Host里面添加下面该行
<Context path="/" docBase="/opt/xxx" />
7.12 浏览器访问项目
http://192.169.8.66/
7.13 查看端口占用
[root@web1 bin]# /etc/init.d/iptables status