Hadoop伪分布安装配置
- 格式:doc
- 大小:1.25 MB
- 文档页数:10
hadoop伪分布式集群搭建与安装(ubuntu系统)1:Vmware虚拟软件⾥⾯安装好Ubuntu操作系统之后使⽤ifconfig命令查看⼀下ip;2:使⽤Xsheel软件远程链接⾃⼰的虚拟机,⽅便操作。
输⼊⾃⼰ubuntu操作系统的账号密码之后就链接成功了;3:修改主机的名称vi /etc/hostname和域名和主机映射对应的关系 vi /etc/hosts,改过之后即⽣效,⾃⼰可以ping⼀下,我这⾥ip对应master,⽐如ping master之后发现可以ping通即可;(centos操作系统修改主机名命令:vi /etc/sysconfig/network,修改内容为HOSTNAME=master)4:修改过主机名称和主机名与ip对应的关系之后;开始上传jdk,使⽤filezilla这个⼯具将jdk⽂件以及其他⽂件上传到ubuntu操作系统中;⿏标左击选中想要上传的⽂件拖到右边即可,如下所⽰:上传成功之后可以检查⼀下,这⾥默认上传到root⽬录下⾯;显⽰已经上传成功即可;5:上传之后创建⼀个⽂件夹⽤于存放上传的⽂件或者压缩包;记住-C是⼤写,⼩写的-c会报错,见下⾯的测试结果;解压缩之后可以进到⾃⼰创建的hadoop⽬录下⾯看看效果,确定已经解压缩了;6:解压缩jdk之后开始将java添加到环境变量中(ubuntu操作系统中配置jdk的环境变量):进去之后按shift+g到最后⾯,到最前⾯双击g,点击a/s/i这三个任意⼀个字母进⼊命令⾏模式,可以对配置⽂件进⾏修改;配置的⽅式有很多种,这只是其中⼀种。
配置好jdk之后可以测试⼀下是否配置成功,如下图,如果没有使⽤source /etc/profile刷新配置是⽆法测试成功的;使⽤source /etc/profile刷新配置之后查看java的版本即可以查看出来;这⾥出了⼀点⼩插曲,我的linux版本的jdk第⼀次好像不能⽤,报了错,以为没配置好呢,后来才发现是jdk错了,所以这⾥都⼩⼼点;7:开始上传hadoop和解压缩hadoop;上传和上传jdk⼀样的做法,这⾥不做多叙述;查看hadoop的⽬录:hadoop-2.4.1/share/hadoop⾥⾯是核⼼jar包;8:解压缩之后开始配置hadoop,找到如下所⽰的路径;修改如下⼏个配置⽂件;详细修改见如下配置所⽰:修改的第⼀个配置⽂件,hadoop-env.sh;修改的内容如下所⽰:主要修改就是jdk的JAVA_HOME;如果忘记⾃⼰jdk的⽬录可以执⾏命令echo $JAVA_HOME复制⼀下结果即可;修改第⼆个配置⽂件:core-site.xml;修改的内容如下所⽰:因为是伪分布式,所以节点配置直接配置主机名了;<!-- 指定HADOOP所使⽤的⽂件系统schema(URI),HDFS的⽼⼤(NameNode)的地址 --><property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property><!-- 指定hadoop运⾏时产⽣⽂件的存储⽬录 --><property><name>hadoop.tmp.dir</name><value>/home/hadoop/hadoop-2.4.1/tmp</value></property>修改第三个配置⽂件:hdfs-site.xml修改的内容如下所⽰:<!-- 指定HDFS副本的数量 --><property><name>dfs.replication</name><value>1</value></property>修改第四个配置⽂件:⾸先将mapred-site.xml.template修改为mapred.site.xml,然后就将开始修改配置⽂件;修改内容如下所⽰:1 <!-- 指定mr运⾏在yarn上 -->2 <property>3 <name></name>4 <value>yarn</value>5 </property>修改第五个配置⽂件:yarn-site.xml;修改的内容如下所⽰:⾄此配置基本结束;<!-- 指定YARN的⽼⼤(ResourceManager)的地址 --><property><name>yarn.resourcemanager.hostname</name><value>master</value></property><!-- reducer获取数据的⽅式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>修改第六个配置⽂件:vi slaves修改的内容即是⾃⼰的主机名称:9:查看⼀下ubuntu下⾯的防⽕墙的状态和关闭开启防⽕墙:下图所⽰分别是关闭防⽕墙,查看防⽕墙的状态,开始防⽕墙和查看防⽕墙的状态;10:为了执⾏hadoop命令⽅便,同样配置⼀下hadoop的环境变量;同样vi /etc/profile ,配置如下所⽰:配置保存之后记得source /etc/profile刷新配置;11:格式化namenode(是对namenode进⾏初始化)执⾏格式化命令后看到successfully表⽰格式化成功;12:启动hadoop,先启动HDFS,sbin/start-dfs.sh;再启动YARN,sbin/start-yarn.sh;启动过程中输出⼤概三次yes和密码;输⼊即可;13:验证是否启动成功,使⽤jps命令验证;查看有⼏个进程;分别是启动start-dfs.sh和start-yarn.sh的效果;14:搭建好伪分布式集群之后可以在window访问集群的web服务;注意:如果在window浏览器⽆法访问的时候(jps正常启动),这个时候估计是linux操作系统的防⽕墙的问题:service iptables stop : 关闭防⽕墙service iptables status : 查看防⽕墙的状态service iptables start : 开启防⽕墙15:简单测试⼀下,将⼀个⽂件上传到hdfs上⾯,如下所⽰:假如你这样书写hadoop fs -put jdk-7u65-linux-i586.tar.gz hdfs://master:9000这个9000后⾯没有这个/那么你在浏览器是看不到任何⽂件的;去web服务查看效果如下所⽰:就是刚刚上传的⽂件;16:将⽂件从hdfs分布式集群中下载下来:效果如下所⽰:17:使⽤hadoop⾃带的mapreduce程序来测试mapreduce的效果:计算圆周率的程序;简单使⽤⼀下mapreduce,以计算单词的个数为例;创建⼀个count.txt⽤于测试⾥⾯的单词重复的次数:因为数据是在集群上⾯跑的,所以⽂件要放到集群上⾯;⾸先需要创建⼀个⽂件夹,⽤于存放⽂件;创建好的⽂件夹可以在web服务器⾥⾯查看,如下所⽰:将新建的count.txt⽂件放到input⽂件夹⾥⾯,如下所⽰:开始使⽤mapreduce的⾃带案例进⾏单词重读测试:可以查询执⾏之后出现的结果:也可以直接去web服务器查看执⾏的结果;可以使⽤命令查看执⾏的结果,如下所⽰:HDFS的⼤体实现的思想:1:hdfs是通过分布式集群来存储⽂件,为客户端提供了⼀个便捷的访问⽅式,就是⼀个虚拟的⽬录结构2:⽂件存储到hdfs集群中去的时候是被切分成block块的3:⽂件的block存放在若⼲台datanode节点上的4:hdfs⽂件系统中的⽂件于真实的block之间有映射关系,由namenode管理5:每⼀个block在集群中会存储多个副本,好处是可以提⾼数据的可靠性,还可以提供访问的吞吐量;18:hdfs常使⽤的命令:1 hadoop fs 显⽰hadoop 的fs的功能 2 hadoop fs -ls / 列举某⽬录下⾯的⽂件夹3 hadoop fs -lsr 列举某⽬录下⾯的⽂件夹及其⽂件夹⾥⾯的⽂件4 hadoop fs -mkdir /user/hadoop 在user⽂件夹下⾯创建⼀个hadoop⽂件夹5 hadoop fs -put a.txt /user/hadoop/ 将a.txt⽂件上传到user⽂件夹下⾯的hadoop⽂件夹下⾯6 hadoop fs -get /user/hadoop/a.txt / 获取到user⽂件夹下⾯的hadoop⽂件夹下⾯的a.txt⽂件7 hadoop fs -cp /原路径 /⽬标路径 拷贝⽂件,从原路径拷贝到⽬标路径 8 hadoop fs -mv /原路径 /⽬标路径 从原路径移动到⽬标路径9 hadoop fs -cat /user/hadoop/a.txt 查看a.txt⽂件⾥⾯的内容10 hadoop fs -rm /user/hadoop/a.txt 删除user⽂件夹下⾯的hadoop⽂件夹下⾯的a.txt⽂件11 hadoop fs -rm -r /user/hadoop/a.txt 递归删除,⽂件夹和⽂件12 hadoop fs -copyFromLocal /本地路径 /⽬的路径 与hadoop fs -put功能类似。
1、修改主机名和用户名第一步:改本地为neusoft-master,修改主机名第二步:为了使Hadoop节点之间能互相访问,改默认为192.168.191.130 neusoft-master第三步:centos修改主机名执行useradd hadoop 添加以Hadoop为用户名的用户,执行passwd hadoop修改用户的密码2、配置静态IP地址第四步: vi /etc/sysconfig/network-scripts/ifcfg-eth0或图形界面配置:点击设置[root@neusoft-master ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0TYPE=EthernetUUID=02eb9342-c828-49a5-9e23-64e8c2d5e05eONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=staticIPADDR=192.168.191.130NETMASK=255.255.255.0GATEWAY=192.168.191.2PREFIX=24DNS1=8.8.8.8HWADDR=00:50:56:2C:72:E9DEFROUTE=yesIPV4_FAILURE_FATAL=yesIPV6INIT=noNAME="System eth0"LAST_CONNECT=14828518173、配置SSH无密码连接目录:1.修改主机名和用户名2.配置静态IP地址3.配置SSH无密码连接4.安装JDK1.75.配置Hadoop6.安装Mysql7.安装Hive8.安装Hbase9.安装Sqoop********************1.修改主机名和用户名修改主机名:Centos中通过vi /etc/sysconfig/network 修改HOSTNAME=∙为了使Hadoop节点之间能互相访问,需要修改hosts文件,root用户执行并且所有节点均需执行vi /etc/hosts∙ centos修改主机名执行useradd hadoop 添加以Hadoop为用户名的用户,执行passwd hadoop修改用户的密码2. 配置静态IP地址[root@neusoft-master ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0TYPE=EthernetUUID=02eb9342-c828-49a5-9e23-64e8c2d5e05eONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=staticIPADDR=192.168.191.130NETMASK=255.255.255.0GATEWAY=192.168.191.2PREFIX=24DNS1=8.8.8.8HWADDR=00:50:56:2C:72:E9DEFROUTE=yesIPV4_FAILURE_FATAL=yesIPV6INIT=noNAME="System eth0"LAST_CONNECT=1482851817注意:如果多台虚拟机复制会有问题,我罗列了遇到的问题,如果没有图形界面网络配置更简单,如果沒有問題請跳过方法1:利用图形界面解决(1)图形界面找见图标,编辑(2)删除所有网络(3)根据虚拟机配置ip,网管等解决Error:No suitable device found: no device found for connection "System eth0"注意:VM的虚拟网卡VMnet8一定需要在windows操作系统的网络中开启,同时在虚拟机中配置正确的子网掩码及网关存在的问题点1:windows上的网络配置存在的问题点2:VM软件配置方法2:问题复述:复制好的虚拟机,启动登陆进去(用户名和密码跟之前那台是一样的),修改好IPADDR,然后网卡重启出现问题?#service network restart出现问题:Error:No suitable device found: no device found for connection "System eth0" 如图所示:#ifup eth0出现: eth0: unknown interface: No such device 这样的问题,网卡都启动不了,出现问题.解决:(1)我们在界面点击Network Adapter Remove删除网卡,如图所示:(2)添加一个新的网卡,就是点击add,这时跟前面一台的MAC Address 就不一样,如图所示:(3)复制地址(4)重新启动虚拟机,然后进入到/etc/udev/rules.d/目录#cat 70-persistent-net.rules里面的信息跟我们Network Adapter的MAC Address地址一样,如图所示:(5)进入/etc/sysconfig/network-scripts/目录#vi ifcfg-eth0把HWADDR修改成Network Adapter的MAC Address地址一样,如图所示:(6)重启网卡,这时就能正常启动,如图所示:3.配置SSH无密码连接在Centos中首先关闭防火墙service iptables stop 查看防火墙:chkconfig iptables off(1)检查ssh是否安装yum install sshyum install rsync #远程同步数据的工具(2)启动SSH服务命令service sshd restart检查SSH是否已经安装成功rpm -qa | grep openssh rpm -qa | grep rsync 出现相应信息即可(3)生成SSH公钥对于伪分布式环境只需要本机链接本机即可:主节点执行:ssh-keygen -t rsa一路回车即可,最后显示的图形是公钥的指纹加密。
【⼤数据】Hadoop的伪分布式安装这⼏天开始学习⼤数据,这离不开这个Apache的经典项⽬。
由于Hadoop这个项⽬⼀般都是以集群⽅式运作,⾃⼰学习却没有如此庞⼤的资源,因此根据官⽹介绍,我这⾥采⽤伪分布式集群进⾏安装,即单节点,多个进程扮演不同⾓⾊。
准备虚拟机软件VMware® Workstation 15 Pro(版本为15.0.0 build-10134415)这⾥提供⼀个链接,⾃⼰⾃⾏操作下载哈,Linux系统CentOS 7 64位系统(这⾥提供)Hadoop框架包这⾥采⽤3.3.0版本(这⾥提供)⼀些常⽤的FTP、SSH客户端推荐采⽤FileZilla Client(FTP客户端)【】、MobaXterm(SSH客户端)【】环境搭建系统环境搭建(1)安装Vmware软件,并进⾏破解,具体过程在给的链接中,这⾥不赘述。
(2)在Vmware中添加CentOS7系统,下图是我已经安装好的虚拟机界⾯,安装⼀个虚拟机就够,可以稍微将该虚拟机的配置调⾼⼀些,我给了内存为4G,存储为20G。
(3)将系统镜像源转换为国内,具体操作请见这⾥插个题外话,因为我们⽬前已经有了ssh⼯具以及ftp⼯具,因此,如果觉得虚拟机界⾯太丑,可以采⽤ssh的登陆⽅式,使⽤ftp⼯具向服务器拉取或推送⽂件,更加⽅便。
具体如何使⽤,我这⾥不做赘述,如果不了解的⼩伙伴,可以下⽅留⾔,多了的话我会再写⼀篇博⽂普及⼀下。
(4)安装Java环境,使⽤如下命令yum install -y java-1.8.0-openjdk-devel.x86_64安装后,有如下提⽰证明安装成功因为采⽤yum命令安装java后,会默认保存⾄/usr/lib/jvm/中,因此在配置环境变量的时候需要⽤到。
输⼊命令:vim /etc/profile在最后添加如下语句#set java environmentJAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/JRE_HOME=$JAVA_HOME/jreCLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binexport JAVA_HOME JRE_HOME CLASS_PATH PATH退出vim编辑器后,输⼊命令:source /etc/profile(5)关闭centos7系统防⽕墙systemctl stop firewalld #关闭防⽕墙服务⽹systemctl disable firewalld #设置防⽕墙服务开机不启动Hadoop环境搭建(1)使⽤sftp程序将下载后的hadoop压缩⽂件上传⾄/root⽬录下,可新建⼀个⽂件叫hadoop_files,然后对该⽂件进⾏解压,命令如下:mkdir /hadoop_filestar -zxvf hadoop-3.3.0.tar.gz -C /hadoop_files/(2)进⼊解压后的⽂件,再进⼊/etc/hadoop的⼦⽬录,修改配置⽂件。
1.安装JDK,配置环境变量(步骤省略)2.解压hadoop-2.2.0.tar.gz。
3.配置core-site.xml core-site.xml(必须配置)如果这个没有配置或者配置错误(我将hdfs写成hffs)将出现下面错误(见问题2)4.配置hdfs-site.xml hdfs-site.xml(可以不配置,采用默认)可以不设置上面3个相关目录,不设置的话,将采用默认的目录。
5.拷贝mapred-site.xml.template mapred-site.xml mapred-site.xml并配置yarn-site.xml6.配置yarn-site.xml7.修改slaves(可以不修改,采用默认)8.初始化Hadoophadoop namenode –format(已过时)hadoop-2.2.0/bin/hdfs namenode -format成功提示:9.启动start-dfs.shstart-yarn.sh共5个:NodeManager,DataNode,ResourceManager,NameNode,SecondaryNameNode 10.启动完成后运行示例:hadoop-2.2.0/bin/hadoop jar hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jarrandomwriter out执行结果:http://localhost:8088http://localhost:50070http://localhost:50090问题:1.启动时,报没有设置JAVA_HOME修改$hadoop_home/etc/hdoop/hadoop-env.sh2.启动时,报Incorrect configuration:node.servicerpc ornode.rpc-address is not configured,没有设置对core-site.xml3.运行hadoop jar$HADOOP_PREFIX/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jarrandomwriter out 报如下错误:java.io.IOException: Cannot initialize Cluster. Please check your configuration for and the correspond server addresses.at org.apache.hadoop.mapreduce.Cluster.initialize(Cluster.java:120) 原因是在mapred-site.xml(配置第5步)中配置把yarn写成了Yarn。
Hadoop伪分布式安装1.安装Hadoop(伪分布式)
上传Hadoop
将hadoop-2.9.2.tar.gz 上传到该目录
解压
ls
将Hadoop添加到环境变量
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存并退出vim
验证环境变量是否正确hadoop version
修改配置文件hadoop-env.sh
保存并退出vim
修改配置文件core-site.xml
保存并退出vim
修改配置文件hdfs-site.xml
</property>
保存并退出vim
格式化HDFS
hdfs namenode -format
格式化成功的话,在/bigdata/data目录下可以看到dfs目录
启动NameNode
启动DataNode
查看NameNode管理界面
在windows使用浏览器访问http://bigdata:50070可以看到HDFS的管理界面
如果看不到,(1)检查windows是否配置了hosts;
位于C:\Windows\System32\drivers\etc\hosts
关闭HDFS的命令
2.配置SSH免密登录生成密钥
回车四次即可生成密钥
复制密钥,实现免密登录
根据提示需要输入“yes”和root用户的密码
新的HDFS启停命令
免密登录做好以后,可以使用start-dfs.sh和stop-dfs.sh命令启停HDFS,不再需要使用hadoop-daemon.sh脚本
stop-dfs.sh
注意:第一次用这个命令可能还是需要输入yes,按提示输入即可。
超详细解说Hadoop伪分布式搭建单节点伪分布式Hadoop配置(声明:文档里面需要用户输入的均已斜体表示)第一步:安装JDK因为 Hadoop 运行必须安装 JDK 环境,因此在安装好 Linux 后进入系统的第一步便是安装 JDK ,安装过程和在 Windows 环境中的安装步骤很类似,首先去Oracle 官网去下载安装包,然后直接进行解压。
我自己解压在路径 /usr/jvm 下面,假如你的安装包现在已经下载在 jvm 文件夹下面,然后按 Ctrl+Alt+t 进去命令行,然后输入cd /usr/jvm进入到jvm文件夹下面,然后再输入如下命令进行解压:sudo tar -zxvf jdk-7u40-linux-i586.tar.gz第二步:配置环境变量解压结束以后,像在Windows 系统中一样,需要配置环境变量,在 Ubuntu 中设置环境变量的过程为打开文件 /etc/profile ,因为权限的问题,因此在命令行需要输入的是sudo gedit /etc/profile然后在根据提示输入用户密码即可,然后在文件最下面添加如下:export JAVA_HOME=/usr/jvm/jdk1.7.0_40export CLASSPATH=".:$JAVA_HOME/lib:$JAVA_HOME/jre/lib $CLASSPATH"export PATH="$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/ hadoop/hadoop-1.2.1/bin:$PATH"上面这三个以单词export 开始的三个语句就类似于我们在Windows 中的环境变量中设置一样,而且在这个里面和 Windows 中不同的是,在Windows 中使用“;” 号来表示分隔,但是在Ubuntu 中是以“:” 号来表示分隔。
还需要注意的是,上面的路径都是我自己配置的时候的路径,因为我的JDK 解压在/usr/jvm 中,所以我的 JAVA_HOME 设置的是那个路径,而且如果安装的 JDK 版本不同那么后面的也不一样。
Hadoop:Hadoop单机伪分布式的安装和配置因为lz的Linux系统已经安装好了很多开发环境,可能下面的步骤有遗漏。
之前是在Docker中配置的Hadoop单机伪分布式[Hadoop:Hadoop单机伪分布式的安装和配置],并且在docker只有root用户,所有没有权限问题存在。
这里直接在linux下配置,主要是为了能用netbeans ide调试hadoop程序,并且使用的用户就是开机时登录的用户pika。
本教程配置环境:ubuntu14.04(Ubuntu 12.04 /32位、64位都ok! lz是直接使用的双系统中的linux)hadoop 2.6.4 (原生 Hadoop 2都ok!)jdk1.7.0_101(应该1.6+应该都ok!)皮皮blog基本环境配置安装和配置Java环境在主机上从Oracle官方网站下载对应版本的JDK安装包$ sudo vim ~/.bashrc 或者/etc/profile第一行“...”的path末尾加上:${JAVA_HOME}/bin,后面export路径PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"export JAVA_HOME=/opt/jdk1.8.0_73export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=$PATH:${JAVA_HOME}/bin$ sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_73/bin/java 300;sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_73/bin/javac 300;sudo update-alternatives --install /usr/bin/javah javah/opt/jdk1.8.0_73/bin/javah 300;sudo update-alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_73/bin/jar 300. ~/.bashrc 或者/etc/profile测试是否安装成功root@f26f7d459863:/#Java -version[java环境配置:安装jdk、eclipse]安装SSH、配置SSH无密码登陆集群、单节点模式都需要用到 SSH (ssh must be installed and sshd must be running to use the Hadoop scripts that manage remote Hadoop daemons,而这并没有说一定要ssh localhost登录lz亲测,运行hadoop不需要ssh localhost登录,只要安装并运行了sshd就可以了),Ubuntu 默认已安装了 SSH client,还需要安装 SSH server:pika:~$sudo apt-get install -y openssh-server编辑sshd的配置文件pika:~$sudo vim /etc/ssh/sshd_config,将其中大概88行,UsePAM参数设置成“no”启动sshd服务pika:~$sudo /etc/init.d/ssh start#每次重启都要重新启动,所以要加入到profile中开机自启pika:~$sudo vim /etc/profile其中加入一行/etc/init.d/ssh start查看ssh服务状态 pika:~$ps -e | grep ssh29856 ? 00:00:00 sshd安装后设置ssh可以使用如下命令登陆本机:ssh localhost此时会有SSH首次登陆提示,输入 no,(如果输入yes再输入密码,这样就登陆到本机了,但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便,如果进去了首先退出刚才的 ssh)。
在linux中安装Hadoop教程-伪分布式配置-Hadoop2.6.0-Ubuntu14.04注:该教程转⾃厦门⼤学⼤数据课程学习总结装好了 Ubuntu 系统之后,在安装 Hadoop 前还需要做⼀些必备⼯作。
创建hadoop⽤户如果你安装 Ubuntu 的时候不是⽤的 “hadoop” ⽤户,那么需要增加⼀个名为 hadoop 的⽤户。
⾸先按 ctrl+alt+t 打开终端窗⼝,输⼊如下命令创建新⽤户 : sudo useradd -m hadoop -s /bin/bash这条命令创建了可以登陆的 hadoop ⽤户,并使⽤ /bin/bash 作为 shell。
sudo命令 本⽂中会⼤量使⽤到sudo命令。
sudo是ubuntu中⼀种权限管理机制,管理员可以授权给⼀些普通⽤户去执⾏⼀些需要root权限执⾏的操作。
当使⽤sudo命令时,就需要输⼊您当前⽤户的密码.密码 在Linux的终端中输⼊密码,终端是不会显⽰任何你当前输⼊的密码,也不会提⽰你已经输⼊了多少字符密码。
⽽在windows系统中,输⼊密码⼀般都会以“*”表⽰你输⼊的密码字符 接着使⽤如下命令设置密码,可简单设置为 hadoop,按提⽰输⼊两次密码: sudo passwd hadoop可为 hadoop ⽤户增加管理员权限,⽅便部署,避免⼀些对新⼿来说⽐较棘⼿的权限问题: sudo adduser hadoop sudo最后注销当前⽤户(点击屏幕右上⾓的齿轮,选择注销),返回登陆界⾯。
在登陆界⾯中选择刚创建的 hadoop ⽤户进⾏登陆。
更新apt⽤ hadoop ⽤户登录后,我们先更新⼀下 apt,后续我们使⽤ apt 安装软件,如果没更新可能有⼀些软件安装不了。
按 ctrl+alt+t 打开终端窗⼝,执⾏如下命令: sudo apt-get update后续需要更改⼀些配置⽂件,我⽐较喜欢⽤的是 vim(vi增强版,基本⽤法相同) sudo apt-get install vim安装SSH、配置SSH⽆密码登陆集群、单节点模式都需要⽤到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上⾯运⾏命令),Ubuntu 默认已安装了SSH client,此外还需要安装 SSH server: sudo apt-get install openssh-server安装后,配置SSH⽆密码登陆利⽤ ssh-keygen ⽣成密钥,并将密钥加⼊到授权中: exit # 退出刚才的 ssh localhost cd ~/.ssh/ # 若没有该⽬录,请先执⾏⼀次ssh localhost ssh-keygen -t rsa # 会有提⽰,都按回车就可以 cat ./id_rsa.pub >> ./authorized_keys # 加⼊授权此时再⽤ssh localhost命令,⽆需输⼊密码就可以直接登陆了。
Hadoop伪分布式模式配置伪分布式模式: 存储采⽤分布式⽂件系统HDFS,但HDFS的名称节点和数据节点都在同⼀台机器上配置步骤:修改core-site.xml、hdfs-site.xml配置⽂件执⾏名称节点格式化启动 HadoopWeb查看Hdfs信息关闭 Hadoop配置环境变量1. 修改core-site.xml、hdfs-site.xml配置⽂件core-site.xml、hdfs-site.xml两个配置⽂件位于hadoop/etc/hadoop⽬录下hadoop@zq:/usr/local/hadoop/etc/hadoop$ lscapacity-scheduler.xml kms-log4j.properties...... ...... ......core-site.xml mapred-env.cmd...... ...... ......hdfs-site.xml ssl-server.xml.example....... ...... ......hadoop@zq:/usr/local/hadoop/etc/hadoop$修改core-site.xml⽂件的内容,将 <configuration> </configuration> 中添加属性对添加如下内容:<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>同理,修改配置⽂件hdfs-site.xml,修改后的内容:<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>.dir</name><value>file:/usr/local/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property></configuration>2. 执⾏名称节点格式化hadoop@zq:/usr/local/hadoop/etc/hadoop$ cd /usr/local/hadoop/binhadoop@zq:/usr/local/hadoop/bin$ ./hdfs namenode -format显⽰格式化成功3. 启动 Hadoop跳到/usr/local/hadoop/sbin路径下,启动 Hadoophadoop@zq:/usr/local/hadoop/sbin$ ./start-dfs.sh4. Web查看Hdfs信息打开浏览器,输⼊地址:localhost:9870注意:如果⽤的是虚拟机,在虚拟机的浏览器中本地链路访问,在Windows的浏览器中访问是访问不到的5. 关闭Hadoophadoop@zq:/usr/local/hadoop/sbin$ ./stop-dfs.sh6. 配置环境变量# 编辑环境变量hadoop@zq:~$ vim ~/.bashrc在.bashrc⽂件中追加⼀⾏export PATH=$PATH:/usr/local/hadoop/sbin# 使环境变量设置⽣效hadoop@zq:~$ source ~/.bashrc环境变量设置成功后,执⾏命令时系统会从环境变量路径中查找命令,即可以在任何路径使⽤命令例如这⾥实在hadoop⽤户⽬录下,⽽不⽤再特意到 /usr/local/hadoop/sbin/ 路径下执⾏命令。
伪分布式Hadoop+Hive+HBase搭建概念HadoopHDFS分布式存储Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。
它和现有的分布式文件系统有很多共同点。
但同时,它和其他的分布式文件系统的区别也是很明显的。
HDFS是一个高度容错性的系统,适合部署在廉价的机器上。
HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。
HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。
HDFS是Apache Hadoop Core项目的一部分。
HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。
而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。
HDFS放宽了(relax)POSIX的要求(requirements)这样可以实现流的形式访问(streaming access)文件系统中的数据。
mapReduceMapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。
概念"Map(映射)"和"Reduce(归约)",和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。
它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。
当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
hbaseHbase是运行在Hadoop上的NoSQL数据库,它是一个分布式的和可扩展的大数据仓库,也就是说HBase能够利用HDFS的分布式处理模式,并从Hadoop的MapReduce程序模型中获益。