wordpress文章调用标签,seo网络推广技术员招聘,wordpress用户注册插件汉化,深圳市造价信息网官网入口搭建Hadoop环境( 我以hadoop 2.7.3 为例, 系统为 64bit Ubuntu14.04 ) hadoop 2.7.3 官网下载 , 选择自己要安装的版本。注意每个版本对应两个下载选项source和binary#xff0c;我们暂时下载binary,我们下载编译好的文件hadoop-2.7.3.tar.gz , 解压后为 hadoop-2.7.3 , 这个可…搭建Hadoop环境( 我以hadoop 2.7.3 为例, 系统为 64bit Ubuntu14.04 ) hadoop 2.7.3 官网下载 , 选择自己要安装的版本。注意每个版本对应两个下载选项source和binary我们暂时下载binary,我们下载编译好的文件hadoop-2.7.3.tar.gz , 解压后为 hadoop-2.7.3 , 这个可以直接安装部署. ( 如果下载源代码文件 hadoop-2.7.3-src.tar.gz , 需要先编译后才能进行安装部署. ) Hadoop有三种安装部署模式,分别是:第一,单机安装部署;第二,伪分布式安装部署;第三,全分布式安装部署. 我们还是以hadoop-2.7.3为例 第一以及第二在单个节点上部署集群,参见官网 Hadoop设置单个节点集群。 参考 Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04 第三是要在多个节点上进行部署集群,参见官网 Hadoop集群安装 安装hadoop前的准备工作 (1) 安装jdk 参见我的博客 安装JDKEclipseMavenwindows系统和linux系统 (2) 安装openssl-server 集群、单节点模式都需要用到 SSH 登陆类似于远程登陆你可以登录某台 Linux 主机并且在上面运行命令Ubuntu 默认已安装了 SSH client此外还需要安装 SSH server ( 或者直接 sudo apt-get install openssh ) $ sudo apt-get install openssh-server 安装后可以使用如下命令登陆本机 $ ssh localhost 此时会有如下提示(SSH首次登陆提示)输入 yes 。然后按提示输入密码 这样就登陆到本机了。 (3) 免密码登陆 但这样登陆是需要每次输入密码的我们需要配置成SSH无密码登陆比较方便。 单台机器的无密码登录( 登录 localhost ): ( 单机安装部署以及伪分布式安装部署 ) 首先退出刚才的 ssh就回到了我们原先的终端窗口然后利用 ssh-keygen 生成密钥并将密钥加入到授权中 $ exit # 退出刚才的 ssh localhost$ cd ~/.ssh/ # 若没有该目录请先执行一次ssh localhost
$ ssh-keygen -t rsa # 会有提示都按回车就可以
$ cat ./id_rsa.pub ./authorized_keys # 加入授权 此时再用 ssh localhost 命令无需输入密码就可以直接登陆了 还有多台机器间的无密码登录: ( 全分布式安装部署 ) 安装Hadoop2 接下来我们安装hadoop到/usr/local/目录下, ( 也可以是其他目录 ) $ cd /usr/local
$ sudo cp ~/Desktop/hadoop-x.x.x.tar.gz . //别忽视最后的点代表当前目录
$ sudo tar -zxvf hadoop-x.x.x.tar.gz
$ sudo mv hadoop-x.x.x hadoop //简化名字而已,改不改都行$ sudo chown -R hadoop ./hadoop // 修改文件权限Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用成功则会显示 Hadoop 版本信息 $ cd /usr/local/hadoop
$ ./bin/hadoop version 配置全局变量: $ sudo vim /etc/profile // 设置全局变量, 不配置的话只能命令所在的文件夹下运行 添加如下代码 export HADOOP_HOME/usr/local/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR$HADOOP_HOME/lib/native
export HADOOP_OPTS-Djava.library.path$HADOOP_HOME/lib
export PATH$HADOOP_HOME/bin:$PATH 如果出现链接错误请关闭防火墙 service iptables save
service iptables stop
chkconfig iptables off 1 单机安装部署 Hadoop 默认模式为非分布式模式无需进行其他配置即可运行。非分布式即单 Java 进程方便进行调试。( 可以运行 bin 下的命令, 但不能用 sbin 下的start-all.sh ) , 比如可以用 bin/hadoop version 查看hadoop版本号. 也可以按如下配置Hadoop. 配置Hadoop 更改/usr/local/hadoop/etc/hadoop下的 hadoop-env.sh 文件。(我的jdk也是安装在/usr/lib/jvm下的), 还可以修改 mapred-env.sh 以及 yarn-env.sh 文件 #The java implementation to use.
#export JAVA_HOME${JAVA_HOME}
export JAVA_HOME/usr/lib/jvm/java core-site.xml文件配置 configurationpropertynamefs.default.name/namevaluehdfs://localhost:9000/value/property/configuration hdfs-site.xml文件配置 --更改hadoop默认的副本个数由于我们是单节点所以改为只有一个副本就好--configurationpropertynamedfs.replication/namevalue1/value/property/configuration mapred-site.xml文件配置 configurationpropertynamemapreduce.framework.name/namevalueyarn/value/property/configuration yarn-site.xml文件配置 configurationpropertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/property/configuration 2 伪分布式安装部署 Hadoop 可以在单节点上以伪分布式的方式运行Hadoop 进程以分离的 Java 进程来运行节点既作为 NameNode 也作为 DataNode同时读取的是 HDFS 中的文件。Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式每个配置以声明 property 的 name 和 value 的方式来实现。 配置Hadoop 更改/usr/local/hadoop/etc/hadoop下的 hadoop-env.sh 文件。(我的jdk也是安装在/usr/lib/jvm下的), 还可以修改 mapred-env.sh 以及 yarn-env.sh 文件 #The java implementation to use.
#export JAVA_HOME${JAVA_HOME}
export JAVA_HOME/usr/lib/jvm/java core-site.xml文件配置 ( 为hdfs的工作目录可以不设默认为hadoop的tmp目录下重启后数据就会消失下次还得重新格式化 ) configuration propertynamefs.defaultFS/name valuehdfs://localhost:9000/value /propertypropertynamehadoop.tmp.dir/namevaluefile:/usr/local/hadoop/tmp/valuedescriptionAbase for other temporary directories./description/property/configuration hdfs-site.xml文件配置 configurationpropertynamedfs.replication/namevalue1/value/propertypropertynamedfs.namenode.name.dir/namevaluefile:/usr/local/hadoop/tmp/dfs/name/value/propertypropertynamedfs.datanode.data.dir/namevaluefile:/usr/local/hadoop/tmp/dfs/data/value/property/configuration mapred-site.xml文件配置 configurationproperty namemapreduce.framework.name/name valueyarn/value /property /configuration yarn-site.xml文件配置 configurationproperty nameyarn.nodemanager.aux-services/name valuemapreduce_shuffle/value /property /configuration 配置完成后执行 NameNode 的格式化:( 只能进行一次格式化, 否则会出错 ) $ ./bin/hdfs namenode -format 成功的话会看到 “successfully formatted” 和 “Exitting with status 0” 的提示若为 “Exitting with status 1” 则是出错。 如果在这一步时提示 Error: JAVA_HOME is not set and could not be found. 的错误则说明之前设置 JAVA_HOME 环境变量那边就没设置好请按教程先设置好 JAVA_HOME 变量否则后面的过程都是进行不下去的。 接着开启所有的守护进程。 $ ./sbin/start-all.sh 若出现如下SSH提示输入yes即可。 启动时可能会出现如下 WARN 提示WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable。该 WARN 提示可以忽略并不会影响正常使用该 WARN 可以通过编译 Hadoop 源码解决。 启动完成后可以通过命令 jps 来判断是否成功启动若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode” , ResourceManager 和 NodeManager如果 SecondaryNameNode 没有启动请运行 sbin/stop-all.sh 关闭进程然后再次尝试启动尝试。如果没有 NameNode 或 DataNode 那就是配置不成功请仔细检查之前步骤或通过查看启动日志排查原因。 成功启动后可以访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息还可以在线查看 HDFS 中的文件。 ( 类似下图的效果 ) 3 全分布式安装部署 包括单台机器的虚拟机部署以及多个节点(即多台机器)的部署 3.1 单台机器的虚拟机安装部署 hadoop学习通过虚拟机安装hadoop完全分布式集群 , 虚拟机安装 Hadoop , VM虚拟机CentOS下hadoop集群安装过程 , 全分布式的Hadoop虚拟机安装 , 3.2 多个节点(即多台机器)的安装部署 这个和虚拟机安装部署类似,只不过是虚拟机是一台机器虚拟出多台机器, 而多台机器的安装是实实在在的有多个机器. 3.1 和 3.2 如下所式: ( 3.1 比3.2 多出 安装Vmware WorkStation软件 以及 在虚拟机上安装linux操作系统 ) 准备4个(虚拟)机器节点 配置好jdk以及ssh免密码登录之后. 一般HDFS的文件块默认是3个备份, 所有至少有3个节点. 而且用户名最好保持一致, 我的用户名设置为 hadoop ,我这里有4台机器,所以在准备好这4个结点之后需要分别将linux系统的主机名重命名重命名主机名的方法 $ vim /etc/hostname 通过修改hostname文件即可这4个点结均要修改以示区分: 以下是我对4个结点的ubuntu系统主机分别命名为master, node1, node2, node3 安装过程主要有以下几个步骤(1) 配置hosts文件(2) 建立hadoop运行帐号(3) 配置ssh免密码连入(4) 下载并解压hadoop安装包(5) 配置namenode,修改site文件(6) 配置hadoop-env.sh文件(7) 配置masters和slaves文件(8) 向各节点复制hadoop(9) 格式化namenode(10) 启动hadoop(11) 用jps检验各后台进程是否成功启动(12) 通过网站查看集群情况 下面我们对以上过程各个击破吧~~ (1) 配置hosts文件 ( /etc/hosts ) 先简单说明下配置hosts文件的作用它主要用于确定每个结点的IP地址方便后续master结点能快速查到并访问各个结点。在上述4个(虚拟机)结点上均需要配置此文件。由于需要确定每个结点的IP地址所以在配置hosts文件之前需要先查看当前虚机结点的IP地址是多少可以通过ifconfig命令进行查看( 假设所有主机都在192.168.1.X 网段内 )如实验中master结点的IP地址为192.168.1.100, node1结点的IP地址为192.168.1.101, node2结点的IP地址为192.168.1.102, node3结点的IP地址为192.168.1.103. 如果IP地址不对可以通过ifconfig命令更改结点的物理IP地址示例如下: hadoopmaster:~$ sudo ifconfig eth0 192.168.1.100 通过上面命令可以将IP改为192.168.1.100。如果觉得这样做麻烦,可以固定IP. 将每个结点的IP地址设置完成后就可以配置hosts文件了hosts文件路径为 /etc/hosts我的hosts文件配置如下大家可以参考自己的IP地址以及相应的主机名完成配置, 每台机器都一样,这里以master主机为例: 127.0.0.1 localhost
#127.0.0.1 master192.168.1.100 master
192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3 (2) 建立hadoop运行帐号 即为hadoop集群专门设置一个用户组及用户这部分比较简单参考示例如下 $ sudo groupadd hadoop //设置hadoop用户组
$ sudo useradd –s /bin/bash –d /home/hadoop –m hadoop –g hadoop –G admin //添加一个hadoop用户此用户属于hadoop用户组且具有admin权限。
$ sudo passwd hadoop //设置用户hadoop登录密码
$ su hadoop //切换到hadoop用户中 上述4个虚机结点均需要进行以上步骤来完成hadoop运行帐号的建立。 (3) 配置ssh免密码连入 这一环节最为重要而且也最为关键因为本人在这一步骤裁了不少跟头走了不少弯路如果这一步走成功了后面环节进行的也会比较顺利。 SSH主要通过RSA算法来产生公钥与私钥在数据传输过程中对数据进行加密来保障数据的安全性和可靠性公钥部分是公共部分网络上任一结点均可以访问私钥主要用于对数据进行加密以防他人盗取数据。总而言之这是一种非对称算法想要破解还是非常有难度的。Hadoop集群的各个结点之间需要进行数据的访问被访问的结点对于访问用户结点的可靠性必须进行验证 hadoop采用的是ssh的方法通过密钥验证及数据加解密的方式进行远程安全登录操作当然如果hadoop对每个结点的访问均需要进行验证其效率将会大大降低所以才需要配置SSH免密码的方法直接远程连入被访问结点这样将大大提高访问效率。 OK废话就不说了下面看看如何配置SSH免密码登录吧~~ 参见 ssh 免密码登录 , ssh 免密码登录1 , ssh 免密码登录2 ,其中在第一个链接 ssh 免密码登录 中, 缺少 修改SSH配置文件 su root --登陆root用户修改配置文件 vim /etc/ssh/sshd_config --去掉下图中三行的注释 下面是我的配置: (1) 生成公钥和私钥 在每台机器上 $ ssh-keygen // 等同于ssh-keygen -t rsa 运行上面的命令后系统会出现一系列提示可以一路回车,例如 $ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/glowd/.ssh/id_rsa): Enter
// 特别说明要不要对私钥设置口令passphrase如果担心私钥的安全可以设置一个。没有特殊需求直接Enter为空 运行结束以后 默认在 ~/.ssh目录生成两个文件 id_rsa 私钥 id_rsa.pub 公钥 (2) 导入公钥到认证文件,更改权限 导入本机 $ cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys 导入本机后就可以无密码登录localhost $ ssh localhost 导入要免密码登录的服务器, 我们以 master (192.168.1.100 ) 和 node1(192.168.1.101 ) 为例, 这之前已经设置/etc/hosts ,让主机名和IP对应, 这样主机名既是IP, 否则下面的主机名要用IP 代替. 要想 node1 免密码登录 master, 首先将 node1 的公钥复制到远端服务器 master用户为hadoop . 把node1机下的id_rsa.pub复制到master机下在master机的.ssh/authorized_keys文件里我用scp复制。 $ scp ~/.ssh/id_rsa.pub hadoopmaster:~ 由于还没有免密码登录的所以要输入密码。 在服务器上master上, master 机把从 node1 机复制的id_rsa.pub添加到.ssh/authorzied_keys文件里。 $ cat ~/id_rsa.pub ~/.ssh/authorized_keys $ rm ~/id_rsa.pub --保险起见删除传过来的公钥 在服务器master上更改权限(必须), authorized_keys的权限要是600。 $ chmod 755 ~
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys 以上执行之后有些机器应该可以直接访问了可以测试一下. node1 机登录 master 机。 ( 用户名相同的话, 可以直接用IP, 否则要用 ssh hadoopmaster ) ssh 192.168.1.100 #ssh master 第一次登录是时要你输入yes。 现在 node1 机可以无密码登录 master 机了。 同理, 要想 master 也免密码登录 node1 , 只需要执行相同的操作, 要想 master 免密码登录 node1, 首先将 master 的公钥复制到远端服务器 node1用户为hadoop . 把master机下的id_rsa.pub复制到node1 机下在node1机的.ssh/authorized_keys文件里我用scp复制。 $ scp ~/.ssh/id_rsa.pub hadoopnode1:~ 由于还没有免密码登录的所以要输入密码。 在服务器上node1上, node1 机把从 master 机复制的id_rsa.pub添加到.ssh/authorzied_keys文件里。 $ cat ~/id_rsa.pub ~/.ssh/authorized_keys $ rm ~/id_rsa.pub --保险起见删除传过来的公钥 在服务器node1上更改权限(必须), authorized_keys的权限要是600。 $ chmod 755 ~
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys 以上执行之后有些机器应该可以直接访问了可以测试一下. master 机登录 node1 机。 ( 用户名相同的话, 可以直接用IP, 否则要用 ssh hadoopnode1 ) ssh 192.168.1.101 # ssh node1 第一次登录是时要你输入yes。 现在 master 机可以无密码登录 node1 机了。 这样, 这两台机器就可以相互免密码登录了. (3) 常见问题及解决方案 生成密钥并上传至远程主机后任然不可用. 这时打开服务器的 /etc/ssh/sshd_config 这个文件取消注释。 重启服务器的ssh服务。 #RHEL/CentOS系统
$ service sshd restart
#ubuntu系统
$ service ssh restart
#debian系统
$ /etc/init.d/ssh restart 执行ssh-copy-id 命令 $ ssh-copy-id glowd{remote ip}#如果不是默认端口22,是9001
$ ssh-copy-id -p 9001 glowd{remote ip} ..... 还有就是你的host key has just been changed即主机码变了比如node1的变了那么node2链接node1就会出问题这时候就需要把node2中的node1的码删除再重新添加。删除方法如下 ssh-keygen -f /home/hadoop/.ssh/known_hosts -R node1 (4) 前面搞定了免密码登录想想也是很激动了。但是还要写ip还要写用户名是不是又有点不爽啦。搞定用户名和端口号 找到 ~/.ssh/config 文件如果木有的话就自个儿建一个吧内容如下 Host {remote ip}
User {username}
Port {port} 现在连接就很简单了 $ ssh {remote ip} (4) 下载并解压hadoop安装包 前面已经下好了 (5) 配置 namenode,修改site文件 先完成JDK配置, 在设置JDK 以及 Hadoop 的全局环境变量. 到目前为止准备工作已经完成下面开始修改hadoop的配置文件了即各种site文件文件存放在/hadoop/etc/hadoop下主要配置core-site.xml、hdfs-site.xml、mapred-site.xml 以及 yarn-site.xml 这四个文件。 core-site.xml文件配置 configurationproperty namehadoop.tmp.dir/name valuefile:/usr/local/hadoop/tmp/value descriptionAbase for other temporary directories./description /property property namefs.default.name/name valuehdfs://master:9000/value /property /configuration hdfs-site.xml文件配置 configurationproperty namedfs.replication/name value3/value /property property namedfs.namenode.name.dir/name valuefile:/usr/local/hadoop/tmp/dfs/name/value /property property namedfs.datanode.data.dir/name valuefile:/usr/local/hadoop/tmp/dfs/data/value /property property namedfs.namenode.http-address/name valueMaster:50070/value /property /configuration mapred-site.xml文件配置 configurationproperty namemapreduce.framework.name/name valueyarn/value /property property namemapreduce.jobhistory.address/name valueMaster:10020/value /property property namemapreduce.jobhistory.webapp.address/name valueMaster:19888/value /property /configuration yarn-site.xml文件配置 configuration property nameyarn.resourcemanager.hostname/name valuemaster/value /propertyproperty nameyarn.nodemanager.aux-services/name valuemapreduce_shuffle/value /property property nameyarn.nodemanager.aux-services.mapreduce.shuffle.class/name valueorg.apache.hadoop.mapred.ShuffleHandler/value /property property nameyarn.log-aggregation-enable/name valuetrue/value descriptionConfiguration to enable or disable log aggregation/description /property /configuration (6) 配置hadoop-env.sh文件 更改/usr/local/hadoop/etc/hadoop下的 hadoop-env.sh 文件。(我的jdk也是安装在/usr/lib/jvm下的), 还可以修改 mapred-env.sh 以及 yarn-env.sh 文件 #The java implementation to use.
#export JAVA_HOME${JAVA_HOME}
export JAVA_HOME/usr/lib/jvm/java (7) 配置slaves文件 (在 /usr/local/hadoop/etc/hadoop 下) slaves文件里默认有localhost , 修改成如下: # localhost
master #可有可无, 有的话 master 既是主节点也作从节点,存储HDFS数据块. 没有的话,master只是主节点, 不进行数据块存储.
node1
node2
node3 (8) 向各节点复制hadoop ( 假设以上的hadoop 配置文件都是在 master 上配置) 这时向 node1, node2 以及 node3 节点复制hadoop ( 以 node1 为例 ) $ sudo scp -r /usr/local/hadoop node1:~ 然后进入 node1 , 把 hadoop 移动到 相应的位置, 在退出 $ ssh node1
$ sudo mv hadoop /usr/local/hadoop
$ exit 然后 node2 以及 node3 同样. 这样结点 node1 和结点 node2 以及 node3 也安装了配置好的hadoop软件了。 (9) 格式化namenode 一定要在主节点 master 上进行格式化, 而且只能进行一次, 否则会出错. 我们已经配置hadoop为全局变量. $ hadoop namenode -format #如果没有设置全局变量,在 /usr/local/hadoop 目录下输入 ./bin/hadoop namenode -format 注意成功的话会看到 “successfully formatted” 和 “Exitting with status 0” 的提示若为 “Exitting with status 1” 则是出错。 如果在这一步时提示 Error: JAVA_HOME is not set and could not be found. 的错误则说明之前设置 JAVA_HOME 环境变量那边就没设置好请按教程先设置好 JAVA_HOME 变量否则后面的过程都是进行不下去的。 (10) 启动hadoop 这一步也在主结点master上进行操作 $ start-all.sh #如果没有设置全局变量,在 /usr/local/hadoop 目录下输入 ./sbin/start-all.sh (11) 用jps检验各后台进程是否成功启动 在主结点master上查看namenode,resourcemanager,secondarynamenode进程是否启动。 $ jps 如果出现以上进程则表示正确。 在 node1 和 node2 以及 node3 结点了查看nodemanager和datanode进程是否启动。 ( 以node1 为例 ) $ jps 如果出现以上进程则表示正确。 node2 和 node3 也是 . 进程都启动成功了。恭喜~~~ (12) 通过网站查看集群情况 在浏览器中输入http://192.168.1.100:50030网址为master结点所对应的IP ( http://master:50030 ,这两个等同) 在浏览器中输入http://192.168.1.100:50070网址为master结点所对应的IP 在浏览器中输入http://192.168.1.100:8088网址为master结点所对应的IP 至此hadoop的完全分布式集群安装已经全部完成 转载于:https://www.cnblogs.com/zhangchao0515/p/7097463.html