阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop平台的搭建

127次阅读
没有评论

共计 7935 个字符,预计需要花费 20 分钟才能阅读完成。

Hadoop 虚拟机集群配置

一.在 VM 中安装 CentOS6.0 及以上版本(以 Master.Hadoop 为例)

a) 安装时设置所有的用户名为 hadoop

b) 修改主机名为 Master.Hadoop,Slave1.Hadoop,Slave2.Hadoop……

i. 用 vim 打开 /etc/sysconf/network,修改 HOSTNAME 后的参数,为主机名

c) 设置静态 IP(防止由于外界网络环境的变化影响整个集群)

i. vim /etc/sysconfig/network-scripts/ifcgf-eth0(修改 eth0 网卡)

IPDAAR:192.168.1.2

GATEWAY:192.168.1.1

DNS:

ii. Service network restart 重启网卡

iii. Ifconfig 命令,验证 ip 是否修改成功

 

d) 修改开机服务项,长期关闭防火墙 iptables 服务

i. vim /etc/sysconfig/iptables

ii. 在文件中加入:

-A INPUT -m state –state NEW -mtcp -p tcp –dport 21 -j ACCEPT

-A INPUT -m state –state NEW -mtcp -p tcp –dport 20 -j ACCEPT

e) 关闭 seLinux 服务(这个貌似影响不大)

i. getsebool -a | grep ftp 查询 selinux 设置状态

ii. 执行:setsebool -P ftp_home_dir 1

setsebool -P allow_ftpd_full_access 1

(执行的时间会比较长)

Vim /etc/selinux/config,设置“SELINUX=disabled”

f) 设置各个结点之间的 ssh 无密码连接

i. 在 /etc/hosts 文件中加入主机名及其对应的 ip,即可 ping 通主机名

ii. 查看本机中是否有 ssh、rsync 服务:

rpm –qa | grep openssh

rpm –qa | grep rsync

iii. 在 Master 结点执行:ssh-keygen –t rsa –P‘’命令

iv. 在 /home/hadoop/.ssh 文件夹中会看到两个文件即为刚生成的密钥

v. 执行:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

vi. 修改权限:chmod 600 ~/.ssh/authorized_keys

vii. 重启 ssh 服务:service sshd restart

viii. 测试:ssh localhost

ix. 将公钥复制到其他结点:scp ~/.ssh/id_rsa.pub 远程用户名 @远程服务器 IP:~/

x. 在 Slave 上创建文件夹 mkdir /home/hadoop/.ssh,并改为 700 权限

xi. cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

xii. 删掉刚才复制过来的文件即可。

xiii. 同理,在从 Slave 结点向 Master 结点搭建 ssh 无密码连接。

二.安装 JDK

a) 在 Oracle 官网上下载 jdk1.6.0_31(尽量在官网下载,否则之后可能会出现非常坑爹的情况)

b) 复制到 linux 虚拟机中(也可以配置 vsftpd,利用服务器上传)

i. 进入根权限,mkdir /usr/java

ii. cp /home/hadoop/ jdk-6u31-linux-i586.bin /usr/java

iii. 进入“/usr/java”目录下,修改执行权限 chmod +x jdk-6u31-linux-i586.bin

iv. 执行./jdk-6u31-linux-i586.bin

c) 配置环境变量

i. 用 vim 修改 /etc/profile 文件

在文件的尾部添加

# set java environment

export JAVA_HOME=/usr/java/jdk1.6.0_31/

export JRE_HOME=/usr/java/jdk1.6.0_31/jre

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

ii. 执行 source /etc/profile,使之生效

iii. 执行 java -version 命令,若看到刚安装的 java 版本,测成功

iv. 若出现如下错误(官方下载的 JDK 一般无此问题):

Error occurred during initialization of VM

java/lang/NoClassDefFoundError: java/lang/Object

v. 打开 jdk 下的 lib 文件夹,执行 unpack200 tools.pack tools.jar

进入 /jdk/jre/lib 执行 unpack200 rt.pack rt.jar,以及 jsse.pack

再次 java -version 验证

三.安装 hadoop

a) 在官网上下载 hadoop(hadoop1.0.0 和 hadoop1.2.0 我都装过)

b) 安装包复制到虚拟机中

c) 解压至并改名至:/usr/hadoop

d) 修改 hadoop 文件夹的用户分组 chown -R hadoop:hadoop hadoop

e) 在 hadoop 下创建 tmp 文件夹,一定要把权限修改为 777 满权限

f) 修改环境变量 vim /etc/profile

在结尾加入:

#set hadoop environment

export HADOOP_HOME=/usr/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2013-11/93289p2.htm

相关阅读

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

四.配置 Hadoop(所有配置文件在 /usr/hadoop/conf 下)

a) 修改 hadoop-env.sh

加入:# set java environment

export JAVA_HOME=/usr/java/jdk1.6.0_31

b) 修改 core-site.xml

<property>

<name>hadoop.tmp.dir</name>

<value>/usr/hadoop/tmp</value>

(备注:请先在 /usr/hadoop 目录下建立 tmp 文件夹)

<description>A base for other temporary directories.</description>

</property>

<!– file system properties –>

<property>

<name>fs.default.name</name>

<value>hdfs://192.168.1.2:9000</value>

</property>

c) 修改 hdfs-site.xml

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

(备注:replication 是数据副本数量,默认为 3,salve 少于 3 台就会报错)

</property>

<configuration>

d) 修改 mapred-site.xml

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>http://192.168.1.2:9001</value>

</property>

</configuration>

e) 修改 masters 和 slaves 文件,将 master 和所有 slave 的 ip 地址分别写入文件。

f) 把 /usr/hadoop 整个文件夹复制到其他 slave 结点上,修改环境变量和权限即可

g) 验证:hadoop namenode -format

start-all.sh

Jps 若发现有 namenode, jobtraker, secondnamenode;

slave 上有 datanode, tasktraker,

则成功

h) 常见异常:

i. namespaceID 不同。将 slave 的 /tmp/dfs/data 删掉,在 master 格式化 namenode

ii. 一定关掉所有结点的防火墙再启动 hadoop

i)

五.配置 eclipse,使用 eclipse 编译运行 hadoop 程序

六.运行程序时出现的异常

a) 本地库的异常:

i. 解决办法:在 core-site.xml 中加入

<property>

<name>hadoop.native.lib</name>

<value>true</value>

<description>Should native hadoop libraries, if present, be used.</description>

</property>

使 hadoop 连接本地库

b) Jvm 内存不够

i. 在 mapred-site.xml 中添加:

<property>

<name>mapred.child.java.opts</name>

<value>-Xmx1024m</value>

</property>

ii. 在 hadoop-env.sh 中修改:

# The maximum amount of heap to use, in MB. Default is 1000.

export HADOOP_HEAPSIZE=2000

 

c) 在 mapred-site.xml 中加入(异常是什么忘记了)

<property>

<name>mapred.child.tmp</name>

<value>/usr/hadoop/tmp</value>

</property>

d) Permission Deny 的异常

i. Eclipse 中设置 Map/Reduce 时把用户名设为 hadoop(若在 win7 下,把管理员改为 hadoop)

ii. 在 hdfs-site.xml 中加入:

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

e) 注意事项:

i. 在运行程序前建议关闭 namenode 的安全模式

hadoop namenode -safemode leave

ii. 有时也需要关闭 hdfs 的安全模式

hadoop dfsadmin -safemode leave

f) 使用 eclipse 时

i. 在主类中设置 run configuration 中的 Argument 中设置输入输出参数,常为:

1. hdfs://192.168.1.2:9000/user/hadoop/input

2. hdfs://192.168.1.2:9000/user/hadoop/output

注:之间由空格相连,保证输出路径不存在

ii. 若依然显示异常:

File file : hdfs://192.168.1.2:9000/user/hadoop/input/file2.txt 不存在(input 中有 file1.txt 和 file2.txt. 文件)

1. 异常的表现是 map 0% reduce 0%

2. 在 192.168.1.2:50030 中,map 完成 100%,reduce 完成 100%。但 map 未传给 reduce。

3. 直接在代码中写死输入路径,不读参数。并不是环境的错误!!

iii. 当不能连接时,可能是网络问题,ifconfig 查看当前状况,并重启机器

更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

Hadoop 虚拟机集群配置

一.在 VM 中安装 CentOS6.0 及以上版本(以 Master.Hadoop 为例)

a) 安装时设置所有的用户名为 hadoop

b) 修改主机名为 Master.Hadoop,Slave1.Hadoop,Slave2.Hadoop……

i. 用 vim 打开 /etc/sysconf/network,修改 HOSTNAME 后的参数,为主机名

c) 设置静态 IP(防止由于外界网络环境的变化影响整个集群)

i. vim /etc/sysconfig/network-scripts/ifcgf-eth0(修改 eth0 网卡)

IPDAAR:192.168.1.2

GATEWAY:192.168.1.1

DNS:

ii. Service network restart 重启网卡

iii. Ifconfig 命令,验证 ip 是否修改成功

 

d) 修改开机服务项,长期关闭防火墙 iptables 服务

i. vim /etc/sysconfig/iptables

ii. 在文件中加入:

-A INPUT -m state –state NEW -mtcp -p tcp –dport 21 -j ACCEPT

-A INPUT -m state –state NEW -mtcp -p tcp –dport 20 -j ACCEPT

e) 关闭 seLinux 服务(这个貌似影响不大)

i. getsebool -a | grep ftp 查询 selinux 设置状态

ii. 执行:setsebool -P ftp_home_dir 1

setsebool -P allow_ftpd_full_access 1

(执行的时间会比较长)

Vim /etc/selinux/config,设置“SELINUX=disabled”

f) 设置各个结点之间的 ssh 无密码连接

i. 在 /etc/hosts 文件中加入主机名及其对应的 ip,即可 ping 通主机名

ii. 查看本机中是否有 ssh、rsync 服务:

rpm –qa | grep openssh

rpm –qa | grep rsync

iii. 在 Master 结点执行:ssh-keygen –t rsa –P‘’命令

iv. 在 /home/hadoop/.ssh 文件夹中会看到两个文件即为刚生成的密钥

v. 执行:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

vi. 修改权限:chmod 600 ~/.ssh/authorized_keys

vii. 重启 ssh 服务:service sshd restart

viii. 测试:ssh localhost

ix. 将公钥复制到其他结点:scp ~/.ssh/id_rsa.pub 远程用户名 @远程服务器 IP:~/

x. 在 Slave 上创建文件夹 mkdir /home/hadoop/.ssh,并改为 700 权限

xi. cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

xii. 删掉刚才复制过来的文件即可。

xiii. 同理,在从 Slave 结点向 Master 结点搭建 ssh 无密码连接。

二.安装 JDK

a) 在 Oracle 官网上下载 jdk1.6.0_31(尽量在官网下载,否则之后可能会出现非常坑爹的情况)

b) 复制到 linux 虚拟机中(也可以配置 vsftpd,利用服务器上传)

i. 进入根权限,mkdir /usr/java

ii. cp /home/hadoop/ jdk-6u31-linux-i586.bin /usr/java

iii. 进入“/usr/java”目录下,修改执行权限 chmod +x jdk-6u31-linux-i586.bin

iv. 执行./jdk-6u31-linux-i586.bin

c) 配置环境变量

i. 用 vim 修改 /etc/profile 文件

在文件的尾部添加

# set java environment

export JAVA_HOME=/usr/java/jdk1.6.0_31/

export JRE_HOME=/usr/java/jdk1.6.0_31/jre

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

ii. 执行 source /etc/profile,使之生效

iii. 执行 java -version 命令,若看到刚安装的 java 版本,测成功

iv. 若出现如下错误(官方下载的 JDK 一般无此问题):

Error occurred during initialization of VM

java/lang/NoClassDefFoundError: java/lang/Object

v. 打开 jdk 下的 lib 文件夹,执行 unpack200 tools.pack tools.jar

进入 /jdk/jre/lib 执行 unpack200 rt.pack rt.jar,以及 jsse.pack

再次 java -version 验证

三.安装 hadoop

a) 在官网上下载 hadoop(hadoop1.0.0 和 hadoop1.2.0 我都装过)

b) 安装包复制到虚拟机中

c) 解压至并改名至:/usr/hadoop

d) 修改 hadoop 文件夹的用户分组 chown -R hadoop:hadoop hadoop

e) 在 hadoop 下创建 tmp 文件夹,一定要把权限修改为 777 满权限

f) 修改环境变量 vim /etc/profile

在结尾加入:

#set hadoop environment

export HADOOP_HOME=/usr/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2013-11/93289p2.htm

相关阅读

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计7935字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中