扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
好久都没写了啊。感觉自己都不像是一个搞技术都了。
来个存货吧!
hadoop 集群搭建
3台机器 suse 系统
规划
IP 主机名 hostname hadoop角色
10.96.91.93 namenode93 NameNode、SecondaryNameNode 、ResourceManage、 DataNode 、NodeManager
10.96.91.129 datanode129 DataNode NodeManager
10.96.91.130 datanode130 DataNode NodeManager
创建 hadoop 用户
useradd -u 501 -g users -d /home/hadoop -s /bin/bash hadoop
mkdir /home/hadoop
chown -R hadoop:users /home/hadoop
passwd hadoop 密码设置
方便记忆,我设置到用户名和密码一样
修改主机名
文件位置 /etc/HOSTNAME
vim /etc/HOSTNAME文件
/etc/rc.d/boot.localnet start
修改host文件 !三台机器都要修改!
文件位置 /etc/hosts
10.96.91.93 namenode93
10.96.91.129 datanode129
10.96.91.130 datanode130
配置ssh免密码登录
ssh-keygen -t rsa
.ssh目录下
cat id_rsa.pub >> authorized_keys
把自己本机公钥发送到目标机器
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@datanode129
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@datanode130
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@namenode93
配置环境
文件位置 /etc/profile
export JAVA_HOME=/home/hadoop/jdk1.8.0_191
export JRE_HOME=/home/hadoop/jdk1.8.0_191/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
export HADOOP_HOME=/home/hadoop/hadoop-2.9.1
export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
最重要到-----Hadoop文件配置
创建hdfs文件夹
文件夹不是必须这样创建,但是,一定要和配置文件对应上。 创建后如下:
/home/hadoop/hadoop-2.9.1/hdfs
/home/hadoop/hadoop-2.9.1/hdfs/tmp
/home/hadoop/hadoop-2.9.1/hdfs/name
/home/hadoop/hadoop-2.9.1/hdfs/data
进入配置目录
cd /home/hadoop/hadoop-2.9.1/etc/hadoop
配置core-site.xml
在
hadoop.tmp.dir
/home/hadoop/hadoop-2.9.1/hdfs/tmpp
A base for other temporary directories.
io.file.buffer.size
131072
fs.defaultFS
hdfs://namenode93:9000
注意:hadoop.tmp.dir的value和我们之前创建的/home/hadoop/hadoop-2.9.1/hdfs/tmp路径要一致
配置 hadoop-env.sh文件
将JAVA_HOME文件配置为本机JAVA_HOME路径
export JAVA_HOME=/home/hadoop/jdk1.8.0_191
配配置 yarn-env.sh
将其中的JAVA_HOME修改为本机JAVA_HOME路径
export JAVA_HOME=/home/hadoop/jdk1.8.0_191
配置hdfs-site.xml
在
dfs.replication
2
dfs.namenode.name.dir
file:/home/hadoop/hadoop-2.9.1/hdfs/name
true
dfs.datanode.data.dir
file:/home/hadoop/hadoop-2.9.1/hdfs/data
true
dfs.namenode.secondary.http-address
namenode93:9001
dfs.webhdfs.enabled
true
dfs.permissions
false
注意:dfs.namenode.name.dir和dfs.datanode.data.dir的value和之前创建的/hdfs/name和/hdfs/data路径一致
配置mapred-site.xml
复制mapred-site.xml.template文件,并命名为mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
配置 mapred-site.xml,在标签
mapreduce.framework.name
yarn
配置yarn-site.xml
在
yarn.resourcemanager.address
namenode93:18040
yarn.resourcemanager.scheduler.address
namenode93:18030
yarn.resourcemanager.webapp.address
namenode93:18088
yarn.resourcemanager.resource-tracker.address
namenode93:18025
yarn.resourcemanager.admin.address
namenode93:18141
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.auxservices.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
配置slaves 文件
把原本的localhost删掉,改为
namenode93
datanode129
datanode130
将hadoop-2.9.1文件夹传到其他虚拟机上
scp -r hadoop-2.9.1 hadoop@datanode129:~/
scp -r hadoop-2.9.1 hadoop@datanode130:~/
注意:hadoop是虚拟机的用户名,
初始化hadoop 在namenode机器上
hdfs namenode -format
启动Hadoop
start-dfs.sh
start-yarn.sh
或者start-all.sh
停止Hadoopstop-yarn.sh
stop-dfs.sh
或者stop-all.sh
查看命令
可以查看到当前登录机器到角色
jps
jps查询结果如下
hadoop@namenode93:~> jps
15314 SecondaryNameNode
15484 ResourceManager
14956 NameNode
15116 DataNode
15612 NodeManager
16781 Jps
129 130两个机器是 DataNode,在Hadoop到配置里,可以灵活配置各个机器角色 详细到配置官网上有 jps查询结果如下
hadoop@datanode130:~> jps
10233 NodeManager
10365 Jps
10110 DataNode
到这里,三台机器搭建的Hadoop集群就组建完毕了。
用自带的样例测试hadoop集群跑任务
使用命令
hadoop jar /home/hadoop/hadoop-2.9.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar pi 10 10
用来求圆周率,pi是类名,第一个10表示Map次数,第二个10表示随机生成点的次数
最后出现结果
Job Finished in 32.014 seconds
Estimated value of Pi is 3.20000000000000000000
ok,集群测试可用。 网上还有测试统计字数到例子,有兴趣可以尝试一下
HDFS管理界面
http://10.96.91.93:50070/
yarn管理界面
http://10.96.91.93:18088/
其他suse命令
查看版本
lsb_release -d
SUSE11下: 关闭防
service SuSEfirewall2_setup stop
service SuSEfirewall2_init stop
取消开机启动防火墙:
chkconfig SuSEfirewall2_setup off
chkconfig SuSEfirewall2_init off
查看端口情况
netstat -ntpl
参考资料
CentOs6搭建Hadoop环境,这是一个网上比较好的例子。尤其是Hadoop HA安装这部分比较全面。
Hadoop配置文件参数详解,这个只是参考,Hadoop版本不一样可能使用到配置也有一些差别。具体查看项目对应版本的配置部分文档。
Apache Hadoop 2.9.1项目
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流