Hadoop集群安装部署
1 前言
本文档是设想在多台服务器上部署HADOOP的实现过程;
2 创建用户
建议同个集群中的用户和用户组,都是相同的,以便管理和维护。
2.1 生成创建用户的运行角本
为不同服务器创建同样的用户和组,创建脚本的目的是让不同服务器可以直接运行此脚本,实现用户创建的过程。
用root用户登录linux,运行命令:
[root@T5038 opt]# vi createuser.sh
[root@T5038 opt]# chmod 777 createuser.sh
文件内容如下:
mkdir /opt;
mkdir /opt/analysis;
export LANG="zh_CN.GB18030";
groupadd analyzer -f;
useradd analyzer -d /opt/analysis -g analyzer -p analyzer@123;
chmod 755 -R /opt/analysis;
chown analyzer:analyzer /opt/analysis;
passwd analyzer<< EOF
analyzer@123
analyzer@123
EOF
2.2 同步创建用户脚本
同步上面的createuser.sh到各服务器:
[root@T5038 opt]# rsync -avz createuser.sh root@10.12.3.93:/opt/ << EOF
mm@sz.com
EOF
或:
[root@T5038 opt]# scp -P 7411 /opt/createuser.sh root@10.12.3.93:/opt/
2.3 运行创建用户脚本
用root登录各服务器,运行脚本:
[root@T5038 opt]# ./ createuser.sh
3 设置/etc/hosts文件
3.1 设置/etc/hosts文件内容:
[root@T5038 opt]# su – root
[root@T5038 opt]# vi /etc/hosts
Hosts的内容参考:
---IP地址--- ---机器名---
10.12.3.88 T5038
10.12.3.89 T5039
10.12.3.90 T5040
3.2 同步/etc/hosts到其它各服务器
[root@T5038 opt]# scp -P 7411 /etc/hosts 10.12.3.103:/etc/hosts
yes
mm@sz.com
4 设置免密码登录
设置集群中各服务器间免密码登录对hadoop的运行没影响,但设置后,可以通过一台服务器启动集群中所有的hadoop节点,而不用频繁登录到各台服务器进行逐台启动。
设置过程:本地运行ssh-keygen -t rsa后,把生成的id_rsa.pub在多台机器间相互拷贝;
4.1 生成生成公钥、密钥
切换到analyzer用户,运行命令:ssh-keygen -t rsa,运行过程中,直接多次按回车键即可;
[root@T5038 opt]# su - search
[analyzer @T5038 opt]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/opt/analysis/hadoop/.ssh/id_rsa):
Created directory '/opt/analysis/hadoop/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /opt/analysis/hadoop/.ssh/id_rsa.
Your public key has been saved in /opt/analysis/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
c1:d4:a5:56:94:ca:d4:27:15:6b:6f:5f:c3:c9:23:e2 hadoop@T5037
4.2 复制id_rsa.pub文件
复制本地id_rsa.pub到远程服务器,使远程服务器登录本地可以免密码登录。
[analyzer@T5038 opt]#cd /opt/ analysis /.ssh
[analyzer@T5038 opt]#scp -P 7411 id_rsa.pub analyzer@remoteIP:/opt /id_rsa_ip1.pub
4.3 生成authorized_keys文件内容
在各服务器,生成authorized_keys文件的内容,它可以是多个不同服务器的id_rsa.pub的内容整合,命令如下:
[analyzer@T5038 opt]#cat id_rsa_ip1.pub id_rsa_ip2.pub >authorized_keys
4.4 设置权限
权限问题(权限过大或过小)都可能导致远程免密码登录失败。
[analyzer@T5038 opt]#chmod 644 authorized_keys
-rw-r--r-- 1 hadoop hadoop 788 06-17 09:59 authorized_keys
4.5 测试免密码登录
如不用输入密码而直接登录远程服务器,则表示设置成功;运行命令如下:
[analyzer@T5038 opt]#ssh -p 7411 10.12.3.88
5 设置环境变量
5.1 设置.bash_profile文件
[analyzer@linux434 ~]$ vi ~/.bash_profile
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
export JAVA_HOME=$HOME/jdk1.6.0_21
export PATH=$JAVA_HOME/bin:$PATH
export Hadoop_HOME=$HOME/hadoop-0.20.3
export HIVE_HOME=$HOME/hive
5.2 生效处理
[analyzer@linux434 ~]$ source ~/.bash_profile
6 jdk 安装
如果还没安装JDK,则先进行安装。
[analyzer@linux434 ~]$ su - root
[analyzer@linux434 ~]$ mkdir /application/search/jdk1.6.0_21/
[analyzer@linux434 ~]$ vi .bash_profile
JAVA_HOME=/application/search/jdk1.6.0_21
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
7 hadoop install
7.1 hadoop配置
1.登录到master节点linux430,首先将hadoop压缩包hadoop-0.20.2.tar.gz分别远程拷贝到所有slave的用户根目录上,"scp hadoop-0.20.2.tar.gz hadoop@linux426:~"。
2.在各个slave解压该文件,"tar xvzf hadoop-0.20.2.tar.gz"。
3.在master上,切换到~/hadoop-0.20.2/conf目录,vi打开hadoop-env.sh,为方便起见,统一修改JAVA_HOME的路径,"export JAVA_HOME=/opt/jdk1.6.0_18"。jdk事先已安装,且每个节点路径一致。这里hadoop-env.sh是每个节点用于配置自身运行环境的脚本,可以自行设置节点特定的内容。
4.编辑masters文件,设置masters节点地址为linux430。编辑slaves文件,同样输入所有slave节点,以回车分隔,分别为:linux425,linux426,linux427,linux428,linux429,linux431,linux432。
5.编辑core-site.xml文件,设置hdfs对外的统一地址,内容如下:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://T5401:9000/</value>
<final>true</final>
</property>
</configuration>
6.编辑hdfs-site.xml文件,设置hdfs的真实文件存放位置,内容如下:
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/application/search/hadoop/hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.data.dir</name>
<value>/application/search/hadoop/hdfs/data</value>
<final>true</final>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>/application/search/hadoop/hdfs/namesecondary</value>
<final>true</final>
</property>
</configuration>
7.编辑mapred-site.xml文件,设置mapreduce的一些重要参数,内容如下:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>T5041:9001</value>
<final>true</final>
</property>
<property>
<name>mapred.local.dir</name>
<value>/application/search/hadoop/mapred/local</value>
<final>true</final>
</property>
<property>
<name>mapred.system.dir</name>
<value>/tmp/hadoop/mapred/system</value>
<final>true</final>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>7</value>
<final>true</final>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>7</value>
<final>true</final>
</property>
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx600m</value>
<!-- Not marked as final so jobs can include JVM debugging options -->
</property>
</configuration>
7.2 设置hadoop中用到的SSH端口号
系统默认的SSH端口号是22,当使用其它端口时,为使start-all.sh能正常运行,可以设置hadoop中用到的SSH端口号,在conf/hadoop-env.sh文件中增加:export HADOOP_SSH_OPTS="-p 7411" 即可。
7.3 同步hadoop安装文件到集群中的其它服务器
scp -P 7411 -r /opt/analysis/hadoop-0.20.3 analyzer@10.12.3.87: /opt/analysis /hadoop-0.20.3
scp -P 7411 -r /opt/analysis/hadoop-0.20.3 analyzer@10.12.3.88: /opt/analysis /hadoop-0.20.3
7.4 hadoop集群初始化
./hadoop-0.20.3/bin/hadoop namenode -format
7.5 Hadoop启动
7.5.1 启动命令
./hadoop-0.20.3/bin/start-all.sh
7.5.2 正常的启动日志
-bash-3.2$ ./hadoop-0.20.3/bin/start-all.sh
starting namenode, logging to /opt/analysis/hadoop-0.20.3/bin/../logs/hadoop-analyzer-namenode-T5038.out
T5037: starting datanode, logging to /opt/analysis/hadoop-0.20.3/bin/../logs/hadoop-analyzer-datanode-T5037.out
T5038: starting datanode, logging to /opt/analysis/hadoop-0.20.3/bin/../logs/hadoop-analyzer-datanode-T5038.out
T5038: starting secondarynamenode, logging to /opt/analysis/hadoop-0.20.3/bin/../logs/hadoop-analyzer-secondarynamenode-T5038.out
starting jobtracker, logging to /opt/analysis/hadoop-0.20.3/bin/../logs/hadoop-analyzer-jobtracker-T5038.out
T5037: starting tasktracker, logging to /opt/analysis/hadoop-0.20.3/bin/../logs/hadoop-analyzer-tasktracker-T5037.out
T5038: starting tasktracker, logging to /opt/analysis/hadoop-0.20.3/bin/../logs/hadoop-analyzer-tasktracker-T5038.out
7.6 Hadoop关闭
7.6.1 关闭命令
./hadoop-0.20.3/bin/stop-all.sh
7.6.2 正常的关闭日志
-bash-3.2$ ./hadoop-0.20.3/bin/stop-all.sh
stopping jobtracker
T5037: stopping tasktracker
T5038: stopping tasktracker
stopping namenode
T5037: stopping datanode
T5038: stopping datanode
T5038: stopping secondarynamenode
8 HIVE安装部署
从网上下载后,直接解压即可。
9 安装部署derby
9.1 官方文档网址
http://wiki.apache.org/hadoop/HiveDerbyServerMode
9.2 下载derby
下载地址:http://db.apache.org/derby/derby_downloads.html
或者可以直接从其他已有derby的服务器上,把文件夹复制到待安装服务器。
下载后,无须安装,直接解压在某指定目录,即可。
设置
Derby启动时,默认是启动本地(localhost)的1527端口的服务,在/etc/hosts文件中配置以下内容:
127.0.0.1 localhost.localdomain localhost
9.3 启动及关闭
启动和关闭时,参数-h需一致。
9.3.1 启动命令
nohup /application/search/db-derby-10.6.2.1-bin/bin/startNetworkServer -h 127.0.0.1 &
9.3.2 关闭命令
nohup /application/search/db-derby-10.6.2.1-bin/bin/stopNetworkServer -h 127.0.0.1 &
在这里我还是要推荐下我自己建的大数据学习交流qq裙:522189307 , 裙 里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据开发相关的),包括我自己整理的一份最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴。上述资料加群可以领取