hadoop安装部署
hadoop 安装和部署
安装目标目录: /usr/local/hadoop
HDFS数据,Log,临时数据目录:/var/local/hadoop/
hadoop 用户: hadoop
JDK:1.6 版本
一,建立用户hadoop
大部情况下可以直接在root用户下安装,在此处特意建立以hadoop为用户名进行相关操作
>useradd hadoop #建立hadoop用户
>passwd hadoop #修改密码
>passwd hadoop #修改密码
二,安装JDK。
建议切换到root 用户下面安装JDK,如下图:
>su root #切换至root用户
>cd software #进入安装的软件目录
>chmod u+x jdk-6u25-linux-x64-rpm.bin #给*.bin增加可执行权限
>./jdk-6u25-linux-x64-rpm.bin #回车,安装开始。
>cd software #进入安装的软件目录
>chmod u+x jdk-6u25-linux-x64-rpm.bin #给*.bin增加可执行权限
>./jdk-6u25-linux-x64-rpm.bin #回车,安装开始。
JDK安装完成,并且检查安装是否成功。
>java --versiov
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.4) (rhel-1.21.b17.el6-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.4) (rhel-1.21.b17.el6-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
某些情况下,需要手工配置全局的JAVA运行环境,即在/etc/profile中进行配置。
有时候由于产线或者系统中部署了多个JDK版本,则可以通过~/.bashrc或者~/.bashprofile用来对当前用户的JDK环境指定。
关于profile,bashrc等启动顺序,可以自行复习Linux启动脚本顺序。
如下图中,主要在/etc/profile中进行全局配置。
>cd /usr #进入/usr目录,大部分情况下java都安装在/usr下面子目录
>find -name java #查找java安装路径
./java/jdk1.6.0_25/jre/bin/java
./java/jdk1.6.0_25/bin/java
>cd /etc #进入/etc目录
>vim profile #编辑/etc/profile
在/etc/profile 文件尾追加写入如下内容:
JAVA_HOME=/usr/java/jdk1.6.0_25
HADOOP_HOME=/usr/local/hadoop
HADOOP_CONF_DIR=$HADOOP_HOME/conf
CLASSPATH=.:$JAVA_HOME/lib:$HADOOP_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin
export JAVA_HOME
export HADOOP_HOME
export HADOOP_CONF_DIR
让环境变量生效,如下图执行:
source /etc/profile
三,设置ssh
配置本机ssh,使得使用hadoop用户ssh登陆时不需要提供密码验证,对于伪分布式的hadoop部署之需要设置如下信息,则基本ssh配制成功。
>su hadoop #切换到hadoop用户
>ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa #初始化ssh 验证信息
>cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys #追加验证信息到authorized_keys文件
>chmod 700 ~/.ssh
>chmod 600 ~/.ssh/authorized_keys
>ssh localhost #测试本机主机名不需要验证就可以登录则成功
>ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa #初始化ssh 验证信息
>cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys #追加验证信息到authorized_keys文件
>chmod 700 ~/.ssh
>chmod 600 ~/.ssh/authorized_keys
>ssh localhost #测试本机主机名不需要验证就可以登录则成功
如果配置多台机器的cluster完整分布式集群,例如:
10.16.45.209 s1
10.16.45.226 s2
10.16.45.227 s3
10.16.45.231 s4
10.16.45.226 s2
10.16.45.227 s3
10.16.45.231 s4
使用如下命令操作加入主机名和IP映射
>su root
>vim /etc/hosts
>vim /etc/hosts
更新类似如下内容:
10.16.45.209 s1 # Added by NetworkManager
127.0.0.1 localhost.localdomain localhost
::1 sstrtst20.buyabs.corp sstrtst20 localhost6.localdomain6 localhost6
10.16.45.226 s2
10.16.45.227 s3
10.16.45.231 s4
127.0.0.1 localhost.localdomain localhost
::1 sstrtst20.buyabs.corp sstrtst20 localhost6.localdomain6 localhost6
10.16.45.226 s2
10.16.45.227 s3
10.16.45.231 s4
分布式SSH设置如下图,ssh登录10.16.45.209:
>su hadoop #切换到hadoop用户
>ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa #初始化ssh 验证信息
>cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys #追加验证信息到authorized_keys文件
>chmod 700 ~/.ssh
>chmod 600 ~/.ssh/authorized_keys
>ssh s1 #测试当前主机不需要验证既可登录
>scp ~/.ssh/id_dsa.pub 10.16.45.226:/home/hadoop/.ssh/
>ssh 10.16.45.226
>su hadoop
>cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys #追加验证信息到authorized_keys文件
>ssh s1 #测试
依次将sstrtst20的~/.ssh/id_dsa.pub拷贝到其他ip地址并且追加到authorized_keys文件。>ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa #初始化ssh 验证信息
>cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys #追加验证信息到authorized_keys文件
>chmod 700 ~/.ssh
>chmod 600 ~/.ssh/authorized_keys
>ssh s1 #测试当前主机不需要验证既可登录
>scp ~/.ssh/id_dsa.pub 10.16.45.226:/home/hadoop/.ssh/
>ssh 10.16.45.226
>su hadoop
>cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys #追加验证信息到authorized_keys文件
>ssh s1 #测试
四,安装配置hadoop
解压缩安装包并且进行相关配置,如下图:
>su root
>tar xzvf hadoop-0.20.2-cdh3u1.tar.gz #解压缩
>mv hadoop-0.20.2-cdh3u1 hadoop #改名
>mv hadoop /usr/local #移动文件
>chown -R hadoop:hadoop /usr/local/hadoop #修改/usr/local/hadoop 目录以及目录内容数据hadoop:hadoop用户/用户组
>cd /usr/local/hadoop/conf
>vim hadoop-env.sh
>tar xzvf hadoop-0.20.2-cdh3u1.tar.gz #解压缩
>mv hadoop-0.20.2-cdh3u1 hadoop #改名
>mv hadoop /usr/local #移动文件
>chown -R hadoop:hadoop /usr/local/hadoop #修改/usr/local/hadoop 目录以及目录内容数据hadoop:hadoop用户/用户组
>cd /usr/local/hadoop/conf
>vim hadoop-env.sh
设置hadoop-env.sh内容:
export JAVA_HOME=$JAVA_HOME
export HADOOP_CLASSPATH="$HADOOP_CLASSPATH"
export HADOOP_HEAPSIZE=2048
export HADOOP_LOG_DIR=/var/local/logs
export HADOOP_PID_DIR=/var/local/pids
export HADOOP_CLASSPATH="$HADOOP_CLASSPATH"
export HADOOP_HEAPSIZE=2048
export HADOOP_LOG_DIR=/var/local/logs
export HADOOP_PID_DIR=/var/local/pids
设置masters内容
s1
设置slaves内容
s1
s2
s3
s4
s2
s3
s4
设置hdfs-site.xml内容
<configuration>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/var/local/hadoop/cache/hadoop/dfs/name</value>
</property>
</configuration>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/var/local/hadoop/cache/hadoop/dfs/name</value>
</property>
</configuration>
设置mapred-site.xml内容
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>s1:8021</value>
</property>
</configuration>
<property>
<name>mapred.job.tracker</name>
<value>s1:8021</value>
</property>
</configuration>
设置core-site.xml内容
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://s2:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/local/hadoop/cache/${user.name}</value>
</property>
<property>
<name>webinterface.private.actions</name>
<value>true</value>
</property>
</configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://s2:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/local/hadoop/cache/${user.name}</value>
</property>
<property>
<name>webinterface.private.actions</name>
<value>true</value>
</property>
</configuration>
设置log4j,请自行配置。
依次将hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,masters,slaves文件分发到其它hadoop node
五,创建hadoop 数据,log,pids目录
创建hadoop log,pid,hadoop目录并且设置操作权限,如下:
>su root
>mkdir /var/local
>mkdir /var/local/hadoop
>mkdir /var/local/logs
>mkdir /var/local/pids
>cd /var/local
>chown -R hadoop:hadoop *
>chmod ugo+rw *
>mkdir /var/local
>mkdir /var/local/hadoop
>mkdir /var/local/logs
>mkdir /var/local/pids
>cd /var/local
>chown -R hadoop:hadoop *
>chmod ugo+rw *
六,启动准备
>su hadoop
>hadoop namenode -format #格式化HDFS数据存储
>cd /usr/local/hadoop/bin #必须在namenode 上启动
>sh start-all.sh #启动
>hadoop fs -ls / #测试
>hadoop fs -put demo.txt /user/hadoop/demo.txt #向HDFS上传demo.txt并且存储在/user/hadoop/demo.txt
>hadoop fs -cat /user/hadoop/demo.txt #打印
>hadoop namenode -format #格式化HDFS数据存储
>cd /usr/local/hadoop/bin #必须在namenode 上启动
>sh start-all.sh #启动
>hadoop fs -ls / #测试
>hadoop fs -put demo.txt /user/hadoop/demo.txt #向HDFS上传demo.txt并且存储在/user/hadoop/demo.txt
>hadoop fs -cat /user/hadoop/demo.txt #打印
七,系统自动启动
利用CentOS chkconfig,在/etc/init.d/ 中创建start,stop,restart脚本,利用chkconfig --add 加入服务,利用chkconfig --level on 设置启动级别。
八,观察hadoop 运行进程
在namenode上观察:
>jps
14520 NameNode
15005 TaskTracker
14641 DataNode
14881 JobTracker
7647 Jps
14790 SecondaryNameNode
14520 NameNode
15005 TaskTracker
14641 DataNode
14881 JobTracker
7647 Jps
14790 SecondaryNameNode
在datanode上观察:
>jps
3462 TaskTracker
16687 Jps
3349 DataNode
3462 TaskTracker
16687 Jps
3349 DataNode
posted on 2012-03-21 14:02 reck for zhou 阅读(2322) 评论(4) 编辑 收藏 举报