hadoop多次搭建后,完整总结(累死宝宝了,搭建了十多遍了)

1、安装JDK
1.1上传
运用软件FileZilla,将windows上的jdk压缩包放到linux的root目录下

1.2解压jdk
#创建文件夹
mkdir /usr/java(不要挂在在“/”系统盘下)
#解压
tar -zxvf jdk-7u55-linux-i586.tar.gz -C /usr/java/(提前在/usr/目录下创建一个java的文件夹)

1.3将java添加到环境变量中
vim /etc/profile
#在文件最后添加
export JAVA_HOME=/usr/java/jdk1.7.0_55
export PATH=$PATH:$JAVA_HOME/bin

#刷新配置
source /etc/profile

2、安装Hadoop
2.1上传hadoop安装包
运用软件FileZilla,将windows上的压缩包放到linux的root目录下

2.2解压hadoop安装包
在root目录下
mkdir /cloud
#解压到/cloud/目录下
tar -zxvf hadoop-2.2.0.tar.gz -C /cloud/

2.3修改配置文件(5个)目录 /cloud/hadoop-2.2.0/etc/hadoop
第一个:hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.6

第二个:core-site.xml
<configuration>
<!-- 指定HDFS老大(namenode)的通信地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://northbigpenguin:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/cloud/hadoop-2.2.0/tmp</value>
</property>
</configuration>

第三个:hdfs-site.xml
<configuration>
<!-- 设置hdfs副本数量 -->
<property>
<name>dfs.replication</name>
<value>1</value><!--默认是3个,这里改为一个-->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///data/hdfs/data</value>
</property>
</configuration>

第四个:mapred-site.xml.template 需要重命名: mv mapred-site.xml.template mapred-site.xml
<configuration>
<!-- 通知框架MR使用YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--这个必须加载-->
<property>
   <name>mapred.job.tracker</name>
   <value>northbigpenguin:9001</value>
</property>
</configuration>

第五个:yarn-site.xml

<configuration>
<!-- reducer取数据的方式是mapreduce_shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>northbigpenguin</value>
</property>
</configuration>

3、将hadoop添加到环境变量
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.6
export HADOOP_HOME=/root/cloud/hadoop-2.2.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
完成过后部署一下,才能生效
source /etc/profile

4、格式化HDFS(namenode)第一次使用时要格式化
#过时但还可以使用:hadoop namenode -format
目录/cloud/hadoop-2.2.0
hdfs namenode -format 使用这个(注:整个配置中此句子仅仅执行一次,否则会出很多错误)
注意:
(1)如果报错:
-bash: hadoop: command not found
说明:
hadoop的路径配置有误。查看vim /etc/profile的export HADOOP_HOME=/root/cloud/hadoop-2.2.0(使用绝对路径)
不知道绝对路径:
进入/hadoop-2.2.0/bin 然后输入pwd

5、启动hadoop
5.1 初始化HDFS(格式化文件系统)
(1)查找命令:
which hadoop
which hdfs
(2)到hdfs相对的bin目录下:
cd /root/Download/hadoop/hadoop-2.2.0/bin
(3)退到/hadoop-2.2.0所在目录
hdfs namenode -format (hadoop namenode -format(过时了,但是可用))

5.2启动hadoop
(1)进入目录/root/cloud/hadoop-2.2.0/sbin

(2)先启动HDFS(可以用.../sbin/start-all.sh但是需要多次输入密码)

(3)第二种启动方法:
先启动HDFS
../sbin
./start-dfs.sh

再启动YARN
../sbin
./start-yarn.sh
资源无法访问和stop错误都是重启

/data/hdfs/data/current

(2)报错:Error: Cannot find configuration directory:
进入vim /etc/profile
就把所有的路径都配置进去
export JAVA_HOME=/usr/java/jdk1.6
export HADOOP_HOME=/root/cloud/hadoop-2.2.0
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH::$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOOME/sbin:$HADOOP_HOME/lib
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
再次配置一下
source /etc/profile
6、然后关闭服务器
./stop-all.sh
重新启动服务:
./start-all.sh

最后出现:
starting yarn daemons
starting resourcemanager, logging to /root/cloud/hadoop-2.2.0/logs/yarn-root-resourcemanager-northbigpenguin.out
localhost: starting nodemanager, logging to /root/cloud/hadoop-2.2.0/logs/yarn-root-nodemanager-northbigpenguin.out
这样的字样就是配置成功

7、验证是否启动成功
(1)数据传输成功验证:
使用jps命令验证
目录/root/cloud/hadoop-2.2.0/sbin
下输入:
jps
出现如下六个的文件为配置成功:
27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode

在主节点执行jps,看到3个进程,分别是NameNode、SecondaryNameNode、JobTracker
在从节点执行jps,看到2个进程,分别是DataNode、TaskTracker
(2)网页测试:
在这个文件中添加linux主机名和IP的映射关系(本机windows系统下)
C:\Windows\System32\drivers\etc\hosts
192.168.1.110(LInux的IP地址) localhost(linux主机名)
访问:northbigpenguin:50070 ((hdfs的web页面)
northbigpenguin:8088 (MR管理界面)

网页测试不显示网页需要关闭防火墙
关闭防火墙
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off

注意:
页面访问:
Live Nodes-->Browse the filesystem 需要配置本地连接否则会无法访问
http://northbigpenguin:50075/browseDirectory.jsp?namenodeInfoPort=50070&dir=/&nnaddr=localhostip:9000
点击后跳转到这个界面

页面数据测试:
上传文件到hadoop (文件是临时的,服务器关闭,文件消失):
hadoop fs -put /root/Download/jdk-6u45-linux-x64.bin hdfs://northbigpenguin:9000/jdk
然后在界面可以看到:
http://northbigpenguin:50075/browseDirectory.jsp
命令行下载上传的文件:
hadoop fs -get /root/Download/jdk-6u45-linux-x64.bin hdfs://northbigpenguin:9000/jdk
运行实例
(1)先在本地磁盘建立两个输入文件 file01和file02
$echo "Hello World Bye World" > file01
$echo "Hello Hadoop Goodbye Hadoop" > file02

(2)在hdfs中建立一个input目录:$hadoop fs -mkdir input
(3)将file01和file02拷贝到hdfs中:
$hadoop fs -copyFromLocal /home/zhongping/file0* input
(4)执行wordcount:
$hadoop jar hadoop-0.20.2-examples.jar wordcount input output
(5)完成之后,查看结果
$hadoop fs -cat output/part-r-00000
NameNode
Jps
SecondaryNameNode
NodeManager
ResourceManager
DataNode关系和联系

yarn负责资源的调度
ResourceManager(负责管理)是yarn的上一级
NodeManager(负责干活)(可以是一个,集群时是多个)是yarn的低一级
SecondaryNameNode 是hadoop1.0的解决HA(高可靠性)的方案
SecondaryNameNode不是NameNode的一个热备(namenode坏了SecondaryNameNode不执行)
SecondaryNameNode是NameNode的助理(完成数据同步,但不是实时的)

hdfs
NameNode是hdfs的上一级
DataNode(负责存放数据)是hdfs的下一级

错误:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where
applicable
系统版本不兼容

部署Hadoop的集群环境为? 操作系统 CentOS 5.8??? hadoop版本为cloudera?? hadoop-0.20.2-cdh3u3
集群中设置支持gzip lzo压缩后,在对压缩文件进行读取或者对输入文件压缩的时候要使用到hadoop的本地库,本地库的默认位置在
$HADOOP_HOME/lib/native/Linux-amd64-64?? (64位操作系统)
$HADOOP_HOME/lib/native/Linux-i386-32?? (32位操作系统)
文件夹中的libhadoop.so文件,就是hadoop的本地库。
如果本地库不存在,或者本地库与当前操作系统的版本不一致的时候,会报下面的错误:
11/09/20 17:29:49 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java
classes where applicable
增加调试信息设置
(开启:export HADOOP_ROOT_LOGGER=DEBUG,console
关闭:export HADOOP_ROOT_LOGGER=INFO,console)
$ export HADOOP_ROOT_LOGGER=DEBUG,console
$ hadoop fs -text /test/data/origz/access.log.gz
2012-04-24 15:55:43,269 WARN org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your
platform... using builtin-java classes where applicable error libhadoop.so? /lib64/libc.so.6 required (libc 2.6)???
/usr/local/hadoop/lib/native/Linux-amd64-64?
说明系统中的glibc的版本和libhadoop.so需要的版本不一致导致
查看系统的libc版本?
# ll /lib64/libc.so.6
lrwxrwxrwx 1 root root 11 Apr 24 16:49 /lib64/libc.so.6 -> libc-2.5.so
系统中的版本为2.5 将系统中的glibc升级为2.9
下载glibc wget? http://ftp.gnu.org/gnu/glibc/glibc-2.9.tar.bz2
下载glibc-linuxthreads wget http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.5.tar.bz2
解压 $tar -jxvf glibc-2.9.tar.bz2 $cd glibc-2.9
$tar -jxvf ../glibc-linuxthreads-2.5.tar.bz2
$cd .. $export CFLAGS="-g -O2"
$./glibc-2.7/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include
--with-binutils=/usr/bin
$make
#make install
安装编译过程中需要注意三点:
1、要将glibc-linuxthreads解压到glibc目录下。
2、不能在glibc当前目录下运行configure。
3、加上优化开关,export CFLAGS="-g -O2",否则会出现错误
安装完后,可以查看ls -l /lib/libc.so.6已升级
lrwxrwxrwx 1 root root 11 Apr 24 16:49 /lib64/libc.so.6 -> libc-2.9.so
测试本地库是否升级
$ export HADOOP_ROOT_LOGGER=DEBUG,console
$ hadoop fs -text /test/data/origz/access.log.gz
12/04/25 08:54:47 INFO lzo.LzoCodec: Successfully loaded & initialized native-lzo library [hadoop-lzo rev
6bb1b7f8b9044d8df9b4d2b6641db7658aab3cf8]
12/04/25 08:54:47 DEBUG util.NativeCodeLoader: Trying to load the custom-built native-hadoop library...
12/04/25 08:54:47 INFO util.NativeCodeLoader: Loaded the native-hadoop library 12/04/25 08:54:47 INFO zlib.ZlibFactory:
Successfully loaded & initialized native-zlib library
12/04/25 08:54:47 DEBUG fs.FSInputChecker: DFSClient readChunk got seqno 0 offsetInBlock 0 lastPacketInBlock false
packetLen 132100
可以看到将glibc升级后不再报错,已经成功加载本地库

功能练习一:
下载文件命令
hadoop fs -get hdfs://northbigpenguin:9000/jdk1.6 /root/jdk1.6
上传文件命令
hadoop fs -put jdk-6u45-linux-x64.tar hdfs://northbigpenguin:9000/jdk1.6

上传文件需要是rar文件,没有自己创建一个
(1)下载一个jdk。无论什么压缩包,window是本地解压后,打包成.zip文件
(2)将该文件上传到linux系统
(3)系统内解压
unzip jdk-6u45-linux-x64.zip
(4)生成文件夹 jdk-6u45-linux-x64
(5)将该文件夹压缩成tar
tar -cvf jdk-6u45-linux-x64.tar jdk-6u45-linux-x64
(6)上传到linux的hadoop上
(7)下载文件
(8)linux中解压
tar -xzvf jdk1.6

不好使就用
tar -xvf jdk1.6(出现错误用这个)

功能练习二:
统计单词数量的上传文件
进入目录:
/root/cloud/hadoop-2.2.0/share/hadoop/mapreduce
vi wordCount.txt
写入 单词十二个
HELLO WORLD
HELLO BABY
HELLO a
HELLO B
HELLO C
HELLO D
wc wordCount.txt
得到:
6(行) 12(单词数) 55(字符) wordCount.txt
上传到服务器
hadoop fs -put wordCount.txt hdfs://northbigpenguin:9000/wordCount
查看是否上传成功:
hadoop fs -ls hdfs://northbigpenguin:9000/

目录/mapreduce下
执行:
hadoop jar hadoop-mapreduce-examples-2.2.0.jar wordcount hdfs://northbigpenguin:9000/wordCount hdfs://northbigpenguin:9000/Cout
hadoop jar(命令) jar包 命令(统计单词数量) 输入位置 输出位置

Map-Reduce Framework
Map input records=6
Map output records=12
Map output bytes=103
Map output materialized bytes=73
Input split bytes=102
Combine input records=12
Combine output records=7
Reduce input groups=7
Reduce shuffle bytes=73
Reduce input records=7
Reduce output records=7
Spilled Records=14
Shuffled Maps =1
Failed Shuffles=0
Merged Map outputs=1
GC time elapsed (ms)=370
CPU time spent (ms)=3150
Physical memory (bytes) snapshot=315904000
Virtual memory (bytes) snapshot=1650171904
Total committed heap usage (bytes)=136122368
Shuffle Errors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
File Input Format Counters
Bytes Read=55
File Output Format Counters
Bytes Written=39
成功标志

8、配置ssh免登陆
远程创建文件
ssh 10.129.205.237 mkdir /root/xiaobaitu

两台机器都需要配置ssh才能执行远程连接:

(1)基于 RedHat / CentOS 的系统 :
下载安装(完成后会装在root目录下:执行命令ls -a查看隐藏文件.ssh):
# yum install openssh-server openssh-clients
OpenSSH Server安装完成后在/etc/init.d目录下应该会增加一个名为sshd的服务。
chkconfig --list sshd

手动启动sshd服务,方便后面客户端的连接:
$ /etc/init.d/sshd start
(2)方法二:安装SSH:
yum install ssh
启动SSH:
service sshd start
设置开机运行:
chkconfig sshd on

1、创建:
mkdir /root/.ssh

2、生成ssh免登陆密钥
进入到我的home目录
cd ~/.ssh
3、生产密钥
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免登陆的机器上
cp id_rsa.pub authorized_keys或者ssh-copy-id northbigpenguin
或者
将公钥拷贝到要免登陆的机器上
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

注意:
公钥必须叫authorized_keys,系统默认的

登录本机不输密码
ssh northbigpenguin

退出登录
exit

查看公钥
cat ~/.ssh

单项连接:
拷贝自己的公钥到其他你想不用密码登录的机器上
ssh-copy-id 10.129.205.237(想要免密码的机器)

想访问别人,就是考自己的密码给别人,反之考别人的密码给自己
此时会弹出对话框
[email protected]‘s password:
输入对方的密码
会返回:
Now try logging into the machine, with "ssh ‘10.129.205.237‘", and check in:
.ssh/authorized_keys
to make sure we haven‘t added extra keys that you weren‘t expecting.
表示成功
ssh 10.129.205.237 变成别人机器登录
exit退出变回自己机器

双向连接:
互相有对方的公钥
另一台机器的 ssh-keygen -t rsa 生成了id_rsa(私钥)、id_rsa.pub(公钥)外加authorized_keys(第一台机器的公钥)
authorized_keys是设置的别名以防止重复覆盖
所以此时只需 执行
ssh-copy-id 10.129.205.250(另一台机器的ip)
然后输入器确认和密码
Are you sure you want to continue connecting (yes/no)? yes
[email protected]‘s password:
测试连接:
ssh 10.129.205.250

时间: 2024-08-03 09:39:54

hadoop多次搭建后,完整总结(累死宝宝了,搭建了十多遍了)的相关文章

HBase、Hive、MapReduce、Hadoop、Spark 开发环境搭建后的一些步骤(export导出jar包方式 或 Ant 方式)

步骤一 若是,不会HBase开发环境搭建的博文们,见我下面的这篇博客. HBase 开发环境搭建(Eclipse\MyEclipse + Maven) 步骤一里的,需要补充的.如下: 在项目名,右键, 然后,编写pom.xml,这里不多赘述.见 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) 完成之后呢,编写好代码,对吧. 步骤二  HBase 开发环境搭建后的一些步骤(export导出jar包方式  或 Ant 方式) 这里,不多说,玩过大数据一段时间的博友们,

Hadoop实战视频教程完整版 完整的Hadoop大数据视频教程

分享一套迪伦老师的完整的Hadoop实战视频教程,教程从学习Hadoop需要的数据库.Java和Linux基础讲起,非常适合零基础的学员,课程最后结合了实战项目演练,理论结合实战,深入浅出,绝对是当前最为完整.实战的Hadoop教程. <Hadoop大数据零基础高端实战培训系列配文本挖掘项目(七大亮点.十大目标)> 课程讲师:迪伦 课程分类:大数据 适合人群:初级 课时数量:230课时 用到技术:部署Hadoop集群 涉及项目:京东商城.百度.阿里巴巴 咨询QQ:1337192913(小公子)

Qt4.8.5 开发环境搭建【完整流程】

Qt4.8.5 开发环境搭建[完整流程]关于编译出现的问题,我另开一贴再次解决. 1.首先在 ubuntu10.04 系统的/home/ye 目录中,创建一个 Qt 文件夹,复制文件qt-everywhere-opensource-src-4.8.5.tar.gz 到 Qt 文件夹中,并且解压: $ tar –zxvf qt-everywhere-opensource-src-4.8.5.tar.gz 2. 编译 qt 需要 g++,在终端输入 g++-v,如果出现如下图所示,说明已经安装了 g

一个完整的基础网站架构搭建范例:BIND+NGINX+APACHE

最近在学习网站架构的搭建,自己用4台虚拟机搭建了一个简单的网站架构,非常简单,适合入门. 下面这个示例使用BIND9做DNS服务器,NGINX做负载均衡,后台服务器是APACHE.安装过程就不说了,直接贴配置,让初学者对网站架构有个初步的了解. 四台机器的IP 分别是: 192.168.1.104--DNS服务器+NGINX做负责均衡 192.168.1.105--PAACHE服务器 192.168.1.110--PAACHE服务器 192.168.1.111--PAACHE服务器 ======

react全家桶从0搭建一个完整的react项目(react-router4、redux、redux-saga)

react全家桶从0到1(最新) 本文从零开始,逐步讲解如何用react全家桶搭建一个完整的react项目.文中针对react.webpack.babel.react-route.redux.redux-saga的核心配置会加以讲解,通过这个项目,可以系统的了解react技术栈的主要知识,避免搭建一次后面就忘记的情况. 从webpack开始 思考一下webpack到底做了什么事情?其实简单来说,就是从入口文件开始,不断寻找依赖,同时为了解析各种不同的文件加载相应的loader,最后生成我们希望的

ssh项目搭建后的简化

SSH项目搭建后的简化 上次说完ssh框架的搭建,这个框架本身没什么问题,但可以通过使用spring注解来使代码更加简洁.提高阅读性. 一.在原来的框架上简化了以下几点: 1. 原来的属性set注入改为注解 2. 原来的Connection(连接数据库)包改为jdbc.properties文件配置 3.由于加入hibernate之后我们不需要创建数据库,但是向数据库里插入数据还是得自己写,以下就是插入语句: insert into news(title,content,begintime,use

hadoop多次格式化后,导致datanode启动不了,怎么办?(伪分布式)

根据当初 hadoop 安装目录下 conf 目录的 core-site.xml 的设置,找到该目录: 进入该目录 在 data 和 name 文件夹下均有  current 文件夹 ,和 current 文件夹下有 VERSION 文件 主要要做的是使这两个文件中的 namespaceID 相同 接下来就是修改 data 里的该文件文件: 进入到该目录下: 编辑文件: 保存,退出 重启电脑,启动 hadoop 守护进程 到此成功恢复!!! 来自为知笔记(Wiz) hadoop多次格式化后,导致

ftp搭建后外网无法连接和访问阿里云服务器(非软件)

阿里云服务器由于性价比高,是不少企业建站朋友们的首选.而在购买阿里云服务器后,不少客户反映其在搭建FTP后出现外网无法访问的问题,这里特意搜集整理了关于ftp搭建后外网无法连接和访问的问题,提供以下解决方法. 问题原因一:购买的阿里云ECS未开放外网访问端口. 解决方法:开放端口. 登录阿里云ECS服务器控制面板,[网络和安全]->[安全组],在右边选择[配置规则]->[添加安全组规则],协议选全部,授权对象填0.0.0.0/0 点击确定后,再试一下外网访问FTP,是不是已经可以正常访问了?

嵌入式linux开发环境搭建(四)——Samba服务器的搭建

嵌入式linux开发环境搭建(四)--Samba服务器的搭建 linux系统:ubuntu Server 12.04 安装流程如下: 1.安装 sudo apt-get install samba samba-common 2.修改配置文件/etc/samba/smb.conf [samba] comment = Samba Server browseable = yes path = /home/samba printable = no writable = yes write list =

Lamp环境搭建 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ---之Mysql与PHP环境的搭建

Lamp环境搭建 ---之Mysql与PHP环境的搭建 第一部分:足够的磁盘空间 在前期我们用快照建立的虚拟机磁盘空间只有8G,而Mysql至少需要20G的磁盘空间,所以我们首先就要进行磁盘扩容. ###磁盘扩容: 分区>>pvcreate>>vgextend>>lvextend 增加一块20G的虚拟磁盘/dev/vdb,并把全部空间用做扩展空间: #分区: #扩展逻辑卷 ##扩展完之后用lvs 和vgs查看.两者都扩展了,但是用df -h 查看,并没有,需要刷新一下,