cd /etc/sysconfig/network-scripts/
vi ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
*BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=4f24eb67-f667-4f75-b82e-c61ece9059e1
DEVICE=ens33
*ONBOOT=yes
*IPADDR=192.168.140.142 虚拟机ip
*GATEWAY=192.168.140.2 计算机默认网关
*NETMASK=255.255.255.0 计算机子网掩码
*DNS1=223.5.5.5 计算机DNS服务器
*DNS2=223.6.6.6 计算机DNS服务器
service network restart 虚拟机启用IP(ping www.baidu.com 测试连网)
vi /etc/hostname 更改虚拟机名 reboot 重启
将压缩文件传入/usr/local/hadoop,,,java/
近入文件夹 :
解压文件:tar -zxvf 被解压文件
删除压缩文件:rm -rf 别删除文件
在根目录下进入etc文件夹,在profile文件中添加环境变量(vi /etc/profile)
export JAVA_HOME=/usr/local/java/jdk1.8.0_151
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
生效环境变量(source /etc/profile)
测试 hadoop.java是否能开启
配置Hosts(vi /etc/hosts)
加入ip 对应虚拟机名(192.168.140.142 xnj142)
ssh-keygen -t rsa :建立免密
vi /etc/hosts 集群的IP,虚拟机名
ssh-copy-id 传给的IP(例:ssh-copy-id 192.168.140.142)
在/usr/local/hadoop/hadoop-2.7.5/etc/hadoop/中修改文件(vim core-site.xml,vim hdfs-site.xml,hadoop-env.sh)
vi hadoop-env.sh 中添加JAVA_HOME的环境变量
JAVA_HOME=/usr/local/java/jdk1.8.0_151
vi core-site.xml
-----单台:
<configuration>
<property>
<name>fs.default.name</name>
* <value>hdfs://192.168.140.141:9000</value>
</property>
</configuration>
<configuration>
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.140.142:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadoop-2.7.5/tmp</value>
</property>
</configuration>
vi hdfs-site.xml
-----单台:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
集群
<configuration>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--获取文件夹写入权限-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>xnj142:50090</value>
</property>
</configuration>
传送文件:scp -r /usr/local/hadoop/hadoop-2.7.5 192.168.140.144:/usr/local/hadoop/hadoop-2.7.5
在/usr/local/hadoop/目录下:scp -r hadoop-2.7.5 192.168.140.144:$PWD
hadoop namenode -format格式化
stop-dfs.sh关闭
start-dfs.sh开启
mysql安装:
yum install wget
## 下载YUM库(下载本地在传输到虚拟机)
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
## 安装YUM库
yum -y install mysql57-community-release-el7-10.noarch.rpm
## 安装数据库
yum -y install mysql-community-server
## 完成安装,重启mysql
systemctl restart mysqld
## 查找密码
grep "password" /var/log/mysqld.log
## 复制粘贴上边的密码进入数据库
mysql -uroot -p
##登入,exit退出。
## 修改密码(输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库修改密码命令)
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘123456‘;
## 解决报错
修改密码策
因为当前的密码太复杂不方便后期做实验,所以使用命令修改密码策略两种方式:
set global validate_password_policy=0;
set global validate_password_policy=LOW;
注:密码策略分四种
1、OFF(关闭) 2、LOW(低) 3、MEDIUM(中) 4、STRONG(强)
上边改完策略之后我们在改长度
SET GLOBAL validate_password_length=6;
注:执行完初始化命令后需要输入数据库root用户密码
hive配置:
## 第一个配置文件名:yarn-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_151
## 第二个配置文件名:yarn-site.xml
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>xnj142</value>
</property>
## 第三个配置文件名:mapred-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_151
## 第四个配置文件名:mapred-site.xml
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
## 启动
start-yarn.sh
start-dfs.sh
内部表
内部表(MANAGED_TABLE):表目录按照hive的规范来部署,位于hive的仓库目录/user/hive/warehouse中
create table t_customer(id int,name string,birthday date)
row format delimited fields terminated by ‘,‘;
外部表(EXTERNAL_TABLE):表目录由建表用户自己指定
create external table jin(ip string,name string)
row format delimited fields terminated by‘,‘
location ‘/opt/log‘;
create table t_access(ip string,url string,access_time string)
partitioned by(dt string)
row format delimited fields terminated by ‘,‘;
注意:分区字段不能是表定义中的已存在字段
方式1:导入数据的一种方式:
手动用hdfs命令,将文件放入表目录
hadoop fs -mv /o/a.txt /user/hive/warehouse/neng
方式2:在hive的交互式shell中用hive命令来导入本地数据到表目录
load data local inpath ‘/root/order.data.2‘ into table t_order;
方式3:用hive命令导入hdfs中的数据文件到表目录
load data inpath ‘/access.log.2017-08-06.log‘ into table t_access partition(dt=‘20170806‘);
注意:导本地文件和导HDFS文件的区别:
本地文件导入表:复制
hdfs文件导入表:移动
a.将hive表中的数据导入HDFS的文件
insert overwrite directory ‘/a‘
row format delimited fields terminated by ‘,‘
select * from t_access;
b.将hive表中的数据导入本地磁盘文件
insert overwrite local directory ‘/root/access-data‘
row format delimited fields terminated by ‘,‘
select * from t_access ;
[root@hive ~]# cd /usr/local/hive/apache-hive-1.2.1-bin/conf/
[root@hive conf]#vim hive-site.xml(如果不存在创建)
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
</configuration>
cp hive-env.sh.template hive-env.sh
五、上传jar包
上传一个mysql的驱动jar包到hive的安装目录的lib中
mysql-connector-java-5.1.39.jar下载地址
六、启动hive服务
6.1
[root@hive ~]#cd /usr/local/hive/apache-hive-1.2.2-bin/bin
[root@hive bin]# ./hiveserver2
6.2
[root@hive ~]# cd /usr/local/hive/apache-hive-1.2.2-bin
[root@hive apache-hive-1.2.1-bin]# bin/beeline -u jdbc:hive2://hive:10000 -n root
解决hadoop no dataNode to stop问题
错误原因:
datanode的clusterID 和 namenode的 clusterID 不匹配。解决办法:
1、 打开 hadoop/tmp/dfs/namenode/name/dir 配置对应目录下的 current 目录下的 VERSION 文件,拷贝clusterID;
2、 打开 hadoop/tmp/dfs/datanode/data/dir 配置对应目录下的 current 目录下的 VERSION 文件,用拷贝的 clusterID 覆盖原有的clusterID;
3、 保存后重新启动 hadoop,datanode 进程就能正常启动了。
原文:https://www.cnblogs.com/TianLiang-2000/p/11581152.html