hadoop搭建

Hadoop搭建

一、在修改hostname和hosts
1.修改hostname
sudo vi /etc/hostname
2.修改hosts, 是各个节点之间可以通过主机名连接
sudo vi /etc/hosts

二、在Ubuntu下创建hadoop用户组和用户
1.添加hadoop用户到系统用户
sudo addgroup hadoop  
sudo adduser --ingroup hadoop hadoop  
2.现在只是添加了一个用户hadoop,它并不具备管理员权限,我们给hadoop用户添加权限,打开/etc/sudoers文件
   sudo vi /etc/sudoers 
在root ALL=(ALL:ALL) ALL下添加 hadoop ALL=(ALL:ALL) ALL 

三、配置ssh免密码连入
1.作为一个安全通信协议(ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式),使用时需要密码,因此我们要设置成免密码登录,生成私钥和公钥:
ssh-keygen -t rsa -P ""  
(注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的前者为私钥,后者为公钥)
2.进入~/.ssh/目录下,将公钥id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的(authorized_keys 用于保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容):
cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys 
ssh localhost //测试本地免密码登录 
exit
3.各个节点之间SSH免密码登录
在namenode上面执行:
ssh-copy-id -I ~/.ssh/id_rsa.pub datanode  // datanode是主机名
在datanode上面执行:
ssh-copy-id -I ~/.ssh/id_rsa.pub namenode  // namenode是主机名

四、安装JDK
1.解压到 /usr/local/jdk (可根据需要改变)
2.配置环境变量
sudo vi /etc/profile
最后添加:
export JAVA_HOME=/usr/local/jdk
export PATH=.:$PATH:$JAVA_HOME/bin
使配置生效:
source /etc/profile

五、安装hadoop
1.解压到 /usr/local/hadoop (可根据需要改变)
2.配置环境变量
sudo vi /etc/profile
修改:
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
使配置生效:
source /etc/profile
3.要确保所有的操作都是在用户hadoop下完成的,所以将该hadoop文件夹的属主用户设为hadoop
sudo chown -R hadoop:hadoop hadoop  
4.配置hadoop-env.sh
sudo vi /usr/local/hadoop/conf/hadoop-env.sh
在:# export JAVA_HOME=/usr/lib/j2sdk1.5-sun 后面添加:
export JAVA_HOME=/usr/local/jdk
使配置生效:
source /usr/local/hadoop/conf/hadoop-env.sh

六、 分布模式的一些配置
这里需要设定5个文件:core-site.xml,hdfs-site.xml,mapred-site.xml,masters,slaves都在/usr/local/hadoop/conf目录下
core-site.xml: Hadoop Core的配置项,例如HDFS和MapReduce常用的I/O设置等。
hdfs-site.xml: Hadoop 守护进程的配置项,包括namenode,辅助namenode和datanode等。
mapred-site.xml: MapReduce 守护进程的配置项,包括jobtracker和tasktracker。
masters: 添加namenode节点的IP。
slaves: 添加datanode节点的IP。

1.core-site.xml:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
<description>hadoop 的运行临时文件的主目录</description>
</property>
<property>
<name>fs.default.name</name>
        <value>hdfs://hadoop:9000</value>
<description>HDFS 的访问路径</description>
</property>
</configuration>

2.hdfs-site.xml:
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
<description>存储副本数</description>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>

3.mapred-site.xml:
<configuration>  
    <property> 
        <name>mapred.job.tracker</name>
        <value>hadoop:9001</value>
<description>JobTracker 的访问路径</description>
    </property>
</configuration>

4.masters
去掉默认的localhost,添加namenode的ip地址

5.slaves
去掉默认的localhost,添加datanode的ip地址

七、复制JDK和Hadoop到其它节点
scp –r /usr/local/jdk hadoop@datanode:/usr/local
scp –r /usr/local/hadoop hadoop@datanode:/usr/local
scp –r /etc/profile hadoop@datanode:/etc
注意各个节点文件的权限问题。

八、格式化文件系统
1.hdfs 是 文 件 系 统 , 所 以 在 第 一 次 使 用 之 前 需 要 进 行 格 式 化
/usr/local/hadoop/bin/hadoop namenode -format

九、启动
1.一次性全部启动
/usr/local/hadoop/bin/start-all.sh
2.单独启动hdfs
/usr/local/hadoop/bin/start-dfs.sh
3.单独启动MapReduce
/usr/local/hadoop/bin/start-mapred.sh

十、网页中查看状态
1.http://192.168.2.226:50070/dfshealth.jsp 网址为namenode节点对应IP
2.http://192.168.2.226:50030/jobtracker.jsp 网址为namenode节点对应IP

猜你喜欢

转载自495142450.iteye.com/blog/2245780